Bulk Registration
Feature Detail
Description
Coordinators can register the same activity type for multiple peer mentors in a single submission, covering scenarios such as a weekly group meeting, a training session, or any recurring event where many participants share the same date, duration, and activity type. Instead of repeating the same form N times, the coordinator fills in the shared activity details once, selects all relevant participants, and submits a batch. The backend expands the batch into individual activity records per peer mentor, ensuring statistics and Bufdir reporting remain per-person while eliminating repetitive data entry. This feature directly addresses the high-volume coordinator use case raised by NHF and HLF.
Analysis
HLF reported a single peer mentor with 380 individual registrations in one year; coordinators managing groups of such volunteers face an even larger administrative burden. Bulk registration collapses that burden from O(n) form submissions to a single action, making high-frequency reporting feasible without burnout. For Bufdir compliance, this is not cosmetic - organizations that cannot sustain accurate reporting risk funding cuts, and frictionless bulk entry is the most direct lever to improve data completeness for group-format activities. The feature also reinforces the platform's value proposition to coordinators, who are a critical user segment for adoption and retention.
The API endpoint accepts a batch payload containing shared activity fields and an array of peer mentor user IDs; server-side expansion creates one activity row per user within a single database transaction so partial failures roll back cleanly. The mobile UI introduces a multi-select participant picker (checkbox list filtered to the coordinator's managed members) inserted between the activity detail form and the submit step, reusing existing wizard navigation components. Validation must enforce that all selected peer mentor IDs belong to the submitting coordinator's organization to prevent cross-tenant data leakage. Batch size should be capped (e.g. 100 participants) with a clear error message if exceeded. The mutation outbox stores bulk payloads as a single queued item to avoid outbox bloat; the sync service sends it as one API call and handles per-record error responses returned in the batch result.
Components (41)
Shared Components
These components are reused across multiple features
User Interface (9)
Service Layer (15)
Data Layer (8)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.