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

Description

Bulk Registration lets coordinators log a single activity type across multiple peer mentors at once rather than submitting individual records per participant. The coordinator selects a set of peer mentors, fills in shared activity details (date, type, duration), and submits once - the system fans out into individual activity records for each selected participant. This reduces administrative overhead for high-frequency, group-format activities such as weekly training sessions or recurring group meetings.

Sources & reasoning

Line 84 explicitly describes bulk registration as logging collectively for fixed activities with a weekly group training example, and notes Blindeforbundet deprioritizes it - justifying should_have rather than must_have. Line 346 places it in Fase 2 (v1.0 by ordinal mapping). Dependency on coordinator-proxy-reporting is intentional: bulk is a superset of proxy attribution and reuses its authorization and outbox mechanics.

  • enten enkeltvis eller samlet for faste aktiviteter (f.eks. ukentlig trening med mange deltakere). Blindeforbundet bruker ikke proxy-rapportering på samme måte og prioriterer dette lavt.
  • Pausefunksjon og bulkregistrering for koordinatorer

Analysis

Business Value

HLF documented a single peer mentor with 380 individual registrations in one year, illustrating the scale of repetitive logging burden at high-activity organizations. Group activities such as weekly training sessions or monthly meetings require one record per participant under individual logging - multiplying effort without adding informational value. Bulk registration removes this friction, making compliance with reporting requirements realistic for coordinators managing large cohorts. Without it, high-volume organizations maintain parallel manual systems that undermine Bufdir data completeness and slow platform adoption during the rollout phase.

Implementation Notes

BulkRegistrationScreen presents a multi-select participant list alongside a shared activity form. On submission, BulkRegistrationService creates N individual activity records in a single backend transaction, each attributed to the corresponding peer mentor. BulkActivityRepository handles batch inserts with per-record error isolation - a single invalid record must not abort the entire batch; partial failures are reported back to the coordinator. A participant count cap (suggested 50) prevents payload timeouts for very large cohorts, with pagination for overflow. Offline bulk submission is serialized as a single outbox entry in Drift's mutation outbox and fans out into individual records on sync. Role authorization mirrors proxy reporting: coordinator or org-admin only.

Quality Assurance

Coordinator (primary) · Peer Mentor (no access)
1
Scenarios
6
UAT Steps
15
A11y Annotations
1
Role Boundaries
Coordinator

Coordinator

Quick UAT

  1. Logg inn i mobilappen som Koordinator. Naviger til Aktiviteter → Bulkregistrering.
  2. Trykk 'Ny bulkregistrering'. Bekreft at en flervalgs-liste over likepersoner vises.
  3. Velg minst tre likepersoner fra listen og bekreft at alle tre er markert.
  4. Fyll inn felles aktivitetsdetaljer: velg aktivitetstype, sett dato til i dag og varighet til 60 minutter.
  5. Trykk 'Send inn'. Bekreft at appen viser en oppsummering med antall opprettede poster.
  6. Gå til Mine aktiviteter og bekreft at det finnes én individuell aktivitetspost per valgt likeperson med de angitte detaljene.

Quick UAT — Accessibility

  1. Logg inn i mobilappen som Koordinator. Naviger til Aktiviteter → Bulkregistrering.
    • Screen reader Skjermtittel 'Bulkregistrering' annonseres ved navigasjon; fanenavnet i bunnnavigatoren er semantisk merket.
    • Keyboard / focus Tab-rekkefølge fra bunnnav: Hjem → Aktiviteter → Bulkregistrering-knapp.
  2. Trykk 'Ny bulkregistrering'. Bekreft at en flervalgs-liste over likepersoner vises.
    • Focus visibility Synlig fokusring på 'Ny bulkregistrering'-knapp; skjermleser annonserer knappens navn og rolle.
    • Touch target Knappen 'Ny bulkregistrering' er minst 24×24 CSS-piksler.
  3. Velg minst tre likepersoner fra listen og bekreft at alle tre er markert.
    • Screen reader Hvert listeelement annonseres med navn og valgt/ikke-valgt tilstand (f.eks. 'Kari Nordmann, avkrysningsboks, valgt').
    • Keyboard / focus Piltaster navigerer mellom likepersoner; mellomromstast velger/fjerner valg.
    • Touch target Hvert listelement er minst 24×24 CSS-piksler.
  4. Fyll inn felles aktivitetsdetaljer: velg aktivitetstype, sett dato til i dag og varighet til 60 minutter.
    • Focus visibility Alle inndatafelt er merket med synlige etiketter; feilmeldinger kobles til riktig felt via aria-describedby.
    • Zoom Skjema er brukbart ved 200 % zoom uten horisontal rulling eller avskjæring av felt.
    • Contrast Etiketter og feltgrenser oppfyller 4,5:1 kontrastkrav; obligatoriske felt indikeres ikke med farge alene.
  5. Trykk 'Send inn'. Bekreft at appen viser en oppsummering med antall opprettede poster.
    • Focus visibility Fokus flyttes til bekreftelsesmeldingen etter innsending.
    • Touch target 'Send inn'-knappen er minst 24×24 CSS-piksler.
    • Live region Politt live-region annonserer 'X aktiviteter er registrert' etter vellykket innsending.
  6. Gå til Mine aktiviteter og bekreft at det finnes én individuell aktivitetspost per valgt likeperson med de angitte detaljene.
    • Screen reader Hver aktivitetsrad annonseres med likepersonens navn, aktivitetstype og dato.
    • Keyboard / focus Aktivitetslisten kan navigeres med piltaster; Enter åpner detaljvisning.

Role Boundaries

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

    Bulkregistrering-skjerm finnes ikke i navigasjonen for Likeperson-rollen; direkte deep-link returnerer 403.

Expected End State

Én individuell aktivitetspost er opprettet per valgt likeperson i databasen. Postene er identiske i aktivitetstype, dato og varighet, og er tilordnet koordinatorens identitet som registrert av.

User Stories

No user stories have been generated for this feature yet.