medium complexity v1.1 extracted Achievements & Gamification Confidence: 100%
3
Components
43
Shared
0
User Stories
Yes
Analyzed

Description

Annual Summary (Wrapped) gives each peer mentor a personalized year-in-review screen highlighting their total activities, hours contributed, contacts supported, and key milestones reached during the year. Inspired by Spotify Wrapped, the screen celebrates volunteer effort and makes invisible contributions visible. Coordinators can also view aggregated team summaries, supporting recognition and motivation conversations at the end of each year.

Sources & reasoning

Section 2.2 explicitly names Spotify Wrapped as the inspiration, with NHF, HLF, and Barnekreftforeningen all requesting it. Phase matrix assigns it NICE TO HAVE / Fase 3, and section 5 Fase 3 lists it by name. Third phase maps to v1.1 by the ordinal rule.

No source references — this artifact was included based on reasoning alone (see above).

Analysis

Business Value

Volunteer retention is a critical challenge for all four organizations. Peer mentors contribute significant unpaid time but rarely receive acknowledgement that quantifies their impact. Annual Summary (Wrapped) addresses this by surfacing concrete numbers - activities logged, hours given, contacts supported - in a compelling format peer mentors can share. Three of the four organizations (NHF, HLF, Barnekreftforeningen) explicitly requested this feature, describing it as a way to give volunteers pride and motivation. The feature also gives coordinators a narrative tool for recognizing outstanding contributors, strengthening loyalty and reducing churn among experienced peer mentors.

Implementation Notes

The summary is generated server-side by aggregating activity records for the calendar year from the activities, event_participants, and activity_statistics tables. The Flutter UI renders a paginated card deck - one card per metric - with animated transitions following WCAG 2.2 AA contrast and touch-target requirements. The backend exposes a dedicated summary endpoint accepting a year parameter and returning pre-aggregated totals; heavy aggregation runs as a background job or materialized view to avoid slow on-demand queries. Share functionality exports a static image using Flutter's RepaintBoundary, omitting contact names to protect privacy.

Components (46)

User Interface (1)

Service Layer (1)

Data Layer (1)

Shared Components

These components are reused across multiple features

User Stories

No user stories have been generated for this feature yet.