medium complexity critical priority must have MVP extracted Activity Registration Confidence: 100%
8
Components
0
Shared
15
User Stories
Yes
Analyzed

Description

The Activity Logging Wizard provides peer mentors with the fastest possible path to registering an activity. The wizard guides users through a multi-step flow covering contact selection, date, time, duration, and a brief summary, with intelligent standard default values (today's date, 30 minutes) that can be overridden. Quick Registration mode targets completion in under two clicks for the most common scenarios. The feature consolidates Activity Type Selection, the multi-step wizard, default values management, and quick registration into a single cohesive flow designed around the lowest possible cognitive load.

Analysis

Business Value

All three organizations — NHF, Blindeforbundet, and HLF — ranked simplified activity registration as their single highest priority, describing the current Word-form and manual Excel aggregation workflow as unsustainable. One HLF peer mentor had 380 individual registrations in a single year; friction at this step causes massive under-reporting that directly undermines Bufdir funding claims. Pre-filled defaults eliminate repetitive data entry for the 60–70% of registrations that have no expense component, turning a multi-minute chore into a seconds-long interaction. Removing friction here is the foundational value proposition of the entire app.

Implementation Notes

Built in Flutter with BLoC for wizard step state and Riverpod for dependency injection. Each wizard step is a separate route managed via GoRouter nested navigation within StatefulShellRoute to preserve back-stack correctly. Default values (date, duration, activity type) are stored in Supabase and fetched on wizard launch; users override per-registration or update their stored defaults. Activity types are seeded per organization from a Supabase table with RLS policies. The wizard validates each step before advancing and supports partial saves so an interrupted registration can be resumed. WCAG 2.2 AA compliance is non-negotiable: every field has a semantic label, tap targets meet 44×44 dp minimums, and contrast ratios exceed 4.5:1.

Dependencies

email-password-loginrole-based-access-controlsupabase-backend-coredesign-token-system

Definition of Done

Wizard completes end-to-end in ≤2 taps for default-value registrations
Standard defaults (date, 30 min) pre-populated and overridable
Activity type selection screen lists org-specific types from Supabase
All wizard steps pass WCAG 2.2 AA automated and manual checks
BLoC unit tests cover all state transitions and validation rules
Saved activity appears immediately in peer mentor's activity history
Works offline with optimistic local save and background sync

User Stories (15)

Resume an Interrupted Activity Registration Draft
medium 5 pts

As a As a user

I want I want the system to automatically save my progress through the activity registration wizard so I can resume from where I left off if interrupted

So that So that I do not lose entered data if I am interrupted by a phone call, app switch, or other distraction during registration

Acceptance Criteria
  • Given the user has advanced through at least one wizard step, when they close the app or navigate away, then the current wizard state is saved as a draft in Supabase
  • Given a saved draft exists, when the user launches the activity registration flow again, then a prompt offers 'Resume Draft' (with a brief description of the draft's contents) or 'Start New'
  • Given the user selects 'Resume Draft', when the wizard reopens, then it navigates to the first incomplete step with all previously entered data restored in all preceding steps
  • +3 more
View Full Story →
Resume an Interrupted Activity Registration Draft
medium 5 pts

As a As a user

I want I want the system to automatically save my progress through the activity registration wizard so I can resume from where I left off if interrupted

So that So that I do not lose entered data if I am interrupted by a phone call, app switch, or other distraction during registration

Acceptance Criteria
  • Given the user has advanced through at least one wizard step, when they close the app or navigate away, then the current wizard state is saved as a draft in Supabase
  • Given a saved draft exists, when the user launches the activity registration flow again, then a prompt offers 'Resume Draft' (with a brief description of the draft's contents) or 'Start New'
  • Given the user selects 'Resume Draft', when the wizard reopens, then it navigates to the first incomplete step with all previously entered data restored in all preceding steps
  • +3 more
View Full Story →
Override Default Values for a Single Activity Registration
high 2 pts

As a As a user

I want I want to override the pre-filled default values for a specific activity registration without changing my stored defaults

So that So that I can quickly adjust details for activities that differ from my typical pattern (different date, duration, or activity type) without disrupting my default configuration

Acceptance Criteria
  • Given the wizard launches with pre-filled default values, when the user edits any field, then a visual indicator distinguishes the overridden field from the remaining default-filled fields
  • Given the user edits a pre-filled field, when they complete the wizard and confirm submission, then the activity is saved with the overridden value and the stored default in Supabase remains unchanged
  • Given the user edits a pre-filled field and the Default Values Widget offers 'Use Once' vs 'Save as Default', when the user selects 'Use Once', then only the current registration uses the new value
  • +2 more
View Full Story →
Review Activity Summary and Confirm Submission
high 3 pts

As a As a user

I want I want to review a complete summary of all activity details before submitting, with the ability to edit individual fields

So that So that I can catch and correct errors before the activity is saved, preventing incorrect data from entering Bufdir reports

Acceptance Criteria
  • Given the user has completed all wizard steps, when the Activity Summary Screen is displayed, then all entered fields (activity type, contact, date, time, duration, notes) are shown in a single readable view
  • Given the Activity Summary Screen is displayed, when the user taps an edit shortcut next to a field, then the corresponding wizard step opens with all previously entered data intact
  • Given the user returns from editing a step, when the Activity Summary Screen is shown again, then it reflects the updated values from the edited step
  • +3 more
View Full Story →
Configure Stored Default Values for Activity Registration
high 3 pts

As a As a user

I want I want to configure my stored default values for activity registration (preferred activity type, default duration, and date strategy) that pre-fill the wizard on each launch

So that So that repetitive data entry is eliminated for my most common registration scenarios, making each subsequent registration faster

Acceptance Criteria
  • Given the user accesses the Default Values Widget, when the widget loads, then their current stored defaults are displayed with current values for date strategy, duration, and preferred activity type
  • Given the user changes a default value in the widget and confirms, when the change is saved, then the Activity Registration Service writes the updated defaults to Supabase and confirms success
  • Given the user updates their stored defaults, when they next launch the Activity Wizard, then the updated defaults are pre-filled into the corresponding wizard fields
  • +3 more
View Full Story →
Override Default Values for a Single Activity Registration
high 2 pts

As a As a user

I want I want to override the pre-filled default values for a specific activity registration without changing my stored defaults

So that So that I can quickly adjust details for activities that differ from my typical pattern (different date, duration, or activity type) without disrupting my default configuration

Acceptance Criteria
  • Given the wizard launches with pre-filled default values, when the user edits any field, then a visual indicator distinguishes the overridden field from the remaining default-filled fields
  • Given the user edits a pre-filled field, when they complete the wizard and confirm submission, then the activity is saved with the overridden value and the stored default in Supabase remains unchanged
  • Given the user edits a pre-filled field and the Default Values Widget offers 'Use Once' vs 'Save as Default', when the user selects 'Use Once', then only the current registration uses the new value
  • +2 more
View Full Story →
Review Activity Summary and Confirm Submission
high 3 pts

As a As a user

I want I want to review a complete summary of all activity details before submitting, with the ability to edit individual fields

So that So that I can catch and correct errors before the activity is saved, preventing incorrect data from entering Bufdir reports

Acceptance Criteria
  • Given the user has completed all wizard steps, when the Activity Summary Screen is displayed, then all entered fields (activity type, contact, date, time, duration, notes) are shown in a single readable view
  • Given the Activity Summary Screen is displayed, when the user taps an edit shortcut next to a field, then the corresponding wizard step opens with all previously entered data intact
  • Given the user returns from editing a step, when the Activity Summary Screen is shown again, then it reflects the updated values from the edited step
  • +3 more
View Full Story →
Configure Stored Default Values for Activity Registration
high 3 pts

As a As a user

I want I want to configure my stored default values for activity registration (preferred activity type, default duration, and date strategy) that pre-fill the wizard on each launch

So that So that repetitive data entry is eliminated for my most common registration scenarios, making each subsequent registration faster

Acceptance Criteria
  • Given the user accesses the Default Values Widget, when the widget loads, then their current stored defaults are displayed with current values for date strategy, duration, and preferred activity type
  • Given the user changes a default value in the widget and confirms, when the change is saved, then the Activity Registration Service writes the updated defaults to Supabase and confirms success
  • Given the user updates their stored defaults, when they next launch the Activity Wizard, then the updated defaults are pre-filled into the corresponding wizard fields
  • +3 more
View Full Story →
Register Activity on Behalf of a Peer Mentor Using the Wizard
high 5 pts

As a As a Coordinator

I want I want to use the activity registration wizard to log an activity on behalf of a specific peer mentor who cannot or did not register it themselves

So that So that all peer support activities are captured in the system regardless of the peer mentor's digital literacy or availability, preventing underreporting gaps

Acceptance Criteria
  • Given the coordinator initiates an activity registration, when the wizard launches in coordinator mode, then the first step presents a peer mentor selection before proceeding to the standard activity type and contact selection steps
  • Given the coordinator selects a peer mentor, when they proceed through the wizard, then the activity type list is scoped to the selected peer mentor's organization
  • Given the coordinator completes the wizard and submits, when the activity is saved, then the activity record is associated with the peer mentor's user ID and appears in the peer mentor's activity history and statistics
  • +3 more
View Full Story →
Select Activity Type to Begin Registration
critical 3 pts

As a As a user

I want I want to select the type of peer support activity I performed from a visually clear, organization-specific list of activity types

So that So that my activity is correctly categorized for Bufdir grant reporting and organizational statistics from the very first step

Acceptance Criteria
  • Given the user is authenticated and has the peer-mentor or coordinator role, when they initiate a new activity registration, then the Activity Type Selection Screen is displayed within 500ms showing all activity types for their organization
  • Given the Activity Type Selection Screen is displayed, when the user taps an activity type, then the wizard immediately advances to the next step without requiring a separate confirmation tap
  • Given the organization has custom label overrides configured, when the Activity Type Selection Screen is rendered, then activity type names use the organization-specific terminology from the dynamic labels system
  • +3 more
View Full Story →
Register Common Activity in Under Two Taps (Quick Registration)
critical 5 pts

As a As a user

I want I want to register my most common peer support activity using stored defaults so that the entire registration completes in under two taps

So that So that registering a typical activity takes seconds rather than minutes, eliminating the friction that causes underreporting

Acceptance Criteria
  • Given the user has stored default values for activity type, contact, date strategy (today), and duration, when they initiate Quick Registration, then a pre-filled confirmation screen is displayed without entering the multi-step wizard
  • Given the Quick Registration confirmation screen is displayed, when the user taps 'Register', then the activity is saved to Supabase via the Activity Repository and a success confirmation is shown within 2 seconds
  • Given the Quick Registration confirmation screen is displayed, when the user taps 'Edit', then the full Activity Wizard Screen opens with all pre-filled values retained for editing
  • +3 more
View Full Story →
Complete Multi-Step Activity Registration Wizard
critical 8 pts

As a As a user

I want I want to be guided through a structured multi-step wizard covering contact selection, date, time, duration, and a brief summary to register a peer support activity

So that So that I can complete a full, validated activity registration without missing required fields, even if I am not technically experienced

Acceptance Criteria
  • Given the user has selected an activity type, when the wizard launches, then steps 1–5 are presented sequentially with a visual step progress indicator showing current position
  • Given the wizard has launched, when default values are available in Supabase for the authenticated user, then the date field pre-fills with today's date and the duration field pre-fills with the user's stored default (e.g., 30 minutes)
  • Given the user is on a wizard step and taps 'Next', when required fields on that step are incomplete or invalid, then the Activity Validation Service returns structured errors displayed inline at the field level without navigating away
  • +4 more
View Full Story →
Select Activity Type to Begin Registration
critical 3 pts

As a As a user

I want I want to select the type of peer support activity I performed from a visually clear, organization-specific list of activity types

So that So that my activity is correctly categorized for Bufdir grant reporting and organizational statistics from the very first step

Acceptance Criteria
  • Given the user is authenticated and has the peer-mentor or coordinator role, when they initiate a new activity registration, then the Activity Type Selection Screen is displayed within 500ms showing all activity types for their organization
  • Given the Activity Type Selection Screen is displayed, when the user taps an activity type, then the wizard immediately advances to the next step without requiring a separate confirmation tap
  • Given the organization has custom label overrides configured, when the Activity Type Selection Screen is rendered, then activity type names use the organization-specific terminology from the dynamic labels system
  • +3 more
View Full Story →
Register Common Activity in Under Two Taps (Quick Registration)
critical 5 pts

As a As a user

I want I want to register my most common peer support activity using stored defaults so that the entire registration completes in under two taps

So that So that registering a typical activity takes seconds rather than minutes, eliminating the friction that causes underreporting

Acceptance Criteria
  • Given the user has stored default values for activity type, contact, date strategy (today), and duration, when they initiate Quick Registration, then a pre-filled confirmation screen is displayed without entering the multi-step wizard
  • Given the Quick Registration confirmation screen is displayed, when the user taps 'Register', then the activity is saved to Supabase via the Activity Repository and a success confirmation is shown within 2 seconds
  • Given the Quick Registration confirmation screen is displayed, when the user taps 'Edit', then the full Activity Wizard Screen opens with all pre-filled values retained for editing
  • +3 more
View Full Story →
Complete Multi-Step Activity Registration Wizard
critical 8 pts

As a As a user

I want I want to be guided through a structured multi-step wizard covering contact selection, date, time, duration, and a brief summary to register a peer support activity

So that So that I can complete a full, validated activity registration without missing required fields, even if I am not technically experienced

Acceptance Criteria
  • Given the user has selected an activity type, when the wizard launches, then steps 1–5 are presented sequentially with a visual step progress indicator showing current position
  • Given the wizard has launched, when default values are available in Supabase for the authenticated user, then the date field pre-fills with today's date and the duration field pre-fills with the user's stored default (e.g., 30 minutes)
  • Given the user is on a wizard step and taps 'Next', when required fields on that step are incomplete or invalid, then the Activity Validation Service returns structured errors displayed inline at the field level without navigating away
  • +4 more
View Full Story →