Learner Journeys
This document maps all user journeys for end users (learners) taking SCORM courses.
Overview
User Type: Learners (End Users)
Entry Point: /learner/dashboard (after authentication)
Primary Goals: Access learning content, track progress, complete courses
Journey 1: Learner Accessing Dashboard
Persona: End user enrolled in SCORM courses
Task: View available learning content and progress
Entry Point: /learner/dashboard
Path
graph TD
A[Sign In] --> B[Learner Dashboard /learner/dashboard]
B --> C[View enrolled packages]
C --> D[View progress]
D --> E{Want to continue?}
E -->|Yes| F[Click 'Continue' or package]
E -->|No| G[Browse other packages]
F --> H[Launch Session /player/[sessionId]]
G --> I[View package details]
Detailed Steps
- Start: Learner signs in (Clerk authentication)
- Learner Dashboard:
/learner/dashboardloads - View Sessions: See all learning sessions:
- Package title
- SCORM version
- Progress status (not started, in progress, completed)
- Completion percentage
- Last accessed date
- Score (if available)
- Filter Options: Filter sessions by:
- Status (all, in progress, completed, not started)
- Package
- Date
- Action: Click on session or "Continue" button to launch
Buttons/Actions
- "My Learning" link (customer navigation)
- Session card (click to launch)
- "Continue" button (in-progress sessions)
- "Start" button (not started sessions)
- Filter controls (status, package, date)
Exit Point
/player/[sessionId] (session launched)
Journey 2: Learner Launching SCORM Session
Persona: End user
Task: Launch and interact with SCORM content
Entry Point: /player/[sessionId]
Path
graph TD
A[Learner Dashboard] --> B[Click session]
B --> C[Launch Session /player/[sessionId]]
C --> D[Player loads]
D --> E[SCORM content in iframe]
E --> F[Learner interacts]
F --> G[Progress tracked]
G --> H[CMI data synced]
H --> I{Continue?}
I -->|Yes| F
I -->|No| J[Exit session]
J --> K[Return to dashboard]
Detailed Steps
- Start: Learner clicks session from dashboard
- Session Launch: Browser navigates to
/player/[sessionId]?token=[launchToken] - Player Page: SCORM player loads:
- Fetches session data from API
- Initializes SCORM API bridge (1.2 or 2004)
- Loads SCORM content in iframe
- Content Interaction: Learner interacts with SCORM content:
- Navigates through content
- Completes activities
- Answers questions
- Views media
- Progress Tracking: SCORM API bridge tracks:
- Completion status
- Success status (passed/failed)
- Score (scaled, raw, min, max)
- Time spent
- Suspend data
- Data Sync: CMI data synced to backend periodically
- Exit: Learner clicks exit button or closes tab
- Session Terminated: Final CMI data saved
- Return: Redirected back to
/learner/dashboard
Buttons/Actions
- Session card (dashboard - click to launch)
- Exit button (player controls)
- Fullscreen toggle (player controls)
- Navigation controls (within SCORM content)
Exit Point
/learner/dashboard (after session completion)
Journey 3: Learner Completing Course
Persona: End user
Task: Complete a SCORM course
Entry Point: /player/[sessionId]
Path
graph TD
A[Launch Session] --> B[Interact with content]
B --> C[Complete all activities]
C --> D[Course marked complete]
D --> E[Final score calculated]
E --> F[Exit session]
F --> G[Return to dashboard]
G --> H[See completion status]
H --> I[View certificate if available]
Detailed Steps
- Start: Learner launches session
- Content Interaction: Learner progresses through SCORM content
- Completion: Learner completes all required activities
- Status Update: SCORM content sets completion status:
cmi.completion_status = "completed"cmi.success_status = "passed"(if passed)
- Score Recording: Final score recorded:
- Scaled score
- Raw score
- Min/max scores
- Session Exit: Learner exits session
- Data Saved: Final CMI data saved to backend
- Dashboard Update: Return to dashboard, see updated status:
- Completion badge
- Final score
- Completion date
- Certificate: If available, certificate or completion confirmation shown
Buttons/Actions
- Content navigation (within SCORM)
- Exit button (player controls)
- Completion confirmation (if shown)
Exit Point
/learner/dashboard (course completed)
Journey 4: Learner Viewing Progress
Persona: End user
Task: Review learning progress and history
Entry Point: /learner/dashboard
Path
graph TD
A[Learner Dashboard /learner/dashboard] --> B[View session list]
B --> C[Filter by status]
C --> D[View progress details]
D --> E[Click session]
E --> F[View session details]
F --> G[See completion history]
G --> H[View scores]
H --> I[View time spent]
Detailed Steps
- Start: Learner on
/learner/dashboard - Session List: View all learning sessions:
- Package title
- Progress status
- Completion percentage
- Last accessed
- Score
- Filter: Filter sessions by:
- Status (all, in progress, completed, not started)
- Package
- Date range
- Session Details: Click session to view:
- Full progress information
- Completion history
- Score breakdown
- Time spent
- Attempts count
- Progress Tracking: See overall learning progress:
- Total courses enrolled
- Courses completed
- Courses in progress
- Average score
- Total time spent
Buttons/Actions
- Session card (click to view details)
- Filter controls (status, package, date)
- Sort controls (by date, status, score)
Exit Point
/learner/dashboard (progress reviewed)
Common Learner Navigation Patterns
Pattern 1: Course Completion Flow
- Dashboard → Launch Session → Complete Content → Exit → View Completion
- Time: Varies by course length
- Path:
/learner/dashboard→/player/[sessionId]→ Complete →/learner/dashboard
Pattern 2: Progress Review Flow
- Dashboard → Filter Sessions → View Details → Review Progress
- Time: 2-5 minutes
- Path:
/learner/dashboard→ Filter → View Details
Pattern 3: Resume Learning Flow
- Dashboard → Find In-Progress → Continue → Complete → Exit
- Time: Varies
- Path:
/learner/dashboard→ Filter "In Progress" → Launch → Complete
Navigation Elements Available
Learner Navigation (Authenticated)
- "My Learning" link (customer navigation dropdown)
- Learner Dashboard (
/learner/dashboard)
Technical Notes
- Learners access sessions through tenant-specific authentication
- SCORM player uses API bridge to communicate with backend
- Progress tracked in real-time via CMI data sync
- Sessions can be resumed using suspend data
- Completion status and scores stored in database