medium complexity high priority should have v1.1 extracted Contact & Peer Mentor Management Confidence: 100%
6
Components
0
Shared
8
User Stories
Yes
Analyzed

Description

This feature allows peer mentors to temporarily deactivate themselves without formally resigning, placing themselves on a pause status that prevents new assignment dispatches and removes them from active matching pools. Coordinators are automatically notified when a peer mentor pauses or resumes. For HLF, the pause state is linked to certification expiry: when a certificate expires, the mentor is automatically paused and removed from the public website listing. The availability toggle widget enables quick status changes from within the peer mentor's profile or home screen, supporting the workflow of busy volunteers who need a simple, low-friction mechanism.

Analysis

Business Value

Volunteer retention is a critical operational concern for all partner organisations. Forcing peer mentors to choose between full active status and resignation creates unnecessary dropout, particularly among volunteers managing personal health challenges or seasonal commitments. The pause function directly addresses this by providing a dignified, reversible way to step back temporarily, which has been validated as a SHOULD HAVE feature by both NHF and HLF. For HLF, automatic pausing on certificate expiry is a compliance mechanism that prevents coordinators from inadvertently assigning work to uncertified volunteers, reducing organisational liability and ensuring service quality standards are maintained.

Implementation Notes

Pause status is stored in the peer_mentor_availability table with a status enum (active, paused, inactive) and an optional reason and resume_date. The availability toggle widget is a simple BLoC-driven toggle with an optional confirmation bottom sheet for pause (to prevent accidental activation). On status change, a Supabase Edge Function triggers a push notification to the peer mentor's coordinator via the push notification gateway. For HLF certificate expiry, a scheduled Edge Function checks certification expiry dates daily and automatically updates availability status. RLS policies ensure peer mentors can only update their own availability, while coordinators can update any mentor in their organisation. The coordinator notification includes the mentor's name and reason if provided.

Dependencies

peer-mentor-profilesrole-based-access-controlsupabase-backend-corepush-notifications-alerts

Definition of Done

Peer mentor can toggle pause status from profile screen with optional reason
Coordinator receives push notification within 60 seconds of status change
Paused peer mentors are excluded from assignment matching and dispatch queues
HLF certificate expiry automatically triggers pause status (tested with mock expiry dates)
Coordinator can view all paused mentors in their organisation
All state transitions are persisted correctly and reflected in real-time across devices

User Stories (8)

View Own Pause Status History and Upcoming Resume Date
medium 2 pts

As a As a Peer Mentor (Likeperson)

I want I want to view my current availability status, the reason I entered pause (if provided), my expected resume date (if set), and the timestamp of my last status change on the Pause Status Screen

So that So that I can confirm my status is correctly recorded and plan my return to active volunteering with clarity

Acceptance Criteria
  • Given I am on the Pause Status Screen, when my status is active, then the screen shows an active status badge, the last status change timestamp, and pause action controls
  • Given I am on the Pause Status Screen, when my status is paused with a reason and resume date, then the screen shows the reason text, the formatted resume date, and the paused timestamp
  • Given my certificate expires and my status is automatically set to paused by the scheduler, when I open the Pause Status Screen, then I see the paused status with a system-generated reason indicating certificate expiry
  • +2 more
View Full Story →
Monitor All Mentor Availability Statuses Across Organisation
medium 3 pts

As a As a Coordinator

I want I want to see the current availability status of all peer mentors in my organisation in the member overview, with the ability to filter by active, paused, and inactive status

So that So that I can quickly assess my active assignment capacity and identify mentors who have been paused for an extended period and may need follow-up

Acceptance Criteria
  • Given I am on the member overview screen, when I view the mentor list, then each mentor shows a colour-coded availability badge (active/paused/inactive)
  • Given I apply the 'paused' filter, when the list updates, then only mentors with paused status are shown and all others are hidden
  • Given a mentor's status changes while I have the overview open, when the Availability Repository emits the update, then the mentor's badge updates in real time without requiring a manual refresh
  • +2 more
View Full Story →
Resume Active Status from Pause
high 2 pts

As a As a Peer Mentor (Likeperson)

I want I want to resume my active availability status from the Pause Status Screen when I am ready to take on new assignments again

So that So that I can seamlessly re-enter the active assignment pool without requiring coordinator intervention, enabling me to return to volunteering on my own schedule

Acceptance Criteria
  • Given I am a paused peer mentor on the Pause Status Screen, when I tap the resume button, then my status transitions to active immediately without requiring a confirmation bottom sheet
  • Given I resume, when the status update is saved, then my status on the Pause Status Screen changes to active and shows the updated last changed timestamp
  • Given I resume, when the Coordinator Notification Service is triggered, then my coordinator receives a push notification that I am available again, including my name
  • +2 more
View Full Story →
Pause Own Availability with Confirmation
high 3 pts

As a As a Peer Mentor (Likeperson)

I want I want to place myself on pause status from the Pause Status Screen, optionally providing a reason and expected resume date, with a confirmation step to prevent accidental activation

So that So that I can temporarily step back from receiving new assignments without having to formally resign, preserving my volunteer relationship with the organisation

Acceptance Criteria
  • Given I am an active peer mentor on the Pause Status Screen, when I tap the pause button, then a confirmation bottom sheet appears with a summary of the action before applying the change
  • Given the confirmation bottom sheet is visible, when I optionally enter a reason and resume date and confirm, then my status is updated to paused in the peer_mentor_availability table
  • Given I have confirmed the pause, when the status is saved, then I see the paused state reflected immediately on the Pause Status Screen with the last status change timestamp
  • +2 more
View Full Story →
Toggle Availability Quickly from Profile or Home Screen
high 3 pts

As a As a Peer Mentor (Likeperson)

I want I want to change my availability status directly from my profile page or the home screen using a compact toggle widget, without navigating to the full Pause Status Screen

So that So that busy volunteers can manage their availability in seconds during a brief moment between activities, reducing the friction that leads to mentors remaining in incorrect status states

Acceptance Criteria
  • Given I am on my profile or home screen, when I see the Availability Toggle Widget, then it shows my current status with a colour-coded label (active/paused)
  • Given my status is active, when I tap the toggle widget to pause, then a lightweight confirmation bottom sheet appears before applying the change
  • Given I confirm the pause via the widget, when the status is saved, then the widget immediately updates to show paused status and the Pause Management Service is called
  • +3 more
View Full Story →
Coordinator Manually Updates a Peer Mentor's Availability Status
high 3 pts

As a As a Coordinator

I want I want to manually set a peer mentor's availability status to paused or active on their behalf from the mentor's profile view

So that So that I can manage the availability of mentors who are unable or unwilling to use the app themselves, keeping the assignment pool accurate without requiring every mentor to be digitally active

Acceptance Criteria
  • Given I am a coordinator viewing a peer mentor's profile, when the mentor is active, then I can see a 'Set as Paused' action available to me
  • Given I initiate a pause on behalf of a mentor, when I confirm the action, then the Pause Management Service applies the change with coordinator-level RLS permissions
  • Given I pause a mentor on their behalf, when the status is saved, then the mentor receives a push notification informing them that their coordinator has updated their availability status
  • +3 more
View Full Story →
Receive Push Notification When Mentor Changes Availability Status
high 3 pts

As a As a Coordinator

I want I want to receive a push notification whenever any peer mentor in my organisation changes their availability status, including the mentor's name and the reason if one was provided

So that So that I can immediately adjust my assignment planning without having to regularly poll a dashboard for status changes

Acceptance Criteria
  • Given a peer mentor in my organisation pauses their availability, when the status change is saved, then I receive a push notification within 10 seconds containing the mentor's name and new status
  • Given the mentor provided a pause reason, when I receive the notification, then the notification body includes the reason text
  • Given a peer mentor resumes active status, when the change is saved, then I receive a push notification indicating the mentor is available again
  • +3 more
View Full Story →
Automatic Mentor Pause on Certificate Expiry (HLF Compliance)
high 5 pts

As a As a Coordinator

I want I want mentors whose HLF certification has expired to be automatically paused by the system and removed from the active assignment pool, with me receiving a notification for each affected mentor

So that So that I can ensure only certified volunteers are matched to new assignments, maintaining service quality standards and reducing organisational liability without relying on manual monitoring of expiry dates

Acceptance Criteria
  • Given a peer mentor's certification expires, when the daily Certificate Expiry Scheduler runs, then the mentor's availability status is automatically updated to paused with reason 'Certificate expired'
  • Given the automatic pause is applied, when the scheduler completes, then I receive a push notification for each affected mentor in my organisation listing their name and the expiry reason
  • Given a mentor is automatically paused due to certificate expiry, when I view the member overview, then a certificate expiry indicator is shown on their entry distinguishing them from self-paused mentors
  • +3 more
View Full Story →