Skip to content

Conversation

@Benjtalkshow
Copy link

@Benjtalkshow Benjtalkshow commented Jan 30, 2026

Closes #94

PR Description: Build Leaderboard Page

Goal

Implement a comprehensive Leaderboard page to display top contributors by reputation with various time filters and category tabs.

Changes

  • New Route: Created /leaderboard route integrated into MainWindow.
  • Navigation: Added "Leaderboard" to the main navigation menu.
  • UI Component: Built a premium Leaderboard page featuring:
    • Top 100 users by reputation scores.
    • Time Period Filters: All-Time, This Year, This Month, This Week.
    • Category Tabs: Overall, Reports, Vulnerabilities, Community (comments).
    • Contributor Details: Rank (with trophy icons for top 3), Avatar, Username, Reputation, and Badge Count.
    • Trend Indicators: Up/Down/Neutral arrows (↑↓) showing position changes.
    • User Highlighting: Visual highlighting of the current user's entry.
    • Sticky Header: Optimized table for scrolling with a persistent header.
  • Caching: Implemented frontend-side caching with a 5-minute TTL to simulate scheduled data refreshes.
  • Models: Defined LeaderboardEntry, TimePeriod, and LeaderboardCategory models.

Blocked Status

Important

I am aware that this task is currently blocked by #92. However, I have completed the implementation based on the current system and am submitting this as a Draft PR to ensure completion before the deadline. Once #92 is resolved, I will update the data fetching logic to integrate with the new backend endpoints.

Acceptance Criteria Checklist

  • Create /leaderboard route
  • Show top 100 users by reputation
  • Add time period filters: All-Time, This Year, This Month, This Week
  • Display rank, avatar, username, reputation, badge count
  • Highlight current user's position
  • Create leaderboard caching with scheduled refresh
  • Add category tabs: Overall, Reports, Vulnerabilities, Community
  • Show position change indicators (↑↓)
  • Stick to existing design system

Video Proof

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build Leaderboard Page (All-Time, Monthly, Weekly)

1 participant