Team Reports
Feature Detail
Description
Team Reports provides coordinators and organization administrators with aggregated activity statistics for their peer mentor teams. The page consolidates registered activities, contact interactions, and time-logged data per coordinator group or local association, enabling oversight of team performance without accessing individual user data in raw form. The feature is designed for the Admin Web Portal and renders pre-aggregated data served from the shared backend, respecting multi-tenant isolation so each organization sees only its own data.
Sources & reasoning
Fase 1 MVP scope for Admin Web Portal explicitly includes 'aktivitetsoversikt og grunnleggende statistikk' (lines 325-328), normalizing to MVP. Team Reports is the concrete implementation of that requirement. Source also clarifies the admin portal is the reporting surface, confirming this belongs in Reporting & Export.
-
docs/source/likeperson.md · line 325-328Admin Web Portal (MVP scope): Brukeradministrasjon (invitere, deaktivere, rolletildeling) Organisasjonsinnstillinger og terminologikonfigurasjon Aktivitetsoversikt og grunnleggende statistikk
-
docs/source/likeperson.md · line 46Sømløs Bufdir-rapportering - Rapporteringsdata samles inn gjennom aktivitetsregistrering i mobilappen, men selve Bufdir-eksporten er en admin-funksjon
Analysis
All four workshop organizations require coordinators and org admins to monitor team-level activity without resorting to manual Excel aggregation. NHF currently routes Word forms through regions to central Excel - a process described as unsustainable. Team Reports replaces this with a structured, always-current view that directly reduces administrative overhead. For Bufdir-funded organizations, team-level data is also a prerequisite for generating compliant reports, making this feature a foundational dependency for the reporting pipeline. Providing this in MVP prevents coordinators from reverting to legacy systems while Bufdir export is rolled out in Fase 2.
Implement as a server-rendered Next.js page in the Admin Web Portal, querying the shared PostgreSQL database via parameterized SQL aggregations grouped by organization, area, and coordinator. Use row-level security or explicit tenant_id filtering to enforce isolation. The API endpoint should return pre-aggregated totals (activity count, unique contacts, total hours) to avoid sending raw records to the client. Pagination and date-range filtering are required for organizations with high activity volumes (HLF reported one peer mentor with 380 registrations in a year). Export to CSV should be a stretch goal for MVP, promoted to confirmed scope in Fase 2 alongside Bufdir export.
Quality Assurance
Organization Administrator (primary)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Rapportering → Teamrapporter.
- Velg ønsket datoperiode i datovelgeren og bekreft at tabellen oppdateres med filtrerte data.
- Velg et spesifikt koordinatorlag fra nedtrekksmenyen for Teamomfang og bekreft at visningen begrenses til det valgte laget.
- Verifiser at tabellen viser aggregerte tall (aktiviteter, kontaktinteraksjoner, loggede timer) uten ĂĄ eksponere individuelle brukerdata i rĂĄformat.
- Verifiser at kun data fra din egen organisasjon vises — ingen data fra andre organisasjoner er synlige.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Rapportering → Teamrapporter.
- Screen reader Sideoverskrift 'Teamrapporter' annonseres ved sidelasting; navigasjonslenken 'Rapportering' har semantisk label.
- Keyboard / focus Tab-rekkefølge: toppnavigasjon → sidepanel → sidetittel → filteromrade → tabell.
- Focus visibility Synlig fokusring pĂĄ alle navigasjonselementer; aktiv side markert med aria-current='page'.
-
Velg ønsket datoperiode i datovelgeren og bekreft at tabellen oppdateres med filtrerte data.
- Keyboard / focus Datovelger nĂĄs med Tab; piltaster navigerer kalenderen; Enter bekrefter valg.
- Focus visibility Fokus returnerer til datovelger-knapp etter lukking av datovelger-panel.
- Touch target Datovelger-knapp og navigasjonspiler ≥ 24×24 CSS px.
- Live region 'Tabellen er oppdatert med data for valgt periode.'
-
Velg et spesifikt koordinatorlag fra nedtrekksmenyen for Teamomfang og bekreft at visningen begrenses til det valgte laget.
- Screen reader Nedtrekksmeny annonsert som 'Teamomfang, kombinasjonsboks'; valgt alternativ leses opp ved endring.
- Keyboard / focus Alt+pil-ned ĂĄpner nedtrekksmenyen; piltaster navigerer alternativer; Enter velger.
- Live region 'Tabellen er oppdatert. Viser data for [lagnavn].'
- Contrast Valgt alternativ skilles ikke fra andre kun med farge; tekst eller ikon bekrefter valg.
-
Verifiser at tabellen viser aggregerte tall (aktiviteter, kontaktinteraksjoner, loggede timer) uten ĂĄ eksponere individuelle brukerdata i rĂĄformat.
- Screen reader Tabellkolonner har scope='col'-overskrifter; rader annonseres med kolonnekontekst ved navigasjon.
- Keyboard / focus Piltaster navigerer tabellceller; Tab flytter mellom interaktive elementer.
- Zoom Tabellen er lesbar og horisontal scrolling er tilgjengelig ved 200% zoom uten tap av innhold.
- Contrast Alle tallverdier og kolonneetiketter har minimum 4.5:1 kontrastforhold mot bakgrunn.
-
Verifiser at kun data fra din egen organisasjon vises — ingen data fra andre organisasjoner er synlige.
- Screen reader Organisasjonsnavn i sideoverskriften leses opp for ĂĄ bekrefte kontekst.
- Focus visibility Ingen skjulte fokuselementer fra andre organisasjoners dataseksjoner i DOM.
Role Boundaries
3 role(s) must NOT access this feature-
Peer Mentor
Admin-portalen er ikke tilgjengelig for Peer Mentors; innlogging til admin-portalen returnerer 403. Teamrapporter-skjermen finnes ikke i mobilappens navigasjon.
-
Coordinator
Admin-portalen er ikke tilgjengelig for Coordinators; innlogging til admin-portalen returnerer 403. Coordinator-rollen i mobilappen har ikke tilgang til admin-rapportfunksjoner.
-
Prospective Organization Representative
Ingen autentisert tilgang til admin-portalen; forsøk på innlogging avvises.
Expected End State
Teamrapport-siden viser korrekte aggregerte aktivitetstall, kontaktinteraksjoner og loggede timer for valgt periode og teamomfang, scoped til innlogget organisasjon, uten eksponering av individuelle brukerdata i rĂĄformat.
Components (20)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.