Skip to content

Latest commit

 

History

History
98 lines (87 loc) · 4.44 KB

File metadata and controls

98 lines (87 loc) · 4.44 KB

DLAI Roadmap - Project Context

Project Overview

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

Tech Stack

  • React + Vite
  • Tailwind CSS
  • jsPDF for PDF export
  • GitHub Pages deployment
  • Static JSON data (no backend)

Key Files

  • src/data/courses.json - 121 courses + pathway definitions (fully enriched)
  • src/utils/pathwayGenerator.js - Core personalization algorithm
  • src/components/Questionnaire.jsx - 8-question assessment
  • src/components/CourseSelector.jsx - Searchable course picker (all 121 courses)
  • src/utils/categories.js - Single source of truth for category labels
  • src/components/RoadmapView.jsx - Generated roadmap display
  • src/utils/exportPDF.js - PDF export + shareable URL functions
  • src/utils/exportCalendar.js - iCalendar (.ics) export function
  • tests/stress-test.spec.cjs - Playwright tests (20 tests)
  • docs/solutions/ - documented solutions and methodology (data quality, curriculum design)

Approved Plan Status

COMPLETED

  • 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 IDs
    • skills_taught - 3-4 skills per course
    • career_paths - builder/researcher/enterprise relevance
    • partner - 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)

ALL FEATURES COMPLETE - READY FOR LAUNCH

Personalization Factors (all working)

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

Testing

npm run dev                    # Start dev server
npm run build                  # Production build
npx playwright test --config=playwright.config.cjs  # Run tests

IMPORTANT:

  1. Always ADD NEW TESTS for new features before committing
  2. Run ALL tests and verify they pass
  3. Never commit code without test coverage for the changes

Attribution

Built by Learning Deep for the DeepLearning.AI community.