medium complexity extracted Notifications & Follow-up Confidence: 100%
12
Components
198
Shared
30
User Stories
Yes
Analyzed

Description

Dedicated Notifications tab (fifth item in the bottom navigation) presenting a chronological, filterable feed of all system notifications for the current user. Each item shows the notification type icon, a short summary, relative timestamp, and read/unread state. Tapping any item navigates to the related entity (assignment, certificate, activity) via deep link. Users can mark individual notifications as read or clear all. Unread count is shown as a badge on the tab icon. The feed is role-aware: coordinators see notifications about their peer mentors in addition to their own; org admins see org-wide alerts. The centre serves as a persistent audit trail for all automated alerts, ensuring nothing is lost if a device push notification is dismissed.

Analysis

Business Value

Provides a reliable fallback for users who dismiss push notifications or have them disabled. Ensures coordinators and admins have a single place to review all follow-up obligations and system alerts, reducing the risk of missed actions.

Implementation Notes

Store all notifications in a Supabase notifications table (user_id, type, payload JSONB, read_at, created_at). Real-time subscription via Supabase Realtime for instant badge updates. Use BLoC for notification state. Ensure full screen reader accessibility: semantic list, announced unread count, focus management on mark-read action.

Components (210)

User Interface (5)

Service Layer (4)

Data 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 (30)

See Pause Status Notification When Pause Is Activated or Deactivated
medium 3 pts

As a As a Peer Mentor (Likeperson)

I want to receive an in-app notification when my pause status is activated or deactivated — whether by myself or by a coordinator — so that I have a clear record of each status change

So that I am always aware of my current active status and can take any required follow-up actions, such as confirming my return date or reviewing contacts that were reassigned during my pause

Acceptance Criteria
  • Given a peer mentor's pause is activated (by themselves or a coordinator), when the pause event is saved, then a pause-notification-card appears in the Notification Centre.
  • Given the pause notification card renders, when it is displayed, then it shows the pause start date, expected return date (if set), and the initiating party (self or coordinator name).
  • Given a coordinator activated the pause, when the peer mentor views the notification, then the card text explicitly states 'Your coordinator [name] has placed you on pause.'
  • +3 more
View Full Story →
Manage In-app Notification Preferences
medium 5 pts

As a As a Peer Mentor (Likeperson)

I want to access a notification preferences screen from within the Notification Centre where I can toggle individual notification categories on or off and set my preferred delivery channel (in-app only vs. push + in-app)

So that I can control the volume and nature of the notifications I receive, preventing notification fatigue while ensuring I still receive the categories I consider important

Acceptance Criteria
  • Given the peer mentor taps the preferences icon in the Notification Centre, when navigation resolves, then the notification-preferences-screen opens.
  • Given the preferences screen is open, when it renders, then all notification categories applicable to the peer mentor role are listed with their current enabled/disabled toggle state.
  • Given the peer mentor toggles a non-critical category off, when the change is saved, then subsequent notifications of that category are not created in the peer mentor's notification feed.
  • +3 more
View Full Story →
Receive and Act on Scenario-based Prompt Notifications
medium 8 pts

As a As a Peer Mentor (Likeperson)

I want to receive contextual scenario prompt notifications in my Notification Centre that suggest timely actions based on my activity patterns and contact situations

So that I receive personalised guidance at the right moment to improve the quality of my peer support without needing to remember every best-practice rule myself

Acceptance Criteria
  • Given a scenario rule condition is met for a peer mentor, when the scenario evaluation edge function runs, then a scenario-prompt notification record is created in the database.
  • Given a scenario notification exists, when the Notification Centre loads, then it renders as a scenario-prompt-notification-card with the scenario title and action text.
  • Given the peer mentor taps the expansion area of the scenario card, when the sheet opens, then the scenario-prompt-detail-sheet displays the full scenario context and recommended action.
  • +3 more
View Full Story →
See Pause Status Notification When Pause Is Activated or Deactivated
medium 3 pts

As a As a Coordinator

I want to receive an in-app notification when my pause status is activated or deactivated — whether by myself or by a coordinator — so that I have a clear record of each status change

So that I am always aware of my current active status and can take any required follow-up actions, such as confirming my return date or reviewing contacts that were reassigned during my pause

Acceptance Criteria
  • Given a peer mentor's pause is activated (by themselves or a coordinator), when the pause event is saved, then a pause-notification-card appears in the Notification Centre.
  • Given the pause notification card renders, when it is displayed, then it shows the pause start date, expected return date (if set), and the initiating party (self or coordinator name).
  • Given a coordinator activated the pause, when the peer mentor views the notification, then the card text explicitly states 'Your coordinator [name] has placed you on pause.'
  • +3 more
View Full Story →
Manage In-app Notification Preferences
medium 5 pts

As a As a Coordinator

I want to access a notification preferences screen from within the Notification Centre where I can toggle individual notification categories on or off and set my preferred delivery channel (in-app only vs. push + in-app)

So that I can control the volume and nature of the notifications I receive, preventing notification fatigue while ensuring I still receive the categories I consider important

Acceptance Criteria
  • Given the peer mentor taps the preferences icon in the Notification Centre, when navigation resolves, then the notification-preferences-screen opens.
  • Given the preferences screen is open, when it renders, then all notification categories applicable to the peer mentor role are listed with their current enabled/disabled toggle state.
  • Given the peer mentor toggles a non-critical category off, when the change is saved, then subsequent notifications of that category are not created in the peer mentor's notification feed.
  • +3 more
View Full Story →
Receive and Act on Scenario-based Prompt Notifications
medium 8 pts

As a As a Coordinator

I want to receive contextual scenario prompt notifications in my Notification Centre that suggest timely actions based on my activity patterns and contact situations

So that I receive personalised guidance at the right moment to improve the quality of my peer support without needing to remember every best-practice rule myself

Acceptance Criteria
  • Given a scenario rule condition is met for a peer mentor, when the scenario evaluation edge function runs, then a scenario-prompt notification record is created in the database.
  • Given a scenario notification exists, when the Notification Centre loads, then it renders as a scenario-prompt-notification-card with the scenario title and action text.
  • Given the peer mentor taps the expansion area of the scenario card, when the sheet opens, then the scenario-prompt-detail-sheet displays the full scenario context and recommended action.
  • +3 more
View Full Story →
See Pause Status Notification When Pause Is Activated or Deactivated
medium 3 pts

As a As a Organization Administrator

I want to receive an in-app notification when my pause status is activated or deactivated — whether by myself or by a coordinator — so that I have a clear record of each status change

So that I am always aware of my current active status and can take any required follow-up actions, such as confirming my return date or reviewing contacts that were reassigned during my pause

Acceptance Criteria
  • Given a peer mentor's pause is activated (by themselves or a coordinator), when the pause event is saved, then a pause-notification-card appears in the Notification Centre.
  • Given the pause notification card renders, when it is displayed, then it shows the pause start date, expected return date (if set), and the initiating party (self or coordinator name).
  • Given a coordinator activated the pause, when the peer mentor views the notification, then the card text explicitly states 'Your coordinator [name] has placed you on pause.'
  • +3 more
View Full Story →
Manage In-app Notification Preferences
medium 5 pts

As a As a Organization Administrator

I want to access a notification preferences screen from within the Notification Centre where I can toggle individual notification categories on or off and set my preferred delivery channel (in-app only vs. push + in-app)

So that I can control the volume and nature of the notifications I receive, preventing notification fatigue while ensuring I still receive the categories I consider important

Acceptance Criteria
  • Given the peer mentor taps the preferences icon in the Notification Centre, when navigation resolves, then the notification-preferences-screen opens.
  • Given the preferences screen is open, when it renders, then all notification categories applicable to the peer mentor role are listed with their current enabled/disabled toggle state.
  • Given the peer mentor toggles a non-critical category off, when the change is saved, then subsequent notifications of that category are not created in the peer mentor's notification feed.
  • +3 more
View Full Story →
Receive and Act on Scenario-based Prompt Notifications
medium 8 pts

As a As a Organization Administrator

I want to receive contextual scenario prompt notifications in my Notification Centre that suggest timely actions based on my activity patterns and contact situations

So that I receive personalised guidance at the right moment to improve the quality of my peer support without needing to remember every best-practice rule myself

Acceptance Criteria
  • Given a scenario rule condition is met for a peer mentor, when the scenario evaluation edge function runs, then a scenario-prompt notification record is created in the database.
  • Given a scenario notification exists, when the Notification Centre loads, then it renders as a scenario-prompt-notification-card with the scenario title and action text.
  • Given the peer mentor taps the expansion area of the scenario card, when the sheet opens, then the scenario-prompt-detail-sheet displays the full scenario context and recommended action.
  • +3 more
View Full Story →
Filter Notifications by Type
high 5 pts

As a As a Peer Mentor (Likeperson)

I want to filter the notification list by category (e.g. Reminders, Certifications, Scenario Prompts, Pause Status) using a filter bar at the top of the Notification Centre

So that I can quickly find the specific type of update I am looking for without scrolling through unrelated notifications

Acceptance Criteria
  • Given the notification centre is open, when the filter bar renders, then only notification categories relevant to the peer mentor role are shown as filter chips.
  • Given the peer mentor taps a filter chip, when the selection is applied, then the list immediately updates to show only notifications matching that category.
  • Given a filter is active and the peer mentor taps the same chip again, when deselection occurs, then the full unfiltered notification list is restored.
  • +2 more
View Full Story →
Mark Individual Notifications as Read
high 5 pts

As a As a Peer Mentor (Likeperson)

I want to mark a notification as read either by tapping it or by swiping it, and to see the unread badge count on the navigation tab update in real time

So that my notification inbox accurately reflects only genuinely new information and I am not repeatedly distracted by alerts I have already seen

Acceptance Criteria
  • Given an unread notification is tapped, when the notification detail screen opens, then the notification is marked as read in the database and the unread indicator is removed from the list item upon return.
  • Given an unread notification is swiped with a mark-read gesture, when the gesture is completed, then the notification is marked read without navigating away, and the visual indicator updates immediately.
  • Given one or more notifications are read, when the unread count changes, then the badge on the Notifications tab in the bottom navigation updates within one second.
  • +2 more
View Full Story →
View Certification Expiry Notification and Initiate Renewal
high 5 pts

As a As a Peer Mentor (Likeperson)

I want to receive a prominent in-app notification when my peer mentor certification is approaching its expiry date, and to be able to navigate directly to the renewal screen from that notification

So that I can renew my certification before it lapses, avoiding automatic removal from the organisation's active peer mentor roster and maintaining my ability to support contacts

Acceptance Criteria
  • Given a peer mentor's certification will expire within the configured warning window, when the expiry check runs, then an expiry notification is created and appears in the Notification Centre.
  • Given an expiry notification is displayed, when the notification renders, then it shows the certification name, expiry date, and days remaining with a warning-level colour accent.
  • Given the 'Renew Now' button is tapped, when navigation resolves, then the record-renewal-screen opens pre-loaded with the expiring certification record.
  • +2 more
View Full Story →
Access Full Notification Detail View
high 5 pts

As a As a Peer Mentor (Likeperson)

I want to tap any notification in the list and open a full notification detail view that shows the complete notification content, context, related entity links, and available actions

So that I can read the full content of longer notifications and take all available actions from a single screen without losing my place in the notification list

Acceptance Criteria
  • Given a peer mentor taps a notification list item, when the detail view opens, then the full notification title, body text, timestamp, and type badge are rendered.
  • Given the notification has a related entity, when the detail view renders, then an entity card linking to the related record is shown.
  • Given the detail view is opened for an unread notification, when it renders, then the notification is automatically marked as read.
  • +2 more
View Full Story →
Receive Real-time Assignment Reminder Notifications
high 8 pts

As a As a Peer Mentor (Likeperson)

I want to receive in-app reminder notifications when a contact I am assigned to has not been contacted within the configured follow-up period

So that I can proactively maintain regular contact with all my assigned contacts and avoid them falling through the cracks during busy periods

Acceptance Criteria
  • Given a peer mentor has a contact whose last activity date exceeds the organisation-configured reminder threshold, when the reminder evaluation job runs, then a reminder notification record is created in the notifications table.
  • Given a reminder notification exists, when the peer mentor opens the Notification Centre, then the notification appears as a reminder-notification-card showing the contact name and days overdue.
  • Given the reminder card is visible, when the peer mentor taps the 'Log Activity' action button, then the activity registration wizard opens pre-filled with the overdue contact.
  • +2 more
View Full Story →
Filter Notifications by Type
high 5 pts

As a As a Coordinator

I want to filter the notification list by category (e.g. Reminders, Certifications, Scenario Prompts, Pause Status) using a filter bar at the top of the Notification Centre

So that I can quickly find the specific type of update I am looking for without scrolling through unrelated notifications

Acceptance Criteria
  • Given the notification centre is open, when the filter bar renders, then only notification categories relevant to the peer mentor role are shown as filter chips.
  • Given the peer mentor taps a filter chip, when the selection is applied, then the list immediately updates to show only notifications matching that category.
  • Given a filter is active and the peer mentor taps the same chip again, when deselection occurs, then the full unfiltered notification list is restored.
  • +2 more
View Full Story →
Mark Individual Notifications as Read
high 5 pts

As a As a Coordinator

I want to mark a notification as read either by tapping it or by swiping it, and to see the unread badge count on the navigation tab update in real time

So that my notification inbox accurately reflects only genuinely new information and I am not repeatedly distracted by alerts I have already seen

Acceptance Criteria
  • Given an unread notification is tapped, when the notification detail screen opens, then the notification is marked as read in the database and the unread indicator is removed from the list item upon return.
  • Given an unread notification is swiped with a mark-read gesture, when the gesture is completed, then the notification is marked read without navigating away, and the visual indicator updates immediately.
  • Given one or more notifications are read, when the unread count changes, then the badge on the Notifications tab in the bottom navigation updates within one second.
  • +2 more
View Full Story →
View Certification Expiry Notification and Initiate Renewal
high 5 pts

As a As a Coordinator

I want to receive a prominent in-app notification when my peer mentor certification is approaching its expiry date, and to be able to navigate directly to the renewal screen from that notification

So that I can renew my certification before it lapses, avoiding automatic removal from the organisation's active peer mentor roster and maintaining my ability to support contacts

Acceptance Criteria
  • Given a peer mentor's certification will expire within the configured warning window, when the expiry check runs, then an expiry notification is created and appears in the Notification Centre.
  • Given an expiry notification is displayed, when the notification renders, then it shows the certification name, expiry date, and days remaining with a warning-level colour accent.
  • Given the 'Renew Now' button is tapped, when navigation resolves, then the record-renewal-screen opens pre-loaded with the expiring certification record.
  • +2 more
View Full Story →
Access Full Notification Detail View
high 5 pts

As a As a Coordinator

I want to tap any notification in the list and open a full notification detail view that shows the complete notification content, context, related entity links, and available actions

So that I can read the full content of longer notifications and take all available actions from a single screen without losing my place in the notification list

Acceptance Criteria
  • Given a peer mentor taps a notification list item, when the detail view opens, then the full notification title, body text, timestamp, and type badge are rendered.
  • Given the notification has a related entity, when the detail view renders, then an entity card linking to the related record is shown.
  • Given the detail view is opened for an unread notification, when it renders, then the notification is automatically marked as read.
  • +2 more
View Full Story →
Receive Real-time Assignment Reminder Notifications
high 8 pts

As a As a Coordinator

I want to receive in-app reminder notifications when a contact I am assigned to has not been contacted within the configured follow-up period

So that I can proactively maintain regular contact with all my assigned contacts and avoid them falling through the cracks during busy periods

Acceptance Criteria
  • Given a peer mentor has a contact whose last activity date exceeds the organisation-configured reminder threshold, when the reminder evaluation job runs, then a reminder notification record is created in the notifications table.
  • Given a reminder notification exists, when the peer mentor opens the Notification Centre, then the notification appears as a reminder-notification-card showing the contact name and days overdue.
  • Given the reminder card is visible, when the peer mentor taps the 'Log Activity' action button, then the activity registration wizard opens pre-filled with the overdue contact.
  • +2 more
View Full Story →
Filter Notifications by Type
high 5 pts

As a As a Organization Administrator

I want to filter the notification list by category (e.g. Reminders, Certifications, Scenario Prompts, Pause Status) using a filter bar at the top of the Notification Centre

So that I can quickly find the specific type of update I am looking for without scrolling through unrelated notifications

Acceptance Criteria
  • Given the notification centre is open, when the filter bar renders, then only notification categories relevant to the peer mentor role are shown as filter chips.
  • Given the peer mentor taps a filter chip, when the selection is applied, then the list immediately updates to show only notifications matching that category.
  • Given a filter is active and the peer mentor taps the same chip again, when deselection occurs, then the full unfiltered notification list is restored.
  • +2 more
View Full Story →
Mark Individual Notifications as Read
high 5 pts

As a As a Organization Administrator

I want to mark a notification as read either by tapping it or by swiping it, and to see the unread badge count on the navigation tab update in real time

So that my notification inbox accurately reflects only genuinely new information and I am not repeatedly distracted by alerts I have already seen

Acceptance Criteria
  • Given an unread notification is tapped, when the notification detail screen opens, then the notification is marked as read in the database and the unread indicator is removed from the list item upon return.
  • Given an unread notification is swiped with a mark-read gesture, when the gesture is completed, then the notification is marked read without navigating away, and the visual indicator updates immediately.
  • Given one or more notifications are read, when the unread count changes, then the badge on the Notifications tab in the bottom navigation updates within one second.
  • +2 more
View Full Story →
View Certification Expiry Notification and Initiate Renewal
high 5 pts

As a As a Organization Administrator

I want to receive a prominent in-app notification when my peer mentor certification is approaching its expiry date, and to be able to navigate directly to the renewal screen from that notification

So that I can renew my certification before it lapses, avoiding automatic removal from the organisation's active peer mentor roster and maintaining my ability to support contacts

Acceptance Criteria
  • Given a peer mentor's certification will expire within the configured warning window, when the expiry check runs, then an expiry notification is created and appears in the Notification Centre.
  • Given an expiry notification is displayed, when the notification renders, then it shows the certification name, expiry date, and days remaining with a warning-level colour accent.
  • Given the 'Renew Now' button is tapped, when navigation resolves, then the record-renewal-screen opens pre-loaded with the expiring certification record.
  • +2 more
View Full Story →
Access Full Notification Detail View
high 5 pts

As a As a Organization Administrator

I want to tap any notification in the list and open a full notification detail view that shows the complete notification content, context, related entity links, and available actions

So that I can read the full content of longer notifications and take all available actions from a single screen without losing my place in the notification list

Acceptance Criteria
  • Given a peer mentor taps a notification list item, when the detail view opens, then the full notification title, body text, timestamp, and type badge are rendered.
  • Given the notification has a related entity, when the detail view renders, then an entity card linking to the related record is shown.
  • Given the detail view is opened for an unread notification, when it renders, then the notification is automatically marked as read.
  • +2 more
View Full Story →
Receive Real-time Assignment Reminder Notifications
high 8 pts

As a As a Organization Administrator

I want to receive in-app reminder notifications when a contact I am assigned to has not been contacted within the configured follow-up period

So that I can proactively maintain regular contact with all my assigned contacts and avoid them falling through the cracks during busy periods

Acceptance Criteria
  • Given a peer mentor has a contact whose last activity date exceeds the organisation-configured reminder threshold, when the reminder evaluation job runs, then a reminder notification record is created in the notifications table.
  • Given a reminder notification exists, when the peer mentor opens the Notification Centre, then the notification appears as a reminder-notification-card showing the contact name and days overdue.
  • Given the reminder card is visible, when the peer mentor taps the 'Log Activity' action button, then the activity registration wizard opens pre-filled with the overdue contact.
  • +2 more
View Full Story →
View Consolidated Notification Feed
critical 8 pts

As a As a Peer Mentor (Likeperson)

I want to open the Notification Centre and see all my recent notifications in a single scrollable list, grouped by type and ordered by recency

So that I never miss an important update about my contacts, assignments, certifications, or activity reminders without having to navigate multiple screens

Acceptance Criteria
  • Given the peer mentor opens the Notification Centre, when the screen loads, then the notification list is populated with notifications sorted by created_at descending.
  • Given there are unread notifications, when the list renders, then unread items have a distinct visual indicator (e.g. bold title or accent dot) compared to read items.
  • Given notifications arrive while the screen is open, when Supabase Realtime pushes a new notification record, then the new item appears at the top of the list without requiring a manual pull-to-refresh.
  • +3 more
View Full Story →
Deep-link Navigation from Notification to Relevant Screen
critical 8 pts

As a As a Peer Mentor (Likeperson)

I want to tap a notification and be taken directly to the screen or record it refers to — such as a contact detail, activity registration form, or certification renewal screen — without having to navigate there manually

So that I can take immediate action on a notification in as few taps as possible, reducing the friction between being alerted and completing the required task

Acceptance Criteria
  • Given a notification with a contact deep link is tapped, when the handler resolves the route, then the contact detail screen for the referenced contact opens.
  • Given a notification with a certification expiry deep link is tapped, when the route is resolved, then the certification renewal screen opens pre-loaded with the relevant certification record.
  • Given a notification with an activity registration deep link is tapped, when the route is resolved, then the activity registration wizard opens with default values relevant to the notification context.
  • +2 more
View Full Story →
View Consolidated Notification Feed
critical 8 pts

As a As a Coordinator

I want to open the Notification Centre and see all my recent notifications in a single scrollable list, grouped by type and ordered by recency

So that I never miss an important update about my contacts, assignments, certifications, or activity reminders without having to navigate multiple screens

Acceptance Criteria
  • Given the peer mentor opens the Notification Centre, when the screen loads, then the notification list is populated with notifications sorted by created_at descending.
  • Given there are unread notifications, when the list renders, then unread items have a distinct visual indicator (e.g. bold title or accent dot) compared to read items.
  • Given notifications arrive while the screen is open, when Supabase Realtime pushes a new notification record, then the new item appears at the top of the list without requiring a manual pull-to-refresh.
  • +3 more
View Full Story →
Deep-link Navigation from Notification to Relevant Screen
critical 8 pts

As a As a Coordinator

I want to tap a notification and be taken directly to the screen or record it refers to — such as a contact detail, activity registration form, or certification renewal screen — without having to navigate there manually

So that I can take immediate action on a notification in as few taps as possible, reducing the friction between being alerted and completing the required task

Acceptance Criteria
  • Given a notification with a contact deep link is tapped, when the handler resolves the route, then the contact detail screen for the referenced contact opens.
  • Given a notification with a certification expiry deep link is tapped, when the route is resolved, then the certification renewal screen opens pre-loaded with the relevant certification record.
  • Given a notification with an activity registration deep link is tapped, when the route is resolved, then the activity registration wizard opens with default values relevant to the notification context.
  • +2 more
View Full Story →
View Consolidated Notification Feed
critical 8 pts

As a As a Organization Administrator

I want to open the Notification Centre and see all my recent notifications in a single scrollable list, grouped by type and ordered by recency

So that I never miss an important update about my contacts, assignments, certifications, or activity reminders without having to navigate multiple screens

Acceptance Criteria
  • Given the peer mentor opens the Notification Centre, when the screen loads, then the notification list is populated with notifications sorted by created_at descending.
  • Given there are unread notifications, when the list renders, then unread items have a distinct visual indicator (e.g. bold title or accent dot) compared to read items.
  • Given notifications arrive while the screen is open, when Supabase Realtime pushes a new notification record, then the new item appears at the top of the list without requiring a manual pull-to-refresh.
  • +3 more
View Full Story →
Deep-link Navigation from Notification to Relevant Screen
critical 8 pts

As a As a Organization Administrator

I want to tap a notification and be taken directly to the screen or record it refers to — such as a contact detail, activity registration form, or certification renewal screen — without having to navigate there manually

So that I can take immediate action on a notification in as few taps as possible, reducing the friction between being alerted and completing the required task

Acceptance Criteria
  • Given a notification with a contact deep link is tapped, when the handler resolves the route, then the contact detail screen for the referenced contact opens.
  • Given a notification with a certification expiry deep link is tapped, when the route is resolved, then the certification renewal screen opens pre-loaded with the relevant certification record.
  • Given a notification with an activity registration deep link is tapped, when the route is resolved, then the activity registration wizard opens with default values relevant to the notification context.
  • +2 more
View Full Story →