Personal learning roadmaps

Learning Roadmap creates a personal study plan around the first project a learner wants to build. The free Store app saves the plan in the learner's own home and adds a home tile for returning to it. Course enrollment remains on each course's cover.

It replaces the earlier /Edu/SelfAssessment form (withdrawn from the catalog in #1643). Existing private plans and notes are preserved and shown as a saved plan until the learner opts into the guided roadmap.

Create and revisit a plan

The six questions ask for a first project, its desired outcome, current AI experience, confidence from 1 to 10, weekly learning time, and preferred course language. Answers save as the learner works. Typing updates the saved project after a 250 ms delay without moving to another question; Continue validates the answer and advances only when clicked. Back allows earlier answers to be revisited, and creating the roadmap validates all six answers.

Each recommendation explains why the course helps, points to relevant lessons and gives a project outcome. The learner can add notes and a next action, reopen the same plan from the home tile, and refine the answers later. Refining updates the generated guidance while preserving notes by stable course keys; previous courses remain available separately. Course completion uses the existing certificate records and is not earned merely by opening a page. The footer opens the full course catalog and the learner's home with ordinary navigation buttons.

Onboarding

Onboarding is one flow: the Connections checklist a new chat opens with (Microsoft 365, Teams, Gmail, WhatsApp, …) carries the educational-journey step, which offers the LearningRoadmap cover or the viewer's own unfinished plan until a roadmap has been created. The step's read-only logic (LearningPathStep in src/MeshWeaver.Courses/LearningPath/) writes nothing to the mesh and is hidden for anonymous, virtual and hub identities and on a portal that does not carry the app.

Continue learning

The roadmap reads the learner's existing course progress. Each course offers Continue learning when there is a remembered lesson or exercise, including an exercise in the learner's private copy. The active plan also highlights the most recently opened unfinished course. Opening a course cover and starting from its first relevant lesson remain available separately.

Cards distinguish lessons visited, exercises completed and course certificates. These are the same records the course pages already maintain; the roadmap does not create another progress store or mark a lesson completed because the learner clicked its card. Courses acquired or started outside the current curriculum appear under Your other courses.

Creating a roadmap records completion of the welcome step in the private plan. Later refinement preserves that fact, including plans created before the explicit completion marker was added.

Saved legacy answers, courses and notes remain visible without answering the new questions. Create a project roadmap explicitly opts into the six-question flow while preserving the existing answers and notes.

Curriculum and accessibility

Course roots own content.learning: topics, starting level, outcomes, ordered lesson milestones, language, and tShirtSize with a rationale. The recommendation engine consumes those catalog facts. Package dependencies are not learner prerequisites, and recommendations do not invent course dates or durations. Preferred-language twins are deduplicated; unavailable translations are identified.

For example, an FX conversion and financial-reporting project prioritizes Data Modelling for entities, cubes, dimensions, rules, movement reports and financial statements. Advanced Business Rules follows when the project needs those calculations. Import and Export joins when Excel, CSV or document delivery is part of the project. Beginner AI material is recommended when the learner's answers call for it.

S means starting with AI, M means building with agents, and L means designing complete workflows. These capability sizes and rationales are shared by the Store catalog, course covers and personal plan. Weekly time determines a suggested learning/building rhythm. Three separate size labels, course cards and question choices wrap on narrow screens.

The project and notes fields have accessible names matching their visible labels. The selected confidence number has a visible checkmark and announces “selected” (German: “ausgewählt”), so selection does not depend on color.

Persistence and implementation

The Store installs LearningRoadmap/Plan as {viewer}/LearningRoadmap/Plan and owns its app tile and entitlement. Edu/SelfAssessment remains a public landing link and stores no shared answers. The existing {viewer}/LearningPlan route is also supported. Only the current viewer's exact legacy or installed plan path renders editable answers.

New Store copies carry workflowVersion: 1; legacy records remain in their saved-plan view until explicit opt-in. Older in-progress roadmap records with a positive step stay in the quiz even when they predate that marker. Question panels and navigation actions have step-specific area names, and Continue derives its transition from the current persisted step. This prevents a reused control from applying an earlier question's callback.

Fields bind directly to the learner node. There is no shared answer store or separate save endpoint. Installation, enrollment and the home tile remain Store responsibilities.

Running the local browser checks

Use an ordinary fresh learner on a local disposable mesh with Store, Edu, LearningRoadmap, DataModeling and AdvancedBusinessRules installed. In the repository's e2e directory, run:

E2E_BASE_URL=http://127.0.0.1:8339 \
E2E_STORAGE_STATE=/absolute/path/to/fresh-learner-auth.json \
E2E_USER_ID=the-fresh-learner-id RUN_LEARNING_JOURNEY=1 \
  npx playwright test learning-journey.spec.ts --workers=1 --retries=0

E2E_USER_ID must name the exact learner in the saved session; it has no default for this spec. The authenticated test acquires and refines that learner's private app through the Store. The anonymous test uses an empty session. CI currently only typechecks and enumerates these specs; no workflow enables this live run. See e2e/README.md for the supported local sign-in procedure.

Validation

The type ships its own tests: Edu/LearningJourney/Test/* (recommendation, step flow, privacy — rendered by the Tests area and asserted by CI), src/MeshWeaver.Courses.Test (plan persistence, progress projection, the uninstall/resume regression, the onboarding step), and the browser walk in e2e/learning-journey.spec.ts. The release history and the production procedure are in Learning Roadmap release.

Reconnecting…
The server was updated. Reloading the page to pick up the latest version.