CourseRegistrationService
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
3
Entities
0
Integrations
Description
Orchestrates the course enrollment workflow including eligibility checks, registration submission, and confirmation dispatch. Acts as the primary business logic layer between the UI screens and the data repository. Handles organization-specific course availability rules.
course-registration-service
Sources & reasoning
Line 114 explicitly lists in-app course enrollment as an HLF certification requirement; line 124 confirms Barnekreftforeningen shares the need for onboarding training. The priority matrix (line 155) assigns SHOULD HAVE in Phase 3 (column value 3), which maps to v1.1 by ordinal. Line 355 confirms Phase 3 roadmap placement.
-
docs/source/likeperson.md · line 114Kursadministrasjon og sertifisering: Påmelding til kurs i appen, automatisk påminnelse ved utløp, digitale sertifikater. Det fysiske kortet er et «adelsmerke» og skal leve parallelt.
-
docs/source/likeperson.md · line 124Kursadministrasjon (delt med HLF) for opplæring av nye likepersoner og oppfølgingskurs.
-
docs/source/likeperson.md · line 155| Kursadministrasjon / sertifisering | ✓ | - | - | ✓ | ✓ | SHOULD (HLF + Barnekreft) | 3 |
-
docs/source/likeperson.md · line 355Kursadministrasjon og sertifisering (HLF + Barnekreftforeningen)
Responsibilities
- Validate user eligibility and prerequisites before allowing registration
- Submit enrollment requests and handle conflict or capacity errors
- Trigger confirmation notifications upon successful registration
- Enforce organization-level course configuration and availability rules
- Expose enrollment status queries for UI state synchronization
Interfaces
registerForCourse(userId: string, courseId: string): Promise<Enrollment>
checkEligibility(userId: string, courseId: string): Promise<EligibilityResult>
getEnrollmentStatus(userId: string, courseId: string): Promise<EnrollmentStatus>
cancelEnrollment(enrollmentId: string): Promise<void>
Related Data Entities (3)
Data entities managed by this component