medium complexity v1.1 extracted Certification & Training Confidence: 100%
5
Components
43
Shared
0
User Stories
Yes
Analyzed

Description

Course Registration lets peer mentors browse a course catalog and enrol in training sessions directly from the mobile app. The feature ties enrolment records to certification status so completed courses automatically advance the user toward active certification. Both HLF, which requires formal course completion before a mentor goes active, and Barnekreftforeningen, which uses it for onboarding and follow-up training of new peer mentors, depend on this capability as a prerequisite for ongoing volunteer operations.

Sources & reasoning

Phase 3 (v1.1) confirmed by priority matrix Fase column value '3' and Phase 3 roadmap listing 'Kursadministrasjon og sertifisering'. Two organizations with distinct workflows both require this, justifying a shared module with org-specific configuration rather than separate implementations.

No source references — this artifact was included based on reasoning alone (see above).

Analysis

Business Value

For HLF, course completion gates a peer mentor's public visibility and eligibility to receive assignments. Without in-app enrolment, coordinators track participation in external systems, risking uncertified mentors remaining active past expiry. For Barnekreftforeningen, structured onboarding through course registration is critical to maintaining volunteer capacity - centralizing enrolment in the app reduces drop-off from volunteers who would otherwise navigate a separate portal. Shared infrastructure serves both organizations through org-specific catalogs and terminology, keeping maintenance costs low while supporting materially different workflows without per-tenant code branches.

Implementation Notes

The course catalog is fetched from the shared REST API and rendered as a scrollable list filtered by the user's organization and module configuration. Enrolment triggers a POST creating a course_enrollments record linked to the user and course. Riverpod providers hold enrolment state with optimistic updates and rollback on API failure. The certifications record is updated server-side when all required courses for a certification type are completed. Drift caches the course list for offline access with sync on reconnect. Module toggle governs visibility: if certification-training is disabled for a tenant, all course screens and nav entries are hidden at runtime without a client release.

Components (48)

User Interface (2)

Service Layer (1)

Data Layer (2)

Shared Components

These components are reused across multiple features

User Stories

No user stories have been generated for this feature yet.