Bulk & Proxy Registration
Feature Detail
Description
Coordinators can log activities on behalf of one or more peer mentors who are unwilling or unable to use the app themselves. Single-proxy mode allows the coordinator to select a peer mentor and fill in the activity wizard as if acting as that person. Bulk mode targets recurring group activities — e.g. a weekly exercise session — where the coordinator selects multiple peer mentors and a single activity record and creates linked individual registrations in one action. All proxy-created records are flagged with the coordinator's user ID as the recorder alongside the peer mentor's ID as the attributed actor, creating a clear audit trail. This distinction is important for Bufdir reporting: the activity counts toward the peer mentor's statistics, not the coordinator's.
Analysis
Captures activity that would otherwise go entirely unrecorded because a subset of peer mentors will never self-report regardless of how simple the app is. For NHF with 1 400 local chapters, the volume of unrecorded activity this represents is significant.
Add a `recorded_by_user_id` column to the activities table in addition to `peer_mentor_id`. Coordinator's contact list (already in the app) provides the peer mentor selector. Bulk mode renders a multi-select list of contacts; on confirm, insert one activity row per selected peer mentor in a single Supabase RPC call (batch insert). Duplicate-detection logic (see NHF requirement) should check for same peer_mentor_id + activity_type + date within the same coordinator's bulk session.
Components (207)
Shared Components
These components are reused across multiple features
User Interface (59)
Service Layer (52)
Data Layer (33)
Infrastructure (54)
User Stories (8)
As a As a Coordinator
I want to view a log of all activities I have registered on behalf of other peer mentors, with the ability to identify and review each proxy entry
So that I can verify the accuracy of my proxy submissions, correct errors, and demonstrate accountability when questioned about entries I have made on others' behalf
- Given the coordinator navigates to their proxy activity log, when the log loads, then it shows all activities they have submitted on behalf of other peer mentors, sorted by most recent first
- Given the proxy activity log is displayed, when the coordinator views an entry, then it shows the peer mentor's name, activity type, date, duration, submission timestamp, and the coordinator's name as submitter
- Given the log is displayed, when the coordinator filters by a specific peer mentor, then only activities registered for that mentor are shown
- +3 more
As a As a Coordinator
I want to save and reuse templates for recurring group activities so that I can register the same weekly or monthly activity with a single tap
So that the registration of predictable, repeated activities requires minimal effort and is consistently structured across time periods
- Given the coordinator is on the bulk registration screen, when they tap 'Load template', then a list of their previously saved templates is shown with name, participant count, and activity type
- Given the coordinator selects a template, when it loads, then the activity form and participant list are pre-populated with the template values
- Given the coordinator has loaded a template, when they adjust individual fields (e.g., date, duration, remove one participant), then changes apply only to this submission and do not modify the saved template
- +4 more
As a As a Coordinator
I want the proxy registration form to pre-fill with sensible defaults (today's date, standard duration, most-used activity type) that I can override when needed
So that entering a typical activity on behalf of a peer mentor requires as few taps as possible, matching the 'under two clicks' design goal
- Given the coordinator opens the proxy activity form for a peer mentor, when the form renders, then the date field defaults to today's date
- Given the coordinator opens the proxy activity form, when the form renders, then the duration field defaults to 30 minutes (or the organization's configured standard)
- Given the coordinator has previously registered activities of the same type, when they open the proxy form, then the activity type pre-selects the most recently used type
- +3 more
As a As a Coordinator
I want to search and filter my assigned peer mentor contacts when choosing who to register activities for
So that I can quickly find the right peer mentor in large chapters without scrolling through an unfiltered list
- Given the coordinator opens the peer mentor selector for proxy registration, when the list loads, then it shows all peer mentors within the coordinator's access scope, with name and chapter affiliation visible
- Given the peer mentor selector is open, when the coordinator types in the search field, then the list filters in real time to show only matching names
- Given the peer mentor selector is open, when the coordinator applies a status filter (e.g., 'Active only'), then paused or inactive peer mentors are hidden
- +3 more
As a As a Coordinator
I want to see a clear summary of all activities I am about to submit in a bulk operation before they are saved
So that I can catch mistakes — wrong date, missing participants, wrong activity type — before the data is committed to the database
- Given the coordinator has selected peer mentors and filled the activity form, when they tap 'Next', then a confirmation screen displays a summary of the activity details and the complete list of selected mentors
- Given the confirmation screen is shown, when any mentor has a potential duplicate detected, then that mentor's row is highlighted with a warning icon and brief explanation
- Given the confirmation screen is shown, when the coordinator taps 'Back', then they return to the form with all their selections and entries intact
- +3 more
As a As a Coordinator
I want to register an activity on behalf of a specific peer mentor who is unable or unwilling to use the app themselves
So that no volunteer work goes unrecorded and the organization maintains complete activity data even for digitally excluded peer mentors
- Given the coordinator is on the home or activity screen, when they tap the registration action button, then a mode selector appears offering 'For myself' or 'On behalf of a peer mentor' options
- Given the coordinator selects proxy mode, when the peer mentor selector opens, then it displays a filterable list of all peer mentors assigned to the coordinator's chapter or scope
- Given the coordinator selects a specific peer mentor, when they proceed to the activity form, then the form is pre-populated with defaults (today's date, standard duration) and clearly shows the selected peer mentor's name in the header
- +3 more
As a As a Coordinator
I want to be warned when a proxy registration I am submitting appears to duplicate an existing activity for the same peer mentor on the same date
So that I can avoid double-counting activities that would inflate statistics and create data integrity problems for Bufdir reporting
- Given the coordinator submits a proxy registration, when the system detects an existing activity for the same peer mentor on the same date with the same activity type, then a duplicate warning dialog is shown before final save
- Given the duplicate warning dialog is shown, when the coordinator reviews it, then the dialog displays the conflicting existing activity's details (date, duration, who registered it, registration source)
- Given the duplicate warning is displayed, when the coordinator decides to proceed anyway, then the registration is saved with a flag indicating it was submitted despite a duplicate warning
- +3 more
As a As a Coordinator
I want to register the same activity (e.g., a weekly group session) for multiple peer mentors in a single submission
So that I can log recurring group activities in seconds rather than entering the same data repeatedly for each participant
- Given the coordinator selects bulk registration mode, when the multi-select peer mentor list opens, then they can search, filter by chapter, and select multiple mentors with checkboxes
- Given multiple peer mentors are selected, when the coordinator fills out the shared activity form, then all fields (activity type, date, duration, notes) apply to all selected mentors
- Given the coordinator taps submit, when the bulk registration is processed, then a confirmation screen summarizes the number of registrations to be created and lists all selected mentors
- +4 more