medium complexity high priority must have MVP extracted Activity Registration Confidence: 100%
5
Components
0
Shared
13
User Stories
Yes
Analyzed

Description

Event Creation & Management allows peer mentors and coordinators to create structured events with multiple participants, as distinct from single-contact activity logs. The multi-step event wizard collects a title, date, time, duration, location, and summary before creating the event and linking participants. An event detail screen shows all registered participants, supports post-creation edits, and aggregates the event as a single reportable unit for Bufdir purposes. This feature merges the Event Wizard, Event Registration, and Group Activity Creation concepts into one unified flow.

Analysis

Business Value

Group activities — weekly exercise sessions, café meetings, guided tours — represent a significant share of peer mentor work but are poorly served by individual activity logging. Forcing coordinators to create one registration per participant multiplies effort and discourages accurate reporting. A single event covering multiple participants dramatically reduces the reporting burden for recurring group formats, improves data quality for Bufdir aggregate statistics, and enables coordinators to track participation trends over time. This is especially impactful for HLF and NHF who run large organized group sessions regularly.

Implementation Notes

Event creation reuses the activity wizard infrastructure but extends the data model with an event_participants join table linked to the contacts/peer_mentors tables. The participant selection widget renders a searchable, multi-select list backed by the Contact Repository with debounced Supabase queries. Events are stored in Supabase with RLS ensuring coordinators can only see events within their organization scope. The event detail screen subscribes to a Supabase real-time channel so participant additions by other coordinators appear instantly. GoRouter handles deep-linking to event detail pages from the notification system. All participant counts feed directly into Bufdir report generation aggregations.

Dependencies

activity-logging-wizardcontact-list-searchsupabase-backend-core

Definition of Done

Event wizard completes with title, date, time, duration, location, summary
Multiple participants can be selected from contact list during creation
Event detail screen shows all participants with removal option
Created event aggregates correctly in Bufdir report totals
Coordinator and peer mentor roles see appropriate event subsets via RLS
Real-time participant updates reflected without manual refresh
WCAG 2.2 AA compliance verified on all event screens

User Stories (13)

Add Participants to an Existing Event
medium 2 pts

As a As a user

I want I want to add new participants to an already-created event directly from the Event Detail Screen

So that So that I can register late arrivals or contacts who joined the activity after the event was initially created

Acceptance Criteria
  • Given an event detail screen is open, when the user taps 'Add Participants', then the Event Participants Widget opens showing only contacts not already linked to the event
  • Given the user searches and selects new contacts in the widget, when they confirm the selection, then the Event Service adds the new participants and they appear in the participant list on the detail screen
  • Given a participant was already added to the event, when the user opens the add-participant widget, then that contact does not appear in search results
  • +2 more
View Full Story →
Remove a Participant from an Event
medium 2 pts

As a As a user

I want I want to remove a participant from an event's participant list from the Event Detail Screen

So that So that I can correct accidental additions or remove contacts who did not actually attend without deleting the entire event

Acceptance Criteria
  • Given an event detail screen with participants is open, when the user activates the remove action on a participant entry, then a confirmation dialog is shown before deletion
  • Given the user confirms removal, when the Event Service completes the delete operation, then the participant no longer appears in the list
  • Given the user cancels the confirmation dialog, when returning to the detail screen, then the participant list is unchanged
  • +2 more
View Full Story →
Edit Event Details After Creation
medium 3 pts

As a As a user

I want I want to edit the title, date, time, duration, location, or summary of an existing event from the Event Detail Screen

So that So that I can correct mistakes or update event information after the initial registration without deleting and recreating the entire event

Acceptance Criteria
  • Given an event detail screen is open, when the user taps the edit action, then the event fields become editable
  • Given the user modifies a field and taps 'Save', then the updated value is persisted via the Event Service and displayed immediately on the detail screen
  • Given the user begins editing but taps 'Cancel', then no changes are saved and the original values are restored
  • +2 more
View Full Story →
Add Participants to an Existing Event
medium 2 pts

As a As a user

I want I want to add new participants to an already-created event directly from the Event Detail Screen

So that So that I can register late arrivals or contacts who joined the activity after the event was initially created

Acceptance Criteria
  • Given an event detail screen is open, when the user taps 'Add Participants', then the Event Participants Widget opens showing only contacts not already linked to the event
  • Given the user searches and selects new contacts in the widget, when they confirm the selection, then the Event Service adds the new participants and they appear in the participant list on the detail screen
  • Given a participant was already added to the event, when the user opens the add-participant widget, then that contact does not appear in search results
  • +2 more
View Full Story →
Remove a Participant from an Event
medium 2 pts

As a As a user

I want I want to remove a participant from an event's participant list from the Event Detail Screen

So that So that I can correct accidental additions or remove contacts who did not actually attend without deleting the entire event

Acceptance Criteria
  • Given an event detail screen with participants is open, when the user activates the remove action on a participant entry, then a confirmation dialog is shown before deletion
  • Given the user confirms removal, when the Event Service completes the delete operation, then the participant no longer appears in the list
  • Given the user cancels the confirmation dialog, when returning to the detail screen, then the participant list is unchanged
  • +2 more
View Full Story →
Edit Event Details After Creation
medium 3 pts

As a As a user

I want I want to edit the title, date, time, duration, location, or summary of an existing event from the Event Detail Screen

So that So that I can correct mistakes or update event information after the initial registration without deleting and recreating the entire event

Acceptance Criteria
  • Given an event detail screen is open, when the user taps the edit action, then the event fields become editable
  • Given the user modifies a field and taps 'Save', then the updated value is persisted via the Event Service and displayed immediately on the detail screen
  • Given the user begins editing but taps 'Cancel', then no changes are saved and the original values are restored
  • +2 more
View Full Story →
View Full Event Details and Participant List
high 3 pts

As a As a user

I want I want to open a dedicated event detail screen that shows all event fields and the full list of registered participants

So that So that I can confirm the event is correctly recorded and review who is participating before or after the event takes place

Acceptance Criteria
  • Given an event exists, when the user navigates to the event (from history, notification, or post-creation redirect), then the Event Detail Screen displays all six event fields with correct values
  • Given the Event Detail Screen is open, when another authorized user adds a participant to the same event, then the new participant appears in the list within 2 seconds without a manual refresh
  • Given the Event Detail Screen is open, when the user deep-links from a push notification referencing an event ID, then the screen loads the correct event via GoRouter
  • +2 more
View Full Story →
View Full Event Details and Participant List
high 3 pts

As a As a user

I want I want to open a dedicated event detail screen that shows all event fields and the full list of registered participants

So that So that I can confirm the event is correctly recorded and review who is participating before or after the event takes place

Acceptance Criteria
  • Given an event exists, when the user navigates to the event (from history, notification, or post-creation redirect), then the Event Detail Screen displays all six event fields with correct values
  • Given the Event Detail Screen is open, when another authorized user adds a participant to the same event, then the new participant appears in the list within 2 seconds without a manual refresh
  • Given the Event Detail Screen is open, when the user deep-links from a push notification referencing an event ID, then the screen loads the correct event via GoRouter
  • +2 more
View Full Story →
View Event as an Aggregated Bufdir Reporting Unit
high 3 pts

As a As a Coordinator

I want I want events to be automatically aggregated as single reportable units in Bufdir reports, with total participant count and duration reflected correctly

So that So that group activities are reported accurately to Bufdir without requiring me to manually consolidate individual activity entries per participant

Acceptance Criteria
  • Given a coordinator generates a Bufdir report for a period containing events, when the report is previewed, then each event appears as a single activity line with its participant count displayed
  • Given an event has 8 participants, when it is included in a Bufdir report, then the participant count shown is 8 and the event is not duplicated into 8 individual entries
  • Given an event spans a reporting period boundary (e.g., created before but completed after), when the report is generated, then the event is attributed to the period containing the event date
  • +2 more
View Full Story →
Search and Select Multiple Participants for an Event
critical 3 pts

As a As a user

I want I want to search for contacts by name and select multiple participants to attach to an event using a searchable multi-select widget

So that So that I can quickly find and link all relevant contacts to the event without manually typing individual entries

Acceptance Criteria
  • Given the participant selection step in the wizard is open, when the user types at least 2 characters in the search field, then matching contacts from their organization appear as selectable items within 500ms of stopping typing
  • Given search results are displayed, when the user taps a contact, then the contact is added as a chip above the search field and removed from the results list
  • Given a participant chip is displayed, when the user taps the remove icon on the chip, then the participant is deselected and the contact becomes searchable again
  • +3 more
View Full Story →
Create a Group Event via Multi-Step Wizard
critical 5 pts

As a As a user

I want I want to create a group event by completing a guided multi-step wizard that collects title, date, time, duration, location, and summary

So that So that I can register a single group activity covering multiple participants as one reportable unit rather than creating a separate activity log per person

Acceptance Criteria
  • Given an authenticated user on the Add screen, when they select 'Create Event', then the Event Creation Wizard Screen opens at step 1 (title input)
  • Given the user is on any wizard step, when they tap 'Next', then the input is validated and the user only advances if the field passes validation
  • Given the user is on any wizard step other than the first, when they tap 'Back', then they return to the previous step with previously entered values preserved
  • +3 more
View Full Story →
Search and Select Multiple Participants for an Event
critical 3 pts

As a As a user

I want I want to search for contacts by name and select multiple participants to attach to an event using a searchable multi-select widget

So that So that I can quickly find and link all relevant contacts to the event without manually typing individual entries

Acceptance Criteria
  • Given the participant selection step in the wizard is open, when the user types at least 2 characters in the search field, then matching contacts from their organization appear as selectable items within 500ms of stopping typing
  • Given search results are displayed, when the user taps a contact, then the contact is added as a chip above the search field and removed from the results list
  • Given a participant chip is displayed, when the user taps the remove icon on the chip, then the participant is deselected and the contact becomes searchable again
  • +3 more
View Full Story →
Create a Group Event via Multi-Step Wizard
critical 5 pts

As a As a user

I want I want to create a group event by completing a guided multi-step wizard that collects title, date, time, duration, location, and summary

So that So that I can register a single group activity covering multiple participants as one reportable unit rather than creating a separate activity log per person

Acceptance Criteria
  • Given an authenticated user on the Add screen, when they select 'Create Event', then the Event Creation Wizard Screen opens at step 1 (title input)
  • Given the user is on any wizard step, when they tap 'Next', then the input is validated and the user only advances if the field passes validation
  • Given the user is on any wizard step other than the first, when they tap 'Back', then they return to the previous step with previously entered values preserved
  • +3 more
View Full Story →