high complexity extracted Activity Registration Confidence: 100%
11
Components
39
Shared
0
User Stories
Yes
Analyzed

Description

The Activity Registration Wizard guides users through a structured multi-step flow for registering more complex activities that require additional context beyond a quick log. Steps progress through contact selection, date, time, duration, activity type, free-text summary, and optional attachments. Each step is a discrete screen with a clear back/next affordance, supporting users who need more guidance or who are registering activities with document evidence (e.g. invitations, Facebook screenshots) required for Bufdir audit trails. The wizard complements - rather than replaces - the quick log path.

Analysis

Business Value

NHF explicitly requires document attachments to activities for Bufdir audit purposes (invitations, screenshots). Without a wizard flow that supports attachments, the platform cannot replace existing Word-form workflows for this organisation. The structured step-by-step approach also addresses the cognitive accessibility needs raised by NHF for users such as stroke survivors, where a single dense form creates too high a barrier. By providing both a quick log and a wizard, the platform satisfies the full spectrum of user capability and activity complexity, maximising data completeness across the user base.

Implementation Notes

Implemented as a Flutter Navigator 2.0 route stack with the Wizard Step Controller service managing step state and validation. Each step is a separate widget pushed onto the stack, allowing the system back button and an explicit back affordance to function correctly - required for WCAG 2.2 compliance (no reliance on swipe-only navigation). Activity Attachments are stored via multipart POST to the REST API; the Activity Attachments Table records file references. In offline mode, attachments are queued in the mutation outbox with binary blobs stored in the local SQLCipher database. The wizard must not lose partial state on backgrounding; use Riverpod state persistence or equivalent keep-alive strategy.

Components (50)

User Interface (7)

Service Layer (2)

Data Layer (1)

Infrastructure (1)

Shared Components

These components are reused across multiple features

User Stories

No user stories have been generated for this feature yet.