HIGH story-certificate-expiry-notifications-coordinator-007 8 pts
8
Story Points
High
Priority
Certificate Expiry Notifications
Feature

User Story

As a Coordinator
I want to have my renewed certification automatically synced from HLF's Dynamics system into the app, or to manually record a renewal with a new expiry date
So that my active status is restored, expiry notifications stop, and I reappear on the public peer mentor roster

Acceptance Criteria

  • Given HLF's Dynamics system sends a certification update webhook, When the hlf-dynamics-sync-service processes it, Then the peer mentor's certification record is updated with the new expiry date within 5 minutes
  • Given the certification record is updated with a new valid expiry date, When the certification management service processes the update, Then the mentor's active status is re-enabled and visibility suppressor restores their public listing
  • Given the renewal is confirmed, When the expiry notification orchestrator checks pending notifications, Then all scheduled expiry reminders for that certification are cancelled
  • Given automatic sync is not available, When a coordinator opens the record renewal screen for a mentor, Then they can manually input the new certificate issue date and expiry date with supporting document upload
  • Given a manual renewal is submitted, When it is saved, Then the certification repository is updated and the mentor receives a confirmation notification: 'Your certification has been renewed. You are now visible as an active peer mentor.'
  • Given the renewal screen is used by a screen reader user, When navigating the date input fields, Then all fields have descriptive labels and validation errors are announced via live regions

Business Value

The renewal workflow closes the full certification lifecycle loop. Without it, the system can suppress a mentor but has no automated path to restore them, requiring manual database intervention. Integrating with HLF's Dynamics portal for automatic sync eliminates coordinator overhead for renewal tracking, while the manual fallback ensures the process works even during integration downtime.