Summary
The leaderboard currently shows only a total problems-solved count per user. The LeetCode API (used via the leetcode-api service) returns a breakdown by difficulty — Easy, Medium, Hard — but this data is not displayed in the UI. Surfacing the difficulty split would give a much more meaningful picture of each student's skill level and effort.
Problem
- Raw total-solved counts treat an Easy problem the same as a Hard problem, which does not accurately reflect a student's problem-solving depth.
- Two students with the same total count but vastly different difficulty distributions appear identical on the leaderboard — this is misleading.
- The underlying API already returns this data; it is just not being used in the frontend rendering.
- Competitive platforms like LeetCode's own weekly contest leaderboard prominently feature difficulty-based breakdowns because they are the primary signal of relative performance.
Proposed Solution
Data layer (scripts/sync-leaderboard.js):
Ensure easySolved, mediumSolved, and hardSolved are persisted in the leaderboard JSON alongside totalSolved.
Frontend (frontend/):
Add a compact difficulty bar or three-column breakdown under each user's name:
Rank Username Total Easy Medium Hard
1 student123 142 61 52 29
2 coder456 138 70 48 20
Optionally, colour-code the columns (green / yellow / red) to match LeetCode's own convention.
Sorting option:
Add a "Sort by Hard" toggle so users competing at the advanced level have a relevant ranking axis.
I can implement the data layer and frontend changes in a single PR. Could you assign this issue to me?
Labels: enhancement, feature, ui, data, GSSoC 2026
Summary
The leaderboard currently shows only a total problems-solved count per user. The LeetCode API (used via the
leetcode-apiservice) returns a breakdown by difficulty — Easy, Medium, Hard — but this data is not displayed in the UI. Surfacing the difficulty split would give a much more meaningful picture of each student's skill level and effort.Problem
Proposed Solution
Data layer (
scripts/sync-leaderboard.js):Ensure
easySolved,mediumSolved, andhardSolvedare persisted in the leaderboard JSON alongsidetotalSolved.Frontend (
frontend/):Add a compact difficulty bar or three-column breakdown under each user's name:
Rank Username Total Easy Medium Hard
1 student123 142 61 52 29
2 coder456 138 70 48 20
Optionally, colour-code the columns (green / yellow / red) to match LeetCode's own convention.
Sorting option:
Add a "Sort by Hard" toggle so users competing at the advanced level have a relevant ranking axis.
I can implement the data layer and frontend changes in a single PR. Could you assign this issue to me?
Labels:
enhancement,feature,ui,data,GSSoC 2026