Achievement Badges
Feature Detail
Description
The Achievement Badges feature introduces a structured recognition system that awards digital badges to peer mentors when they reach meaningful milestones in their volunteer journey. Badges are earned automatically when defined thresholds are crossed - such as completing a first activity, reaching 10 or 50 activities, attending a course, or supporting a contact for an extended period. A Badges Gallery screen displays all earned and locked badges with progress indicators toward the next unlock. Badges serve as lightweight gamification anchors that give volunteers a sense of progression without requiring competitive leaderboards or social comparison.
Analysis
Gamification elements such as badges have a well-documented effect on voluntary behaviour: they provide intrinsic motivation by making progress tangible and by giving volunteers a vocabulary to describe their experience to others. For Meander's peer mentor population - many of whom are not professionally employed and receive no salary - recognition through badges can substitute for career advancement signals, reinforcing continued participation. For coordinators, the badge system surfaces engagement data passively: a peer mentor who has not earned any new badges in three months is a natural candidate for a check-in. For the platform, badges create lightweight network effects - mentors who share badge achievements on social media or in chapter meetings provide organic promotion without any marketing spend.
Badge definitions are stored in the Badges table as declarative trigger rules (e.g., activity_count >= 10, course_enrollment_completed = true) evaluated by the Badge Award Service as a post-save hook whenever an activity, enrollment, or contact record is created or updated. The service uses a rule engine pattern - each badge type is a class implementing a common interface - making new badge types addable without schema changes. Awarded badges are recorded in the User Achievements table with a timestamp and the triggering entity reference. The Flutter Badges Gallery screen fetches the full badge catalogue and the user's achievement list, computing lock/unlock state client-side for instant rendering. Badge artwork is bundled as SVG assets in the Flutter app rather than fetched from the server, avoiding network dependency for the gallery. The feature integrates with the Annual Summary payload so earned badges appear in the year-in-review screen.
Components (43)
Shared Components
These components are reused across multiple features
User Interface (9)
Service Layer (15)
Data Layer (8)
Infrastructure (7)
User Stories
No user stories have been generated for this feature yet.