medium complexity extracted Coordinator & Admin Tools Confidence: 100%
5
Components
198
Shared
6
User Stories
Yes
Analyzed

Description

Peer mentors can place themselves on a temporary pause — effectively deactivating their availability without fully resigning. The coordinator assigned to that peer mentor receives an automatic notification when a pause is activated or lifted. The feature allows coordinators to view current pause statuses across their roster and set expected return dates. For HLF, pause is tightly coupled to certification validity: when a peer mentor's certification expires, they are automatically paused and removed from the local chapter's public-facing website listings. Coordinators receive advance warnings before expiry so they can prompt renewal in time.

Analysis

Business Value

Prevents vulnerable individuals from being matched with peer mentors who are temporarily unavailable or uncertified. Reduces coordinator overhead in tracking availability manually and eliminates the risk of expired-certification peer mentors appearing on public listings.

Implementation Notes

Status enum: active | paused | expired_cert | resigned. Pause stores start_date and optional expected_return_date. Coordinator notification via push and in-app. HLF certification expiry check runs nightly; auto-transition to paused state 30 days before expiry with escalating reminders. Website sync for HLF requires webhook or API call to Dynamics portal.

Components (203)

User Interface (2)

Service Layer (2)

Infrastructure (1)

Shared Components

These components are reused across multiple features

User Interface (59)

ui Role Switch Widget medium Shared ui Role-Aware Bottom Navigation medium Shared ui Activity Type Selection Screen low Shared ui Speech-to-Text Field Overlay medium Shared ui Receipt Capture Widget medium Shared ui Peer Mentor Single Selector low Shared ui Proxy Audit Badge Widget low Shared ui Export Period Picker low Shared ui Contact Card Widget low Shared ui Contact Search Bar low Shared ui Peer Mentor Card Widget low Shared ui Activity History List low Shared ui Multi-Chapter Affiliation Chip Widget medium Shared ui Certification Status Badge low Shared ui Duplicate Activity Warning Dialog medium Shared ui Mentor Multi-Select Widget medium Shared ui Map Filter Panel medium Shared ui Claim Status Badge low Shared ui Export Date Range Picker low Shared ui Custom Date Range Picker low Shared ui Duplicate Activity Warning Dialog low Shared ui Proxy Activity Form medium Shared ui Proxy Peer Mentor Selector medium Shared ui Expected Return Date Picker low Shared ui Pause Activation Screen low Shared ui Pause Status Indicator low Shared ui Admin KPI Stat Widget low Shared ui Organisation Hierarchy Navigator high Shared ui Bufdir Period Selector Widget low Shared ui Export History List medium Shared ui Activity Type Donut Chart medium Shared ui Monthly Activity Bar Chart medium Shared ui Statistics Period Filter Bar low Shared ui Statistics Summary Cards low Shared ui Notification Badge Widget low Shared ui Certificate Expiry Status Indicator low Shared ui Animated Stat Card Widget medium Shared ui In-App Notification Banner low Shared ui Accessible Modal Sheet Widget high Shared ui Live Region Announcer medium Shared ui Semantics Wrapper Widget medium Shared ui Sensitive Field Warning Dialog high Shared ui Confirm Before Submit Screen medium Shared ui Inline Contextual Help Widget low Shared ui Labelled Navigation Bar low Shared ui Plain Language Error Display low Shared ui Single-Action Screen Layout medium Shared ui Wizard Progress Indicator low Shared ui Accessible Text Style System medium Shared ui Accessible Touch Target Wrapper low Shared ui Contrast-Safe Color Palette Widget medium Shared ui Accessible Bottom Navigation Bar medium Shared ui Modal Close Button low Shared ui Persistent Back Button low Shared ui Vertical Scroll Container low Shared ui Organization Card Widget low Shared ui Terminology-Aware Text Widget low Shared ui FeatureGate Widget low Shared ui Chapter Switcher medium Shared

Service Layer (52)

service Authentication Service medium Shared service Authentication Session Manager medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Biometric Authentication Service medium Shared service Permission Checker Service medium Shared service Role State Manager medium Shared service No-Access Route Guard low Shared service Activity Type Metadata Resolver low Shared service Chapter Scope Resolver medium Shared service Organisation Hierarchy Resolver medium Shared service Coordinator Notification Service medium Shared service Duplicate Activity Detection Service high Shared service Mentor Filter Service low Shared service Receipt Threshold Validator low Shared service Approval Status Notification Service medium Shared service Threshold Evaluation Service medium Shared service Declaration Encryption Service high Shared service Organization Feature Flag Service low Shared service Participant Deduplication Service high Shared service Reporting Period Service medium Shared service Activity Attribution Service low Shared service Proxy Duplicate Detection Service medium Shared service Pause Management Service medium Shared service Pause Notification Service medium Shared service Admin Export Service medium Shared service Admin Row-Level Security Guard high Shared service Organisation Hierarchy Service high Shared service User Management Service high Shared service Role Access Validator low Shared service Peer Mentor Stats Aggregator medium Shared service Push Notification Dispatcher medium Shared service Notification Preference Service low Shared service Scenario Deep-Link Router medium Shared service Scenario Notification Content Builder medium Shared service Badge Criteria Integration medium Shared service Activity Summary Aggregator low Shared service Focus Management Service medium Shared service Screen Reader Detection Service medium Shared service Sensitive Field Privacy Guard high Shared service Plain Language Content Service medium Shared service Wizard State Manager medium Shared service Tab State Manager medium Shared service Organization Route Guard medium Shared service Tenant Context Service high Shared service Label Key Resolver Service low Shared service Organization Labels Notifier medium Shared service FeatureFlagProvider (Riverpod) medium Shared service Access Scope Service high Shared service Hierarchy Aggregation Service high Shared service Hierarchy Service high Shared service Unit Assignment Service medium Shared

Data Layer (33)

Infrastructure (54)

infrastructure Keyboard-Aware Layout Utility low Shared infrastructure Supabase Auth Client low Shared infrastructure Deep Link / OAuth Redirect Handler medium Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase Session Manager medium Shared infrastructure URL Launcher Utility low Shared infrastructure Local Storage Adapter low Shared infrastructure Supabase Activity Client low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client low Shared infrastructure Organisation Field Config Loader medium Shared infrastructure Speech-to-Text Adapter medium Shared infrastructure File Download Handler low Shared infrastructure Duplicate Reviewed Flag Middleware low Shared infrastructure Contact RLS Query Builder low Shared infrastructure Contact Form Validator low Shared infrastructure Design Token Theme low Shared infrastructure Organization Labels Provider low Shared infrastructure Supabase Client Provider low Shared infrastructure Search Debounce Utility low Shared infrastructure Expense Type Analytics Tracker low Shared infrastructure Receipt Image Picker Integration low Shared infrastructure CSV / JSON File Generator medium Shared infrastructure Coordinator Role Guard low Shared infrastructure Nightly Job Scheduler medium Shared infrastructure Supabase RLS Policy Configuration high Shared infrastructure Export File Storage Adapter low Shared infrastructure Supabase Storage Adapter low Shared infrastructure Peer Mentor Pause Management Service medium Shared infrastructure Push Notification Service medium Shared infrastructure fl_chart Adapter medium Shared infrastructure Push Notification Service low Shared infrastructure FCM Push Notification Sender medium Shared infrastructure FCM Notification Dispatcher medium Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Supabase Realtime Subscription Service medium Shared infrastructure Organisation Data Isolation Guard low Shared infrastructure Push Notification Dispatcher medium Shared infrastructure Deep Link Handler medium Shared infrastructure QR Code Generator low Shared infrastructure Share Sheet Bridge low Shared infrastructure Semantics Service Facade medium Shared infrastructure Accessibility Design Token Enforcer medium Shared infrastructure Accessible Theme Builder medium Shared infrastructure Navigation Route Configuration medium Shared infrastructure Accessibility Live Region Announcer low Shared infrastructure Feature Flag Provider low Shared infrastructure Secure Storage Adapter low Shared infrastructure Supabase RLS Tenant Scope Configurator medium Shared infrastructure Label Key Registry low Shared infrastructure Terminology Riverpod Providers low Shared infrastructure WCAG Semantics Label Resolver low Shared infrastructure Feature Flag Key Constants low Shared infrastructure RLS Policy Manager high Shared

User Stories (6)

Set an Expected Return Date When Pausing
medium 3 pts

As a As a Coordinator

I want to optionally specify an expected return date when I initiate a pause

So that my coordinator has a realistic expectation of when I will be available again and can plan contact assignments accordingly

Acceptance Criteria
  • Given the pause confirmation dialog is open, when the peer mentor taps the return date field, then a date picker (385-expected-return-date-picker) appears allowing selection of a future date
  • Given a return date is selected, when the peer mentor confirms the pause, then the expected return date is stored in the pause record via 392-peer-mentor-status-repository
  • Given a return date was specified, when that date arrives, then the mentor receives a push notification reminding them to reactivate their status via 390-pause-notification-service
  • +3 more
View Full Story →
Receive In-App Notification When Coordinator Changes My Status
medium 5 pts

As a As a Coordinator

I want to receive an in-app and push notification whenever my coordinator pauses or reactivates my status on my behalf

So that I am always informed about changes to my mentoring status even if I did not initiate them, and can contact my coordinator if I disagree with the change

Acceptance Criteria
  • Given a coordinator pauses a peer mentor from the coordinator roster screen, when the action is saved, then a push notification is dispatched to the peer mentor via 500-pause-notification-orchestrator and 504-fcm-notification-dispatcher
  • Given the peer mentor receives the push notification, when they tap it, then they are navigated to their status screen within the app
  • Given the notification has been received, when the peer mentor opens the notification centre, then a pause notification card (498-pause-notification-card) is visible with the coordinator's name, the change made, and the timestamp
  • +3 more
View Full Story →
View Current Pause or Active Status at a Glance
high 3 pts

As a As a Coordinator

I want to clearly see my current mentoring status (active or paused) on my home screen and profile page at all times

So that I always know whether I am listed as available to receive new contact assignments and can take action if the status is incorrect

Acceptance Criteria
  • Given the peer mentor is active, when they open the home screen, then no pause banner is shown and the status indicator (387-pause-status-indicator) displays 'Active'
  • Given the peer mentor is paused, when they open the home screen, then the pause status banner (203-pause-status-banner) is prominently displayed showing the pause start date
  • Given the peer mentor is paused with a return date, when they view the banner, then the expected return date is shown within the banner
  • +3 more
View Full Story →
Initiate a Temporary Pause of Mentoring Activity
high 5 pts

As a As a Coordinator

I want to place myself on a temporary pause from mentoring duties through a simple in-app toggle

So that I can take a break without formally leaving the program, ensuring my coordinator is informed and I am not assigned new contacts during my absence

Acceptance Criteria
  • Given the peer mentor is on their profile or home screen, when they tap the pause/reactivate toggle (201-pause-reactivate-toggle), then a confirmation dialog (202-pause-confirmation-dialog) appears summarising what a pause means
  • Given the confirmation dialog is open, when the peer mentor confirms the pause, then their status is updated to 'paused' in the database via 204-mentor-status-service and 206-mentor-status-repository
  • Given the pause is confirmed, when the status update succeeds, then a push notification is dispatched to the assigned coordinator via 205-coordinator-notification-service
  • +3 more
View Full Story →
Reactivate Mentoring Status After a Pause
high 5 pts

As a As a Coordinator

I want to reactivate my mentoring status through the same simple toggle I used to pause

So that I can seamlessly return to active mentoring when I am ready, with my coordinator notified automatically

Acceptance Criteria
  • Given the peer mentor is in 'paused' status, when they tap the reactivate toggle (201-pause-reactivate-toggle), then a confirmation dialog appears asking them to confirm reactivation
  • Given the reactivation is confirmed, when the status update succeeds via 204-mentor-status-service, then the peer mentor's status is set to 'active' in 206-mentor-status-repository
  • Given reactivation is confirmed, when the status changes to active, then the coordinator is notified via 205-coordinator-notification-service with a push notification
  • +3 more
View Full Story →
Receive Warning When Certification Is About to Expire
high 8 pts

As a As a Coordinator

I want to receive timely in-app and push notifications before my certification expires

So that I can renew my certification before it lapses, avoiding automatic removal from the active roster and the chapter website

Acceptance Criteria
  • Given the peer mentor's certification expires within 30 days, when the nightly scheduler (394-nightly-scheduler) runs the expiry check via 389-certification-expiry-checker, then a push notification is sent to the peer mentor warning them of impending expiry
  • Given the peer mentor receives the expiry push notification, when they tap it, then they are deep-linked to the certification renewal screen (438-record-renewal-screen)
  • Given the certification expires within 7 days, when the app is opened, then a certification expiry warning banner (386-certification-expiry-warning-banner) is persistently shown on the home screen
  • +4 more
View Full Story →