medium complexity medium priority could have v2.0 extracted Gamification & Engagement Confidence: 100%
9
Components
0
Shared
17
User Stories
Yes
Analyzed

Description

This feature provides peer mentors and coordinators with an annual retrospective of their contributions, presented in a visually engaging, story-driven format inspired by Spotify Wrapped. Users see animated statistics, milestone highlights, and personalized insights covering the full calendar year as well as a mid-year half-year summary. The experience transforms raw activity logs into a meaningful narrative that celebrates the volunteer's impact on individuals and the broader community, making invisible effort visible and emotionally resonant.

Analysis

Business Value

Volunteer retention is a critical challenge for all partner organisations; research consistently shows that recognition and a sense of meaning are stronger retention drivers than financial incentives. By giving peer mentors a tangible, shareable summary of their year, the feature creates an emotional connection to the organisation and reinforces the value of continued participation. Coordinators who receive an equivalent view gain motivation and a shareable artifact for internal communication and recruitment. The feature also serves as organic marketing: a visually striking annual summary encourages social sharing, increasing awareness of the peer mentor programme and lowering recruitment costs for all partner organisations.

Implementation Notes

The feature is built on top of pre-aggregated statistics stored in the impact_summaries table, populated by the Impact Calculation Service after each reporting period. The animated UI layer uses Flutter's animation framework (AnimationController, Tween, Hero transitions) to create the Wrapped-style reveal sequence with minimal performance overhead. A configurable trigger date (e.g., 31 December and 30 June) fires a push notification via the Push Notification Gateway to invite users to view their summary. The summary is generated server-side as a JSON payload so it can be rendered offline and shared as a static image or deep-link. The implementation must handle users with zero activity gracefully and support the organisation-specific label system so terminology matches each partner's vocabulary.

Dependencies

activity-logging-wizardpersonal-activity-statisticsassignment-counting-honorarium

Definition of Done

Impact summary generated and stored for all active users at end of each reporting period
Animated reveal sequence plays correctly on iOS and Android
Push notification delivered within 1 hour of trigger date
Half-year and full-year views both accessible from the screen
Summary shareable as image or deep-link
Handles zero-activity users without errors
Screen reader accessible (WCAG 2.2 AA)

User Stories (17)

Access Impact Summary Offline After Initial Load
medium 2 pts

As a As a user

I want I want to be able to view my impact summary without an internet connection after having loaded it once

So that So that I can revisit and share my summary at any time regardless of network availability, including in areas with poor connectivity

Acceptance Criteria
  • Given the user has previously loaded their impact summary with network access, when they open the summary screen with no network connection, then the cached summary renders without errors
  • Given the device has no network and the summary is cached, when the user navigates through all slides, then all content including statistics and animations displays correctly
  • Given a new summary is generated by the server, when the user next opens the app with network access, then the stale cache is replaced with the updated summary
  • +1 more
View Full Story →
View Graceful Empty State for Zero-Activity Year
medium 2 pts

As a As a user

I want I want to see an encouraging and informative screen if I have no recorded activities for the summary period

So that So that the absence of data is handled gracefully without presenting a confusing error or blank screen that damages my experience of the app

Acceptance Criteria
  • Given a user has zero activities for the summary period, when their summary is opened, then an encouraging empty-state screen is shown instead of blank content or an error
  • Given the empty-state screen is shown, when the user taps the call-to-action, then they are navigated to the activity registration flow
  • Given the empty-state screen is shown, when it is displayed, then the screen still uses the animated summary layout so the visual design remains consistent
  • +1 more
View Full Story →
Experience Animated Count-Up Statistics Reveal
medium 3 pts

As a As a user

I want I want to see my key impact metrics (total hours, contacts helped, activities completed) animate upward from zero to their final values as I progress through the summary

So that So that the reveal of each statistic feels celebratory and emotionally impactful rather than a static data display

Acceptance Criteria
  • Given a metric slide becomes active in the summary sequence, when the animation triggers, then the numeric value counts up from 0 to the final value over approximately 1.5 seconds
  • Given the device is a low-end smartphone, when the count-up animation runs, then frame rate does not drop below 30fps during the animation
  • Given the user navigates back to a previously viewed metric slide, when the slide re-enters view, then the count-up animation replays from zero
  • +1 more
View Full Story →
View Mid-Year Half-Year Summary
medium 3 pts

As a As a user

I want I want to receive and view a half-year impact summary on 30 June covering the first six months of the year

So that So that I receive recognition and motivational reinforcement at the midpoint of the year, not only at year-end

Acceptance Criteria
  • Given the date is 30 June, when the Impact Summary Trigger Service fires, then half-year summaries are generated for all eligible users
  • Given a half-year summary is available, when the user opens it, then the period label clearly indicates 'First Half [Year]' rather than 'Annual Review'
  • Given both an annual and a half-year summary exist, when the user navigates to summaries, then both are accessible and clearly differentiated by period label
  • +1 more
View Full Story →
Share Impact Summary as Image or Deep Link
medium 3 pts

As a As a user

I want I want to share my impact summary as a static image or a deep link from within the summary screen

So that So that I can share my volunteer achievements on social media or with colleagues, making my contributions visible beyond the app

Acceptance Criteria
  • Given the user is viewing an impact summary, when they tap the share button, then the native share sheet appears with a pre-generated image or deep link
  • Given the device has no network connection but the summary is cached, when the user taps share, then a shareable image is still generated successfully from the cached payload
  • Given the share sheet is opened, when the user selects a social media app, then the image or link is correctly passed to that app
  • +2 more
View Full Story →
Access Impact Summary Offline After Initial Load
medium 2 pts

As a As a user

I want I want to be able to view my impact summary without an internet connection after having loaded it once

So that So that I can revisit and share my summary at any time regardless of network availability, including in areas with poor connectivity

Acceptance Criteria
  • Given the user has previously loaded their impact summary with network access, when they open the summary screen with no network connection, then the cached summary renders without errors
  • Given the device has no network and the summary is cached, when the user navigates through all slides, then all content including statistics and animations displays correctly
  • Given a new summary is generated by the server, when the user next opens the app with network access, then the stale cache is replaced with the updated summary
  • +1 more
View Full Story →
View Graceful Empty State for Zero-Activity Year
medium 2 pts

As a As a user

I want I want to see an encouraging and informative screen if I have no recorded activities for the summary period

So that So that the absence of data is handled gracefully without presenting a confusing error or blank screen that damages my experience of the app

Acceptance Criteria
  • Given a user has zero activities for the summary period, when their summary is opened, then an encouraging empty-state screen is shown instead of blank content or an error
  • Given the empty-state screen is shown, when the user taps the call-to-action, then they are navigated to the activity registration flow
  • Given the empty-state screen is shown, when it is displayed, then the screen still uses the animated summary layout so the visual design remains consistent
  • +1 more
View Full Story →
Experience Animated Count-Up Statistics Reveal
medium 3 pts

As a As a user

I want I want to see my key impact metrics (total hours, contacts helped, activities completed) animate upward from zero to their final values as I progress through the summary

So that So that the reveal of each statistic feels celebratory and emotionally impactful rather than a static data display

Acceptance Criteria
  • Given a metric slide becomes active in the summary sequence, when the animation triggers, then the numeric value counts up from 0 to the final value over approximately 1.5 seconds
  • Given the device is a low-end smartphone, when the count-up animation runs, then frame rate does not drop below 30fps during the animation
  • Given the user navigates back to a previously viewed metric slide, when the slide re-enters view, then the count-up animation replays from zero
  • +1 more
View Full Story →
View Mid-Year Half-Year Summary
medium 3 pts

As a As a user

I want I want to receive and view a half-year impact summary on 30 June covering the first six months of the year

So that So that I receive recognition and motivational reinforcement at the midpoint of the year, not only at year-end

Acceptance Criteria
  • Given the date is 30 June, when the Impact Summary Trigger Service fires, then half-year summaries are generated for all eligible users
  • Given a half-year summary is available, when the user opens it, then the period label clearly indicates 'First Half [Year]' rather than 'Annual Review'
  • Given both an annual and a half-year summary exist, when the user navigates to summaries, then both are accessible and clearly differentiated by period label
  • +1 more
View Full Story →
Share Impact Summary as Image or Deep Link
medium 3 pts

As a As a user

I want I want to share my impact summary as a static image or a deep link from within the summary screen

So that So that I can share my volunteer achievements on social media or with colleagues, making my contributions visible beyond the app

Acceptance Criteria
  • Given the user is viewing an impact summary, when they tap the share button, then the native share sheet appears with a pre-generated image or deep link
  • Given the device has no network connection but the summary is cached, when the user taps share, then a shareable image is still generated successfully from the cached payload
  • Given the share sheet is opened, when the user selects a social media app, then the image or link is correctly passed to that app
  • +2 more
View Full Story →
Configure Impact Summary Trigger Dates Per Organisation
low 2 pts

As a As a Coordinator

I want I want administrators to be able to configure the annual and half-year summary trigger dates and feature flags for my organisation without requiring a code deployment

So that So that the summary generation schedule can be adjusted to align with our organisation's reporting calendar and rollout readiness

Acceptance Criteria
  • Given an administrator updates the annual trigger date for an organisation, when the configured date arrives, then summaries are generated for that organisation's users on the new date
  • Given an administrator disables the half-year summary for an organisation, when 30 June arrives, then no half-year summaries or notifications are generated for that organisation's users
  • Given an administrator enables the feature for an organisation for the first time, when the next trigger date arrives, then summaries are generated for all eligible users in that organisation
  • +1 more
View Full Story →
Receive Push Notification When Impact Summary Is Ready
high 3 pts

As a As a user

I want I want to receive a push notification and an in-app notification card when my new impact summary has been generated

So that So that I am immediately informed and can access my summary with a single tap without having to remember to check

Acceptance Criteria
  • Given a new impact summary is generated for a user, when the trigger service completes, then a push notification is dispatched within 5 minutes
  • Given the user taps the push notification, when the app opens, then the Impact Summary Screen is shown directly without requiring additional navigation
  • Given the user opens the Notifications screen, when a new impact summary is available, then an Impact Summary Notification Card appears at the top of the list with a 'View Summary' call-to-action
  • +2 more
View Full Story →
Navigate Through Paginated Story Slide Sequence
high 3 pts

As a As a user

I want I want to navigate forward and backward through the individual story slides in my impact summary

So that So that I can review specific highlights at my own pace and revisit slides I found particularly meaningful

Acceptance Criteria
  • Given the user is on a story slide, when they tap the forward region or swipe left, then the next slide transitions in using a hero animation
  • Given the user is on a story slide past the first, when they tap the backward region or swipe right, then the previous slide is shown
  • Given the user is on the last slide, when they tap forward, then a summary end-screen or close option is shown
  • +2 more
View Full Story →
View Annual Impact Summary Retrospective
high 8 pts

As a As a user

I want I want to view my annual impact summary as an animated, story-driven retrospective covering the full calendar year

So that So that I can see the cumulative value of my volunteer contributions presented in a visually meaningful and emotionally resonant way

Acceptance Criteria
  • Given a new annual summary has been generated, when the user opens the Impact Summary Screen, then the animated story sequence starts automatically from the first slide
  • Given the user is on any slide, when they tap forward, then the next hero-transition slide is shown with smooth animation
  • Given the summary payload is cached locally, when the user opens the summary without network access, then the full sequence renders correctly from the cached JSON
  • +2 more
View Full Story →
Receive Push Notification When Impact Summary Is Ready
high 3 pts

As a As a user

I want I want to receive a push notification and an in-app notification card when my new impact summary has been generated

So that So that I am immediately informed and can access my summary with a single tap without having to remember to check

Acceptance Criteria
  • Given a new impact summary is generated for a user, when the trigger service completes, then a push notification is dispatched within 5 minutes
  • Given the user taps the push notification, when the app opens, then the Impact Summary Screen is shown directly without requiring additional navigation
  • Given the user opens the Notifications screen, when a new impact summary is available, then an Impact Summary Notification Card appears at the top of the list with a 'View Summary' call-to-action
  • +2 more
View Full Story →
Navigate Through Paginated Story Slide Sequence
high 3 pts

As a As a user

I want I want to navigate forward and backward through the individual story slides in my impact summary

So that So that I can review specific highlights at my own pace and revisit slides I found particularly meaningful

Acceptance Criteria
  • Given the user is on a story slide, when they tap the forward region or swipe left, then the next slide transitions in using a hero animation
  • Given the user is on a story slide past the first, when they tap the backward region or swipe right, then the previous slide is shown
  • Given the user is on the last slide, when they tap forward, then a summary end-screen or close option is shown
  • +2 more
View Full Story →
View Annual Impact Summary Retrospective
high 8 pts

As a As a user

I want I want to view my annual impact summary as an animated, story-driven retrospective covering the full calendar year

So that So that I can see the cumulative value of my volunteer contributions presented in a visually meaningful and emotionally resonant way

Acceptance Criteria
  • Given a new annual summary has been generated, when the user opens the Impact Summary Screen, then the animated story sequence starts automatically from the first slide
  • Given the user is on any slide, when they tap forward, then the next hero-transition slide is shown with smooth animation
  • Given the summary payload is cached locally, when the user opens the summary without network access, then the full sequence renders correctly from the cached JSON
  • +2 more
View Full Story →