Achievement Badges & Status Recognition
Feature Detail
Description
This feature implements a structured badge and status recognition system that awards peer mentors with digital achievements based on milestones, activity thresholds, and special contributions throughout the year. Badges can reflect cumulative activity counts, streaks, first-time events, coordinator nominations such as Coordinator of the Year, and half-year performance summaries. The system is designed to surface progress continuously rather than only at year-end, providing ongoing motivation and a visible record of a peer mentor's journey within the organization. Badges are displayed on the peer mentor's profile and are visible to coordinators to support recognition workflows.
User Flow
Analysis
Continuous recognition mechanisms have a proven positive effect on volunteer motivation and organizational loyalty. Unlike the annual summary which delivers a single moment of recognition, badge systems provide frequent, incremental rewards that sustain engagement throughout the year. For coordinators, the ability to grant nominations like Coordinator of the Year introduces a social recognition layer that strengthens team cohesion and healthy competition. Organizations such as NHF and HLF explicitly requested gamification mechanics as a response to volunteer attrition concerns. The badge system also creates data artifacts that organizations can use in internal reporting to demonstrate volunteer engagement depth to funders such as Bufdir.
Badge definitions are stored in the PostgreSQL database as configuration records, each specifying the trigger condition, display asset, and eligibility criteria. A server-side evaluation job runs nightly to check conditions and award new badges, storing results in the user_badges join table. Flutter renders badge grids using cached asset URLs; badge assets are SVG or PNG stored in object storage. Coordinator-granted badges (e.g., Coordinator of the Year) require a nomination UI in the admin panel. Half-year summary badges are computed automatically at June 30 and December 31. All badge imagery must meet WCAG contrast requirements and include descriptive alt text for screen reader compatibility.
Components (65)
Shared Components
These components are reused across multiple features
User Interface (16)
Service Layer (13)
Data Layer (9)
Infrastructure (20)
User Stories
No user stories have been generated for this feature yet.