Course Registration
Feature Detail
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
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.
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)
Shared Components
These components are reused across multiple features
Service Layer (11)
Data Layer (23)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.