Certification Status Screen
Component Detail
Description
Displays the full certification record for a peer mentor, including issue date, expiry date, cert type, and renewal history. Accessible from the peer mentor detail screen and provides coordinator actions for manual renewal recording and course enrolment initiation.
certification-status-screen
Summaries
The Certification Status Screen gives coordinators instant visibility into each peer mentor's compliance standing, displaying issue dates, expiry dates, certification type, and a complete renewal history in one place. By surfacing this information proactively, the organisation reduces the risk of mentors operating with lapsed credentials, which carries regulatory and reputational exposure. Coordinators can trigger manual renewals and course enrolments directly from this screen, cutting administrative turnaround time and reducing the likelihood of compliance gaps that could disrupt service delivery or trigger audit findings.
This is a medium-complexity mobile UI screen that depends on the certification-repository and certification-bloc layers being stable before full integration testing can begin. Development involves date rendering, status badge logic, renewal history timeline, and two coordinator action flows (manual renewal and course enrolment initiation). QA must cover expiry edge cases (same-day expiry, already-expired states) and accessibility requirements. Plan for one sprint of UI build plus a separate integration testing cycle.
Coordinate with the team delivering Record Renewal Screen and Certification Bloc to avoid blocking dependencies.
Built as a Flutter mobile screen, buildCertificationStatusScreen(mentorId) fetches certification data via certification-bloc, which abstracts certification-repository calls. The screen renders issue date, expiry date, cert type, and a scrollable renewal history list via renderRenewalHistoryList(). showExpiryStatusBadge() delegates to the shared CertificationExpiryBadge widget for consistent urgency rendering. Action buttons invoke onRecordRenewalTap() and onEnrolInCourseTap() which push to the Record Renewal Screen and course enrolment flow respectively.
State management follows BLoC pattern; ensure StreamBuilder subscriptions are disposed correctly to prevent memory leaks.
Responsibilities
- Render certification issue date, expiry date, and cert type
- Display renewal history timeline
- Show expiry status badge (valid, expiring-soon, expired)
- Provide action buttons for manual renewal and course enrolment
Interfaces
buildCertificationStatusScreen(mentorId)
renderRenewalHistoryList(history)
showExpiryStatusBadge(status)
onRecordRenewalTap()
onEnrolInCourseTap()
Relationships
Dependencies (2)
Components this component depends on
Related Data Entities (1)
Data entities managed by this component