View At-a-Glance Stats Summary
The Stats Summary Widget renders as a compact grid of stat tiles on the Statistics Dashboard Screen, positioned prominently near the top of the page for immediate visibility. Each tile shows a single metric with a large number and a short label — for example '47 Activities', '83 Hours', '12 Contacts', '5-week Streak'. The widget is designed for minimal cognitive load, making it usable for peer mentors who are beginners with digital tools, including older users and those with cognitive challenges. The data is sourced from the Statistics Repository with TTL-based caching to avoid redundant server calls on repeated dashboard visits.
User Story
Acceptance Criteria
- Given I open the Statistics Dashboard Screen, when the summary loads, then I see the Stats Summary Widget displaying at least four key metrics: total activities, total hours, unique contacts helped, and current streak
- Given the Stats Summary Widget is displayed, when I view it, then each metric is shown as a large bold number with a short descriptive label, readable without scrolling
- Given I have recorded activities in the current period, when the widget loads, then the streak metric reflects consecutive periods of activity
- Given I have previously visited the dashboard, when I return within the cache TTL window, then the stats summary loads instantly from cache rather than re-fetching from the server
- Given I use a screen reader, when the Stats Summary Widget is rendered, then each stat tile is accessible with a meaningful content description read aloud by VoiceOver or JAWS
Business Value
A quick-read summary widget reduces the time required to understand personal impact from minutes to seconds. For beginner users, especially older volunteers, a simple tile grid is far more accessible than charts or tables. Immediate recognition of one's contribution reinforces the reward loop that keeps volunteers engaged and reduces dropout.
Components
- Stats Summary Widget ui
- Statistics Calculation Service service
- Statistics Repository data