Skip to content

# Achievements & Leaderboard

Recognize volunteer contributions with unlockable achievement badges and competitive leaderboards.

## How It Works

Achievements are checked automatically when relevant actions occur (e.g., signing up for a shift, completing a canvass session, accepting a friend request). When a user's progress meets the threshold, the badge is unlocked and an in-app notification is sent.

## Badge Categories

### Shifts

Badge | Name | Threshold | Description
--- | --- | --- | ---
FIRST_SHIFT | First Steps | 1 confirmed signup | Sign up for your first volunteer shift
SHIFT_STREAK_3 | Reliable Volunteer | 3 confirmed signups | Sign up for 3 volunteer shifts
SHIFT_STREAK_10 | Shift Champion | 10 confirmed signups | Sign up for 10 volunteer shifts

### Canvassing

Badge | Name | Threshold | Description
--- | --- | --- | ---
FIRST_CANVASS | Door Knocker | 1 completed session | Complete your first canvass session
CANVASS_50_DOORS | Neighbourhood Explorer | 50 visits | Record 50 canvass visits
CANVASS_100_DOORS | Community Connector | 100 visits | Record 100 canvass visits
CANVASS_500_DOORS | Door-to-Door Legend | 500 visits | Record 500 canvass visits

### Campaigns

Badge | Name | Threshold | Description
--- | --- | --- | ---
FIRST_CAMPAIGN_EMAIL | Voice Heard | 1 email sent | Send your first advocacy email
CAMPAIGN_CHAMPION | Campaign Champion | 5 distinct campaigns | Participate in 5 different campaigns

### Social

Badge | Name | Threshold | Description
--- | --- | --- | ---
SOCIAL_BUTTERFLY | Social Butterfly | 10 accepted friends | Make 10 friends on the platform
TEAM_PLAYER | Team Player | 3 group memberships | Be a member of 3 groups

## Progress Tracking

Each badge displays a progress bar showing current progress toward the threshold. Already-unlocked badges show the unlock date and the progress value at unlock time or the current count (whichever is higher).

## Leaderboards

The Achievements page includes a leaderboard tab with three ranking types:

- Canvass — ranked by total canvass visits recorded
- Shifts — ranked by total confirmed shift signups
- Campaigns — ranked by number of distinct campaigns participated in

Leaderboard entries show rank, user name, and score. Users who have disabled "Show in Friend Activity" in their privacy settings are excluded from leaderboard rankings to respect their privacy choices.

## Volunteer Stats

The Achievements page also displays aggregate stats for the current user:

- Confirmed shift signups
- Completed canvass sessions
- Total canvass visits
- Advocacy emails sent
- Campaigns participated in
- Friend count
- Group memberships

## Volunteer Routes

- `/volunteer/achievements` — badge gallery, progress bars, leaderboard tabs, and personal stats