Activity Registration Wizard
Feature Detail
Description
The Activity Registration Wizard provides a multi-step guided flow for logging more complex activities that require additional context beyond a quick log. The wizard walks the peer mentor through sequential steps - contact selection, date, time, duration, activity type, and summary - with progress indication and the ability to save drafts between steps. This complements the simple quick-log by handling structured activity types such as home visits, group sessions, and events that require richer documentation for Bufdir compliance and coordinator oversight.
Sources & reasoning
The mobile architecture section (line 296-298) explicitly lists the wizard as a named screen in the app. The WCAG dragging-movements rule (line 36) directly constrains its navigation pattern. Fase 1 / MVP in the roadmap section (line 405).
-
docs/source/likeperson.md · line 296-298Activity wizard (multi-step: contact â date â time â duration â summary)
-
docs/source/likeperson.md · line 36Tilbakeknapp fremfor sidelengs-sveip. Vertikal scroll er normen.
Analysis
While simple logging handles the majority of activity types, Bufdir reporting requirements and coordinator oversight demand structured data for certain interaction categories. Without a wizard, peer mentors would skip required fields or enter inconsistent data that fails validation at report-generation time. The wizard's draft-save capability is especially important for users with cognitive challenges (NHF's stated priority) who may need to complete a registration across multiple sessions. Consistent structured data also enables the statistics and team reports features that coordinators depend on for quality oversight.
Implement using a WizardStepController service that manages step state as an immutable stack in Riverpod. ActivityDraftStore persists incomplete wizard state to Drift so drafts survive app restarts. Each wizard step is a separate Flutter widget with its own validation logic. Navigation uses a custom PageView with animated transitions; back navigation must use explicit back buttons rather than swipe gestures per the WCAG 2.2 dragging movements requirement. The final submission step calls ActivityService which posts to the shared ActivityRepository. Draft IDs are mapped to server IDs after sync to prevent duplicate submissions.
Quality Assurance
Peer Mentor (primary) · Coordinator (same flow)Peer Mentor
Quick UAT
- à pne appen som Peer Mentor. Trykk pÄ Legg til-knappen (senter i bunnavigasjonen) og velg Aktivitet.
- Trinn 1 â Kontaktvalg: velg en eksisterende kontakt fra listen. Bekreft at kontaktens navn vises i fremdriftsindikatoren Ăžverst.
- Trinn 2 â Dato: bekreft at dagens dato er forhĂ„ndsvalgt. Endre til gĂ„rsdagens dato og trykk Neste.
- Trinn 3 â Tid og varighet: bekreft at starttid er forhĂ„ndsvalgt. Endre varighet til 45 minutter og trykk Neste.
- Trinn 4 â Aktivitetstype: velg «HjemmebesĂžk» fra listen. Bekreft at obligatoriske felt for denne typen vises og trykk Neste.
- Trinn 5 â Sammendrag: skriv en kort tekst i oppsummeringsfeltet og trykk Lagre utkast. Lukk appen, Ă„pne den pĂ„ nytt og gjenoppta utkastet â bekreft at all tidligere data er bevart.
- Trykk FullfĂžr registrering. Bekreft at aktiviteten vises under Mine aktiviteter med riktig dato, type og kontakt.
Quick UAT â Accessibility
-
à pne appen som Peer Mentor. Trykk pÄ Legg til-knappen (senter i bunnavigasjonen) og velg Aktivitet.
- Screen reader Bunnavigasjon annonseres som 'navigasjonsmeny, 5 elementer'; Legg til-knappen annonseres som 'Legg til, knapp'.
- Keyboard / focus Tab-rekkefĂžlge: hjem â kontakter â Legg til â arbeid â varslinger. Enter Ă„pner modalvelger.
- Touch target Legg til-knappen er minst 48Ă48 CSS-piksler.
-
Trinn 1 â Kontaktvalg: velg en eksisterende kontakt fra listen. Bekreft at kontaktens navn vises i fremdriftsindikatoren Ăžverst.
- Screen reader Skjermleser annonserer 'Trinn 1 av 5, Velg kontakt'; hvert listeelement annonseres med navn og rolle.
- Keyboard / focus Piltaster navigerer i kontaktlisten; Enter velger kontakt.
- Focus visibility Synlig fokusring pÄ valgt kontakt; fremdriftsindikator har aria-label 'Trinn 1 av 5'.
- Zoom Listen er brukbar ved 200 % zoom â ingen horisontal scrolling pĂ„krevd.
-
Trinn 2 â Dato: bekreft at dagens dato er forhĂ„ndsvalgt. Endre til gĂ„rsdagens dato og trykk Neste.
- Screen reader Datovelger annonseres med gjeldende verdi og instruksjoner for endring.
- Keyboard / focus Piltaster endrer dag/mÄned/Är i datovelgeren; Tab flytter til Neste-knapp.
- Focus visibility Neste-knapp har synlig fokusring og label 'Neste'.
- Contrast Valgt dato skiller seg fra ikke-valgt dato med annet enn farge alene (f.eks. fet skrift eller ramme).
-
Trinn 3 â Tid og varighet: bekreft at starttid er forhĂ„ndsvalgt. Endre varighet til 45 minutter og trykk Neste.
- Screen reader Varighetsvelger annonserer gjeldende verdi i minutter; endringer leses opp ved hvert trinn.
- Keyboard / focus Piltaster justerer varighet; Tab til Neste-knapp.
- Touch target Ăk/minsk-knapper for varighet er minst 24Ă24 CSS-piksler.
-
Trinn 4 â Aktivitetstype: velg «HjemmebesĂžk» fra listen. Bekreft at obligatoriske felt for denne typen vises og trykk Neste.
- Screen reader Hvert alternativ annonseres med navn; valgt alternativ annonseres som 'valgt'.
- Focus visibility Fokus flyttes automatisk til fĂžrste nye obligatoriske felt etter typevalg.
- Live region Polite live region annonserer 'Nye obligatoriske felt er tilgjengelige' nÄr HjemmebesÞk velges og ekstra felt lastes.
-
Trinn 5 â Sammendrag: skriv en kort tekst i oppsummeringsfeltet og trykk Lagre utkast. Lukk appen, Ă„pne den pĂ„ nytt og gjenoppta utkastet â bekreft at all tidligere data er bevart.
- Screen reader Tekstfelt annonseres med label 'Sammendrag, obligatorisk'; tegnantall leses opp ved endringer.
- Focus visibility Lagre utkast-knapp har synlig fokusring og aria-label 'Lagre utkast og fortsett senere'.
- Live region Polite live region annonserer 'Utkast lagret' etter vellykket lagring.
- Zoom Tekstfeltet er brukbart ved 200 % zoom uten at tekst klippes.
-
Trykk FullfĂžr registrering. Bekreft at aktiviteten vises under Mine aktiviteter med riktig dato, type og kontakt.
- Screen reader Bekreftelsesmelding annonseres av skjermleser; navigasjon tilbake til aktivitetslisten annonserer ny rad.
- Focus visibility Fokus flyttes til bekreftelsesbanneret eller fĂžrste element i oppdatert aktivitetsliste.
- Live region Polite live region annonserer 'Aktivitet registrert. Vises nÄ under Mine aktiviteter.'
Role Boundaries
3 role(s) must NOT access this feature-
Organization Administrator
Veiviseren finnes ikke i Admin Web Portal-navigasjonen; org-admin bruker koordinatorrollen i mobilappen (samme tilgang som koordinator) â admin-portalens aktivitetsoversikt tilbyr kun godkjenning og korrigering, ikke wizard-registrering.
-
Global Administrator
Global Admin har ingen tilgang til mobilappen og ser Aktivitet-veiviseren hverken i navigasjon eller via deep-link; forsĂžk returnerer 403.
-
Prospective Organization Representative
Rollen eksisterer kun pÄ salgsnettstedet; har ingen brukerkonto i den operative plattformen og kan ikke nÄ veiviseren.
Expected End State
Aktiviteten er lagret med status FullfĂžrt, knyttet til valgt kontakt og synlig under Mine aktiviteter for Peer Mentor og i aktivitetsoversikten for Coordinator. Aktivitetsdata er strukturert og klar for Bufdir-rapportering.
Components (21)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.