Personalized learning pathway generator for DeepLearning.AI's 100+ courses. Users answer 8 questions and receive a customized, timeline-based study plan they can export as PDF or share via URL.
Live site: https://belumume.github.io/dlai-roadmap/ Repo: https://github.com/belumume/dlai-roadmap
- React + Vite
- Tailwind CSS
- jsPDF for PDF export
- GitHub Pages deployment
- Static JSON data (no backend)
src/data/courses.json- 121 courses + pathway definitions (fully enriched)src/utils/pathwayGenerator.js- Core personalization algorithmsrc/components/Questionnaire.jsx- 8-question assessmentsrc/components/CourseSelector.jsx- Searchable course picker (all 121 courses)src/utils/categories.js- Single source of truth for category labelssrc/components/RoadmapView.jsx- Generated roadmap displaysrc/utils/exportPDF.js- PDF export + shareable URL functionssrc/utils/exportCalendar.js- iCalendar (.ics) export functiontests/stress-test.spec.cjs- Playwright tests (20 tests)docs/solutions/- documented solutions and methodology (data quality, curriculum design)
- 8-question smart questionnaire
- Personalized roadmap generation based on all 8 answers
- 3 pathways: Builder, Researcher, Enterprise (+ Undecided → Builder)
- Timeline view with phases and week ranges
- Milestone markers per phase
- Total hours/duration calculated
- PDF export
- Shareable URLs (auto-load on visit)
- localStorage progress persistence
- Searchable course selector (all 121 courses)
- Skip button for multi-select questions
- Interest categories match actual course categories
- mathBackground filters elective difficulty
- goal affects specialization preferences
- Learning Deep attribution with profile link
- Playwright test suite (20/20 passing)
- Filter UI on roadmap view (category + difficulty filters)
- Critical path vs optional marking (Required/Optional badges on phases)
- Timeline warning display when core courses exceed target timeline
- Math warning display for researcher path with weak math background
- Experience-based difficulty filtering (professional/ml-basics skip foundation)
- courses.json enrichment - All 121 courses have:
prerequisites- course dependency IDsskills_taught- 3-4 skills per coursecareer_paths- builder/researcher/enterprise relevancepartner- company partnerships (OpenAI, LangChain, AWS, etc.)
- Calendar export (.ics) - Export roadmap to iCalendar format
- Algorithm robustness improvements:
- Restrictive fallbacks for invalid inputs
- Experience filter applied to pathway phases, math filter to electives only
- Zero weeks edge case guard for milestones
- Quality-based elective sorting (partner tier + type + hours)
- Dynamic Q8 course counts (was hardcoded)
- Centralized category labels (
src/utils/categories.js) - skills_taught displayed on course cards
- NLP Specialization added to Researcher path (31 courses in pathways)
- Pathway audit completed - 3 roles confirmed sufficient
- Responsive design (mobile-first, icon-only buttons on mobile, 44px touch targets)
- Category tabs in CourseSelector (9 categories + Popular/All tabs, scrollable checklist, per @Deminiko feedback)
| Factor | How It's Used |
|---|---|
| experience | Skips foundation for professional/ml-basics |
| goal | Affects specialization priority and elective count |
| timeCommitment | Sets weekly pace (3.5-25 hrs) |
| targetRole | Selects pathway (builder/researcher/enterprise) |
| mathBackground | Filters elective difficulty (not pathway phases) |
| timeline | Scales duration estimates |
| priorCourses | Removes completed courses from roadmap |
| interests | Adds matching elective courses |
npm run dev # Start dev server
npm run build # Production build
npx playwright test --config=playwright.config.cjs # Run testsIMPORTANT:
- Always ADD NEW TESTS for new features before committing
- Run ALL tests and verify they pass
- Never commit code without test coverage for the changes
Built by Learning Deep for the DeepLearning.AI community.