medium complexity extracted Statistics & Reporting Confidence: 100%
8
Components
58
Shared
0
User Stories
Yes
Analyzed

Description

This feature provides peer mentors and coordinators with a personal dashboard showing their own activity history, totals, and trends over time. Users can view how many activities they have logged, hours contributed, contact types, and other key metrics aggregated from their own registrations. The dashboard supports filtering by date range and activity type, giving each user a clear picture of their individual contributions and helping them stay motivated and accountable in their volunteer work.

User Flow

Personal Activity Statistics user flow
Click to expand

Analysis

Business Value

Personal statistics directly address the motivation gap identified across all three workshop organizations. When volunteers can see the tangible impact of their work — total hours, number of contacts helped, activities completed — it reinforces their commitment and reduces dropout rates. For coordinators, seeing individual performance data enables targeted support and recognition. From an organizational perspective, making invisible effort visible is a core value proposition of the platform, directly tied to the Spotify Wrapped-style gamification vision shared by NHF and HLF. This feature also supports Bufdir reporting by surfacing the data volunteers need to verify their own contributions before submission.

Implementation Notes

The statistics dashboard will be built as a Flutter screen consuming aggregated endpoints from the Next.js REST API. The backend computes rollups (daily, weekly, monthly, yearly) from the activities table using PostgreSQL window functions and GROUP BY queries to avoid expensive client-side aggregation. The Flutter UI uses fl_chart or similar charting library for trend visualizations. BLoC or Riverpod state management handles filter state and async data fetching. Results are cached locally (SQLite via drift) for offline access, with sync triggered on reconnect. WCAG 2.2 AA requires all chart data to also be presented in accessible table format.

Components (66)

User Interface (3)

Service Layer (2)

Data Layer (1)

Infrastructure (2)

Shared Components

These components are reused across multiple features

Infrastructure (20)

User Stories

No user stories have been generated for this feature yet.