What: Add a leaderboard endpoint specifically for reward claims, showing top earners by total credits.
Why: The general leaderboard (/users/leaderboard) combines multiple metrics. A rewards-focused leaderboard highlights earning potential and motivates course completion.
Scope: Create endpoint that queries users ordered by credits descending. Return top 50 with rank, displayName, and credits. Cache for 5 minutes.
Acceptance criteria:
- Returns top 50 users by credits
- Cached for 5 minutes
- Excludes users with 0 credits
- No authentication required
Technical context: src/modules/users/user.service.ts — user queries. src/database/schema.ts:28 — credits column.
What: Add a leaderboard endpoint specifically for reward claims, showing top earners by total credits.
Why: The general leaderboard (
/users/leaderboard) combines multiple metrics. A rewards-focused leaderboard highlights earning potential and motivates course completion.Scope: Create endpoint that queries users ordered by
creditsdescending. Return top 50 with rank, displayName, and credits. Cache for 5 minutes.Acceptance criteria:
Technical context:
src/modules/users/user.service.ts— user queries.src/database/schema.ts:28— credits column.