medium complexity extracted Proxy & Bulk Registration Confidence: 100%
3
Components
18
Shared
0
User Stories
Yes
Analyzed

Description

Coordinators can register activities on behalf of peer mentors who are unable or unwilling to use the app directly. The feature includes a peer mentor selector widget, allowing coordinators to choose which mentor the activity should be attributed to, then complete the activity form with full field parity to the standard registration flow. This ensures accurate reporting without requiring every peer mentor to be digitally active, supporting organizations during the gradual rollout period.

Sources & reasoning

Line 84 directly states coordinators must register on behalf of peer mentors who cannot or will not use the app. The priority matrix at line 151 confirms SHOULD HAVE with Fase 2, which maps to v1.0 by the second-phase ordinal rule. Three of four organizations require this capability, validating high priority.

  • Ikke alle likepersoner vil eller kan bruke appen. Koordinatorer mĂĄ ha mulighet til ĂĄ registrere aktivitet pĂĄ vegne av sine likepersoner, enten enkeltvis eller samlet for faste aktiviteter
  • Bulkregistrering / proxy-rapportering | âś“ | âś“ | - | âś“ | âś“ | SHOULD HAVE | 2

Analysis

Business Value

Not every peer mentor is willing or able to use a digital app. Without proxy reporting, coordinators must maintain parallel manual reporting systems indefinitely, undermining the platform goal of replacing fragmented paper and Excel workflows. NHF, HLF, and Barnekreftforeningen all raised this need explicitly, making it a cross-organization requirement rather than an edge case. Enabling coordinators to report on behalf of others directly reduces underreporting, increases data completeness for Bufdir submissions, and eases the transition for organizations with less digitally confident volunteers.

Implementation Notes

The feature extends the existing activity registration flow by adding a PeerMentorSelectorWidget that queries the coordinator's accessible peer mentors from the backend. ProxyReportService must enforce role-based authorization - only coordinator and org-admin roles may submit proxy records; peer mentor role is rejected. Attribution metadata (submitted_by vs. attributed_to) must be stored as separate columns in the activities table to preserve audit integrity. The selector widget requires the peer mentor list to be cached locally via Drift for offline proxy registration. The UI must clearly indicate proxy mode with a persistent banner to prevent accidental misattribution.

Quality Assurance

Coordinator (primary) · Peer Mentor (subject — activity attributed to them)
1
Scenarios
6
UAT Steps
21
A11y Annotations
1
Role Boundaries
Coordinator

Coordinator

Quick UAT

  1. Logg inn i Meander-appen som Koordinator. Bekreft at koordinator-hjemskjermen vises med Proxy-registrering tilgjengelig.
  2. Trykk på + (legg til) og velg «Registrer på vegne av». Bekreft at PeerMentorSelectorWidget vises med søkefelt.
  3. Søk etter en likeperson ved navn. Velg dem fra listen og bekreft at valgt navn vises som mottaker øverst i skjemaet.
  4. Fyll ut aktivitetsskjemaet: type, dato, varighet og kontakt. Bekreft at alle felt er identiske med standard aktivitetsregistrering.
  5. Trykk «Lagre» og bekreft at du ser en suksessmelding med likepersonens navn og aktivitetstype.
  6. Naviger til Teamstatistikk og bekreft at aktiviteten er registrert under den valgte likepersonens navn, ikke koordinatorens.

Quick UAT — Accessibility

  1. Logg inn i Meander-appen som Koordinator. Bekreft at koordinator-hjemskjermen vises med Proxy-registrering tilgjengelig.
    • Screen reader Skjermoverskrift annonseres som 'Hjem – Koordinator'; bottom-nav-faner leses opp med rolle.
    • Keyboard / focus Tab-rekkefølge: navigasjonsfaner → hjemwidgets → handlingsknapper.
    • Contrast 4.5:1 for all tekst; koordinator-rolleindikatorer ikke formidlet kun via farge.
  2. Trykk på + (legg til) og velg «Registrer på vegne av». Bekreft at PeerMentorSelectorWidget vises med søkefelt.
    • Screen reader Modal annonseres; søkefelt merket 'Søk etter likeperson' leses opp ved fokus.
    • Keyboard / focus Escape lukker modal; Tab nĂĄr søkefelt og listeelementer.
    • Focus visibility Fokus flyttes automatisk til søkefeltet nĂĄr modal ĂĄpnes.
    • Touch target ≥ 24Ă—24 CSS px for + og hvert listeelement.
  3. Søk etter en likeperson ved navn. Velg dem fra listen og bekreft at valgt navn vises som mottaker øverst i skjemaet.
    • Screen reader Listetreff annonseres dynamisk ved skriving; valgt navn leses opp ved valg.
    • Keyboard / focus Piltaster navigerer listen; Enter velger; Escape avbryter.
    • Live region Polite live region: 'X treff funnet' oppdateres ved hvert tastetrykk.
  4. Fyll ut aktivitetsskjemaet: type, dato, varighet og kontakt. Bekreft at alle felt er identiske med standard aktivitetsregistrering.
    • Screen reader Hvert felt har synlig og programmatisk label; datovalg annonserer valgt dato.
    • Keyboard / focus Alle felt nĂĄs med Tab; dato-picker støtter tastaturnavigasjon.
    • Focus visibility Feilmeldinger plasseres inline ved feil felt med synlig fokusring.
    • Zoom Skjemaet er fullstendig brukbart ved 200% zoom uten horisontal scroll.
  5. Trykk «Lagre» og bekreft at du ser en suksessmelding med likepersonens navn og aktivitetstype.
    • Screen reader Suksessmelding annonseres av skjermleser etter lagring.
    • Focus visibility Fokus flyttes til suksessmeldingen eller tilbake til skjermtoppen.
    • Touch target Lagre-knapp ≥ 24Ă—24 CSS px.
    • Live region Polite live region: 'Aktivitet lagret for [Navn]. Type: [aktivitetstype].'
  6. Naviger til Teamstatistikk og bekreft at aktiviteten er registrert under den valgte likepersonens navn, ikke koordinatorens.
    • Screen reader Statistikktabell leses opp rad for rad; likepersonens navn og aktivitet leses korrekt.
    • Keyboard / focus Statistikkside nĂĄs via tastatur; tabelrader navigerbare med piltaster.
    • Contrast 4.5:1 for all tabelldata; attributsjonsinfo ikke formidlet kun via farge.

Role Boundaries

1 role(s) must NOT access this feature
  • Peer Mentor

    «Registrer på vegne av»-valget finnes ikke i + (legg til)-menyen; direkte deep-link returnerer 403.

Expected End State

Aktiviteten er lagret i databasen attribuert til den valgte likepersonens bruker-ID med koordinatorens bruker-ID som registrert_av-feltet, og vises under likepersonens navn i teamstatistikk.

User Stories

No user stories have been generated for this feature yet.