User Interface low complexity frontendmobile
2
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

A coordinator-facing screen for manually recording a peer mentor certification renewal after in-person course completion. Captures new issue date, expiry date, and cert type, then persists the renewal and appends to renewal history.

Feature: Peer Mentor Certification Management

record-renewal-screen

Summaries

The Record Renewal Screen enables coordinators to immediately capture certification renewals after in-person course completions, ensuring that the system of record stays accurate and up to date without relying on batch updates or manual data entry backlogs. Timely recording of renewals prevents mentors from appearing non-compliant in the system when they are in fact fully certified, avoiding unnecessary pauses to their activity and protecting both mentor experience and service continuity. This self-service capability reduces administrative overhead and eliminates the need for back-office data correction workflows.

A low-complexity coordinator-facing data entry screen with date pickers for issue and expiry dates, cert type selection, and form submission. The primary dependency is certification-management-service for persistence and certification-bloc for state management. Validation logic (prevent past expiry dates, required fields) must be agreed with the business before development begins to avoid rework. Test coverage should include valid submission, date validation failures, network error handling, and success confirmation display.

This screen is a prerequisite for the end-to-end certification renewal workflow and should be scheduled ahead of user acceptance testing for that feature.

buildRecordRenewalScreen(mentorId, existingCert) receives the current certification record as context to pre-populate cert type and guide date entry. Date pickers trigger onIssueDateChanged() and onExpiryDateChanged(), updating bloc state; client-side validation should enforce that expiresAt is strictly after issuedAt and not in the past. onCertTypeSelected() persists the selection in bloc state. onSubmitRenewal() dispatches a RecordRenewalEvent to certification-bloc, which delegates to certification-management-service.recordRenewal().

On success, showRenewalSuccessMessage() renders a confirmation and pops the navigation stack. Ensure optimistic UI is avoided here — wait for backend confirmation before dismissing the form.

Responsibilities

  • Collect new certification issue and expiry dates via date pickers
  • Select or confirm cert type
  • Validate date inputs and prevent past expiry dates
  • Submit renewal to backend and show confirmation

Interfaces

buildRecordRenewalScreen(mentorId, existingCert)
onIssueDateChanged(date)
onExpiryDateChanged(date)
onCertTypeSelected(type)
onSubmitRenewal()
showRenewalSuccessMessage()

Relationships

Dependencies (2)

Components this component depends on

Related Data Entities (1)

Data entities managed by this component