Course Enrollment Service
Component Detail
Service Layer
high complexity
backend
2
Dependencies
4
Dependents
3
Entities
0
Integrations
Description
Implements the full enrollment lifecycle including capacity checks, waitlist management, enrollment confirmation, and certificate eligibility evaluation at completion. Coordinates with the push notification infrastructure for enrollment and expiry reminders.
course-enrollment-service
Responsibilities
- Enroll a user in a course with capacity validation and race-condition-safe waitlist fallback
- Unenroll a user and promote the first waitlisted candidate automatically
- Mark course attendance as confirmed and evaluate certificate eligibility on completion
- Schedule enrollment confirmation and certificate expiry reminder notifications
- Expose enrollment status queries for BLoC state management in the mobile client
Interfaces
enroll(userId, courseId): EnrollmentResult
unenroll(userId, enrollmentId): void
confirmAttendance(enrollmentId): void
getEnrollmentStatus(userId, courseId): EnrollmentStatus
listUserEnrollments(userId): Enrollment[]
evaluateCertificateEligibility(enrollmentId): CertificateEligibility
scheduleExpiryReminder(certificationId, expiryDate): void
Relationships
Dependencies (2)
Components this component depends on
Dependents (4)
Components that depend on this component
Related Data Entities (3)
Data entities managed by this component