Skip to content

[Feature]: Add problem difficulty breakdown (Easy / Medium / Hard) to each leaderboard entry #365

Description

@divyanshim27

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions