Course Enrollment Prompt Service
Component Detail
Description
Service that handles the coordinator-initiated course enrollment prompt from within a certificate expiry notification detail view. It links the notification context to the course administration feature, pre-populating enrollment data for the specific peer mentor and certification course.
course-enrollment-prompt-service
Summaries
The Course Enrollment Prompt Service directly reduces the administrative friction that causes certification lapses to go unaddressed. When a coordinator views a certificate expiry alert, this service instantly surfaces a one-tap enrollment action pre-filled with the mentor's identity and certification type—eliminating the manual lookup and data re-entry that previously caused delays. By shortening the time between identifying a lapse risk and initiating remediation, the organization reduces compliance exposure and keeps its peer mentor workforce continuously certified. This translates into fewer service disruptions, stronger regulatory standing, and a measurable reduction in the coordinator overhead required to maintain certification compliance across the workforce.
This service is rated low complexity and operates across both mobile and backend execution contexts, meaning QA must cover both the mobile deep-link navigation flow and the backend state-tracking logic. The primary dependency is the notification-record-repository, so that component must be stable before integration testing begins. Key delivery risks include ensuring the deep-link URL scheme is registered correctly in the mobile app build pipeline and that enrollment pre-population aligns with the course administration feature's expected parameter contract. A coordination point with the course administration team is required to confirm the deep-link interface specification.
Estimated test scope includes happy-path enrollment trigger, duplicate-trigger prevention, and mobile navigation edge cases.
This service exposes four interfaces: triggerEnrollmentPrompt, getEnrollmentDeepLink, hasEnrollmentBeenTriggered, and markEnrollmentTriggered. The deep-link generation constructs a URL embedding mentorId and courseType as query parameters targeting the course administration screen. State tracking (hasEnrollmentBeenTriggered / markEnrollmentTriggered) persists via the notification-record-repository, using the notificationId as the idempotency key to prevent duplicate prompts. On the mobile side, the service resolves the deep-link and hands off navigation to the router; on the backend, it writes the triggered flag within the same transaction as the prompt initiation.
No external dependencies beyond the repository. Maintenance consideration: if the course administration screen's URL scheme changes, getEnrollmentDeepLink must be updated and tested against both iOS and Android route registrations.
Responsibilities
- Generate enrollment prompt linking notification to course administration
- Pre-populate course enrollment with mentor identity and certification type
- Track whether a coordinator has triggered an enrollment prompt
- Provide deep-link navigation to course administration feature
Interfaces
triggerEnrollmentPrompt(mentorId: String, notificationId: String)
getEnrollmentDeepLink(mentorId: String, courseType: String) -> String
hasEnrollmentBeenTriggered(notificationId: String) -> bool
markEnrollmentTriggered(notificationId: String)