Activity Registration Wizard
Feature Detail
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
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.
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)
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.