Learning Path Page Specification

Overview

Dedicated pages for each learning path that render all steps inline with progress tracking. Designed for web now, mobile-ready architecture for future app conversion.

Route Structure

Data Source

Learn Index Page (/learn/index.astro)

Layout

Learning Path Page (/learn/[path-id].astro)

Header Section

Steps Section

Step Content (when expanded)

Completion Section (after last step)

Progress Tracking (Phase 2 - structure now, implement later)

interface PathProgress {
pathId: string;
currentStep: number;
completedSteps: number[];
startedAt: string;
lastAccessedAt: string;
completedAt?: string;
}
// Store in localStorage: soranauts_learning_progress

Component Structure

pages/learn/
├── index.astro # Path listing
├── [pathId].astro # Dynamic path page
└── LEARNING-PATH-SPEC.md # This spec
components/learn/
├── PathCard.astro # Card for index grid
├── PathHeader.astro # Title, progress, meta
├── PathStep.astro # Individual step (expandable)
├── PathStepContent.astro # Glossary/tag content render
├── PathNavigation.astro # Prev/Next buttons
├── PathCompletion.astro # End-of-path experience
└── ProgressBar.astro # Visual progress indicator

Styling Requirements

Content Resolution

For each step:

  1. If type=‘glossary’: fetch from getGlossaryTerm(slug)
  2. If type=‘tag’: fetch from getTagHubViewModel(slug)

Accessibility

Mobile App Considerations