Activity Registration Wizard
Feature Detail
Description
Activity Registration Wizard provides a guided multi-step flow for logging more complex activities that require structured data entry. The wizard breaks registration into sequential steps - contact selection, date, time, duration, and narrative summary - presenting one decision per screen to reduce cognitive overload. It complements the quick-log screen: routine interactions use quick-log, while visits requiring a linked contact, detailed notes, or downstream formalized reporting use the wizard.
Sources & reasoning
The mobile architecture section explicitly names the activity wizard as a multi-step flow with defined steps, confirming it as a distinct component from quick-log. Fase 1 (ยง5) lists activity registration as MVP scope. The structured step sequence is also the prerequisite for formalized reports and document attachments downstream.
No source references โ this artifact was included based on reasoning alone (see above).
Analysis
The wizard ensures richer, consistently structured activity data for organizations that require detailed records for Bufdir reporting, coordinator oversight, and internal quality review. Breaking registration into small sequential steps makes thorough logging accessible to peer mentors with limited digital skills - including elderly users and those with cognitive challenges explicitly highlighted by NHF. Consistent field-level data enables coordinator duplicate detection, downstream reporting, and future analytics that are impossible with free-text-only records. The wizard also serves as the structural entry point for optional downstream flows such as formalized home-visit reports and document attachments.
Implemented as a Flutter multi-screen flow with per-step state held in a Riverpod WizardStateService (keepAlive: true so backgrounding does not lose progress). Each step validates its own inputs and exposes a Next/Back pair; back navigation restores the previous step without discarding entered data. Contact selection queries the Drift-backed local contacts store, supporting offline lookup against locally cached records. On final submission, the same optimistic mutation plus outbox pattern used by quick-log applies here. Step transitions respect the WCAG reduced-motion preference via MediaQuery.platformDispatcher.accessibilityFeatures.
Components (45)
Shared Components
These components are reused across multiple features
Service Layer (11)
Data Layer (23)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.