📈 Roadmaper 📈
Abstract
Ever have an idea that suddenly pops up in your mind but you can’t just wrap around your head such as “what is the starting point for me”, “where do I go from here”, “sigh, I got stuck”, etc. That sort of feeling is trivial, such things are the vital part for human complex development - getting lost, tickling your fancy. It’s splendid to get lost and finally achieve the Euréka, Aha moments.
But in the modern world, state-of-the-art techniques that we are living, where things around us and their movements are accelerated to the utmost extent possible by the abundance of information, activities, diverse knowledge, and, particularly, the continuous emergence of the buzzword “AI AI AI ai generative ai”.
Such pattern was there - it was the the industrial revolution of the steam engine era when workers transitioned from only or almost barely knowing how to read and write to being required to have mathematical and computational skills to adjust parameters like pressure and concentration. And that phenomenon is repeating itself now, and as a result, we must become more developed, continuously learn, and acquire more knowledge in order to always be in control of those situations.
But most of us are very easily to be exposed to information overload, burning out for the sake’s of catching up with everything, the fear of missing out, dunning kruger effect and finally burning out again. Or we can say that we want to do a lot of things for thriving but fear of feeling defeated.
We need something that can make us feel “related” and that rewards us like a leveling system, roadmap, a map to not get lost. Otherwise, we may give up, desiring so much but limited by our own abilities. We don’t know where to start or how to take the routes at the roundabout we are standing.
Having a guiding signpost or a “mentor”, “companion” always by our side to the greatest extent possible, while still retaining our autonomy, is an immensely important factor in addressing these challenges.
The Roadmaper is the embodiment of this reality.
Example of my progression on learning French
Author
Name: Hoang Phuc Pham
Student number: 48512288
Functionality
TODO: Might need to tweak few things to be able to develop this in such a short time.
Inputting - Generating - Tuning and parameterizable - Progressing - Rewarding.
We will limit users to only some categories right now for the simplicity, course purpose and saving on AI trainings.
Will have a onboarding journey to go through all of those sections.
- Inputting
- Select a category - coding, reading, cooking, fixing, languages, business, finance, other - if it’s not in there we will just return a text response instead of detailed roadmap
- A simple search box with placeholder that generates based on Users’ idea.
- Users will input things that they want to generate a roadmap.
- Will have some question such as do you want a DIY or what is your budget - there are a lot but for now it is simply low, medium, high budget will do.
- Generating
- From Users’ POV - will have section such as prerequisites for there roadmap, difficulty of each block, group by there level, direction.
- Choices, XP, level, social media sharing with their picture, accomplisment, a recap - almost like a RPG game.
- An assessment, a boss a simply a quiz to test their knowledge (optional).
- Bookmark their knowledge, group by prompt, sections, level,…
- Include references of each generating.
- Image generating - basically just grab free image on Google, public sources (or not).
- Tuning
- They can adjust their pace.
- Ask and clarify in which part they want to know more.
- Change their theme, motivational, role models.
- Notifications, reminders.
- Progressing
- Leveling up by gaining XP - completing tasks by doing assessment to their understand.
- Drawing color on those maps, the shade, thick of color will depend on their understanding, assessment.
- Basically that we will test their knowledge to some extent and draw accordingly.
- They won’t be able to jump to another section, just can preview, have a glimpse of it but can’t mark those as completed, they can if they passed it but want to undo (to review again for example).
- If / else if for their choices - eg: if you choose MacOSx you will use brew, apt for ubuntu, yum for RHEL, Fedora,…
- Doing a journal.
- Rewarding
- XP, leveling up.
- Badges, title.
- Motivational quotes.
- Currency for paywall features.
- Extra features:
- Generate quotes daily - motivate them.
- Paywall features:
- Limited to X roadmaps.
- Watching ads.
- Heart for doing an assessment wrong.
- Can only make like 5 prompts/day on specific step of roadmap (rate-limitter, saving on AI services).
- Unlock to / a specific step without precedence steps will require a rate.
Scope
For this course, it aims for the simplicity but non-trivial as context stated - In general, it will try to illustrate a comprehensive dashboard, steps for learning new things in certain categories.
We will do those categories, heavily simplify our apps there to make it to the deadline, demonstration
We will also use a free AI-model generator there, in the production and scaling app, we will have some rate-limiter, caching, using old search.
- MVP - To name a few:
- Personalised and customisable dashboard.
- Learning paths
- Bite-sized lessons, quick tips and tricks
- Assessments
- Rewarding system like leveling up, currency
Quality Attributes
Availability
- Highly avaiable, no downtime on rolling out new feature, SLA 99,999%.
- Cross-platform - web version for now.
- Redundancy, fault tolerance, and robust infrastructure - using Cloud and 3rd party AI services there.
Extensibility
- Since we are using AI as the main datasources there, it should be easy to add a new feature.
- We just need to tweak a prompt, like we have the string template for that, prompt template.
- Tell them to use symbols “->” to categorize what will be rendered in the roadmap.
Maintainability
- For code - following the best practices, service-oriented architecture.
- Using Cloud and there services there (assuming that we have funding :d ) so they alleviate quite an amount of workload.
- Read shared responsibility model.
Interoperability
- SOA so as things should be.
- We will also save those symbols as String, could be a gigantic one because of the information so
TEXT
type in Postgres will do a job.
Scalability
- It will scale in terms of 3rd party resources usage.
- High workload handling and queuing.
- Caching (again) for our MVP - personalised dashboard.
Reliability
- Should have a smooth UI/UX for end users.
- The speed of delivering content.
- Proactively monitor the database their R/W, loads.
- Persists users’ contents, reflects their changes.
Security
- Since its prompt and input, avoid malicious and wrong usages.
- Avoid OWASP stuff.
Evaluation
Availability
- Track the frequency and duration of any service interruptions.
- Make a status page and see if they can reflect or we can change those.
Extensibility
- Unit testing on our MVP.
- Verify the data consistency.
- CAP Theorem - and we’ll choose CA there.
Maintainability
- Cross-check in team the code structures.
- Verify the shared responsibility model / any violations / data leaks.
Interoperability
- Doing integration testing between service and service.
- 3rd party service like database / Cloud integration testing.
Scalability
- Chaos engineering.
- Testing whether Cloud services worth their price (helping on heavy workload moment).
- Cost-efficient.
- Review thoroughly our API Usages, Cloud Usages.
Reliability
- Conduct user surveys or feedback to gather information on their experience with UI/UX.
- Persists users’ contents, reflects their changes.
- Doing unit tests, blackbox testing.
- p98 metric.
Security
- Testing whether it can blocked spamming, DDoS.
- Avoid OWASP stuff like SQL injection, installing bitcoin/crypto script.
- Network firewall rules to our infrastructure - define public/private resources.