medium complexity extracted Admin Dashboard Confidence: 100%
2
Components
4
Shared
0
User Stories
Yes
Analyzed

Description

The Activity Feed feature provides administrators with a chronological stream of recent platform events - newly logged activities, pending expense submissions, assignment status changes, and user invitations - displayed as a live feed widget on the Admin Dashboard. Each feed item links directly to the relevant detail page for quick action. The feed serves as an operational inbox for admins who need to monitor what is happening across their organization without navigating to each individual section. Items are grouped by recency (today, yesterday, this week) and filtered to the authenticated admin's organization scope, with the most actionable items (pending approvals, overdue follow-ups) surfaced first. The feed complements the KPI cards: where KPI cards answer "how much", the activity feed answers "what specifically happened and what needs attention now", making the dashboard a complete daily operational starting point.

Sources & reasoning

Lines 325-327 place "Aktivitetsoversikt" explicitly in Admin Web Portal MVP scope (Fase 1). Line 116 surfaces the oversight gap - 40% dissatisfied with follow-up - motivating a real-time feed that gives admins immediate visibility into peer mentor activity. Both signals point to MVP, normalized from Fase 1 ordinal position.

  • docs/source/likeperson.md · line 325-327
    Admin Web Portal (MVP scope): Aktivitetsoversikt og grunnleggende statistikk 2 innloggede brukerroller: Organisasjonsadministrator, Global Administrator
  • docs/source/likeperson.md · line 116
    Oppfølging av likepersoner: 40 % var ikke fornøyd med oppfølgingen i spørreundersøkelse. Scenariobaserte push-meldinger og kalendersynkronisering.

Analysis

Business Value

Organization admins at NHF, HLF, Blindeforbundet, and Barnekreftforeningen currently have no real-time visibility into what their peer mentors and coordinators are doing. Without a feed, oversight requires manual check-ins and separate report pulls, creating a reactive rather than proactive management posture. A chronological activity feed closes this visibility gap, enabling coordinators and org admins to spot registration gaps, catch pending approvals before they stall reimbursements, and confirm that new users are onboarding successfully. This directly supports the "Koordinering og oppfølging" requirement surfaced across multiple workshops. The feed also shortens the approval cycle for expenses and activities that require attestation, reducing the administrative bottleneck that currently delays reimbursement processing - a specific pain point raised by HLF with their detailed refund requirements.

Implementation Notes

The activity feed is backed by a dedicated ActivityFeedService that queries a unified event log or derives feed items from recent inserts across the activities, expenses, assignments, and user_sessions tables, all scoped by organization_id. A cursor-based pagination approach (keyset pagination by created_at + id) supports infinite scroll without offset degradation at scale. Feed items are typed and rendered by ActivityFeedWidget with polymorphic display - each item type (activity_logged, expense_submitted, user_invited, assignment_read) has its own icon, label template, and deep-link target. The widget must handle empty states and loading skeletons gracefully. Next.js ISR or on-demand revalidation keeps the feed fresh without full page reloads. The API endpoint enforces tenant scoping server-side. WCAG 2.2 AA requires that feed items be keyboard navigable and that all icons have accessible text alternatives.

User Stories

No user stories have been generated for this feature yet.