medium complexity extracted Contact & Peer Mentor Management Confidence: 100%
11
Components
198
Shared
6
User Stories
Yes
Analyzed

Description

Allows coordinators to register activities and report on behalf of peer mentors who cannot or will not use the app. This covers both individual proxy entries (one coordinator fills in for one mentor) and bulk registration for recurring group activities (e.g., a weekly training session with many attendees). The proxy registration must clearly attribute the activity to the correct peer mentor, not the coordinator, for accurate Bufdir reporting. Both NHF and HLF emphasized that some mentors—particularly older or less digitally confident users—will never use the app themselves, so proxy registration is a long-term necessity, not a temporary workaround.

Analysis

Business Value

Ensures full activity capture even when peer mentors do not self-report. Prevents underreporting that currently leads to lost Bufdir funding. Enables coordinators to manage their entire team from one interface.

Implementation Notes

Proxy entries should store both the acting coordinator ID and the attributed peer mentor ID in the activity record. Bulk registration UI: select a recurring activity template, pick multiple peer mentors from a multi-select contact list, submit. Use a confirmation step showing all attributed mentors before final submission.

Components (209)

User Interface (4)

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 (6)

Use a Recurring Template to Speed Up Repeated Proxy Registrations
medium 5 pts

As a As a Coordinator

I want to save a recurring activity template and reuse it for weekly or monthly proxy registrations

So that I don't have to re-enter the same activity type, duration, and participant list every time a recurring session takes place

Acceptance Criteria
  • Given the coordinator is on the bulk proxy registration screen, when they tap 'Load template', then a list of their saved recurring templates appears with name, activity type, and participant count
  • Given the coordinator selects a template, when the form loads, then activity type, duration, and participant list are pre-populated and only the date defaults to today
  • Given the coordinator wants to save a new template, when they complete a bulk registration and tap 'Save as template', then they are prompted for a template name and the template is stored for future use
  • +2 more
View Full Story →
View an Audit Trail of All Proxy Registrations Made by the Coordinator
medium 5 pts

As a As a Coordinator

I want to view a filterable log of all activities I have registered on behalf of peer mentors

So that I can verify my submissions, identify any errors, and demonstrate accountability if a registration is questioned

Acceptance Criteria
  • Given the coordinator navigates to the proxy audit log, when the screen loads, then all activities they have registered on behalf of others are listed in reverse chronological order with proxy badges visible
  • Given the coordinator applies a date range filter, when the filter is confirmed, then only proxy registrations within that range are displayed and the total count updates accordingly
  • Given the coordinator taps a log entry, when the detail screen loads, then the full activity record is shown including the proxy audit badge, the coordinator's name, and the submission timestamp
  • +2 more
View Full Story →
Detect and Resolve Duplicate Proxy Registrations Before Submission
high 8 pts

As a As a Coordinator

I want to be warned before I submit a proxy registration that appears to duplicate an existing record for the same peer mentor, date, and activity type

So that I avoid inflating activity counts with duplicate entries that would distort statistics and Bufdir reports

Acceptance Criteria
  • Given the coordinator submits a proxy registration, when the system detects an existing record for the same peer mentor, date, and activity type within a 2-hour window, then a duplicate warning dialog is shown before the record is saved
  • Given the duplicate warning dialog is shown, when the coordinator views it, then both the existing record and the pending record are displayed side by side with key fields highlighted
  • Given the coordinator decides the records are distinct, when they confirm submission, then the record is saved with a 'duplicate-reviewed' flag and the original record is unchanged
  • +2 more
View Full Story →
Bulk Register a Recurring Group Activity for Multiple Peer Mentors
high 13 pts

As a As a Coordinator

I want to register the same recurring group activity (such as a weekly training session) for multiple peer mentors at once

So that I can handle high-volume recurring events efficiently without entering duplicate data for each participant individually

Acceptance Criteria
  • Given the coordinator selects 'Bulk register' from the proxy mode selector, when the multi-select screen loads, then all peer mentors within their scope appear with checkboxes and a 'select all' control
  • Given the coordinator has selected multiple peer mentors, when they proceed to the activity form, then they fill in the shared activity details once and a participant count badge shows how many records will be created
  • Given the coordinator reaches the bulk confirmation screen, when they review the batch, then each participant is listed with the activity details and they can deselect individuals before submitting
  • +2 more
View Full Story →
Register Proxy Activity Only for Contacts Within My Assigned Chapter Scope
critical 5 pts

As a As a Coordinator

I want the system to enforce that I can only register proxy activities for peer mentors assigned to my chapter or organisational unit

So that I cannot accidentally or deliberately submit activities on behalf of peer mentors outside my area of responsibility, protecting data integrity across chapters

Acceptance Criteria
  • Given the coordinator enters the proxy registration flow, when the peer mentor list loads, then only peer mentors whose primary or secondary chapter assignment matches the coordinator's active chapter are shown
  • Given a coordinator with multi-chapter access, when they enter the proxy flow, then they are prompted to select an active chapter context before the peer mentor list is shown
  • Given the coordinator attempts to submit a proxy registration via the API with a peer mentor ID outside their scope, when the backend processes the request, then RLS policies reject the insert and return a permission error
  • +2 more
View Full Story →
Register Activity on Behalf of a Single Peer Mentor
critical 8 pts

As a As a Coordinator

I want to register an activity on behalf of a single peer mentor from my contact list

So that peer mentors who lack digital skills or choose not to use the app still have their contributions accurately recorded

Acceptance Criteria
  • Given the coordinator is on the main action menu, when they tap 'Register for peer mentor', then a proxy mode selector screen appears with a list of their assigned peer mentors
  • Given the coordinator has selected a peer mentor, when they complete the activity form, then all fields pre-fill with sensible defaults (today's date, 30 min duration) matching that peer mentor's history
  • Given the coordinator submits the form, when the record is saved, then the activity is attributed to the selected peer mentor and a proxy audit badge is attached to the record
  • +2 more
View Full Story →