Skip to content

rajit2004/LeetCode-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ LeetCode Progress Tracker

Tracks your LeetCode stats daily and visualises your progress over time — problems solved, difficulty breakdown, streak history, rank trend, and submission heatmap.

Python Streamlit LeetCode GitHub Sponsors


📌 About

This is a personal LeetCode progress tracker built in Python. It uses the public LeetCode GraphQL API to fetch your stats daily and saves them to a local CSV — building a history you actually own.

The Streamlit dashboard then visualises everything: problems solved over time, difficulty breakdown, streak history, global rank trend, submission heatmap, and recent accepted submissions.

Why build this when LeetCode already shows stats? LeetCode only shows your current state. This tracks the journey — how many problems you solved last month, when your streak peaked, how your rank improved over time.


📸 Screenshots

Dashboard Heatmap & Recent
(add after first run) (add after first run)

🚀 Features

  • 📊 Progress charts — total, easy, medium, hard solved over time
  • 🍩 Difficulty donut — visual breakdown of your solve distribution
  • 🔥 Streak history — track your consistency over time
  • 🌍 Rank trend — see how your global ranking improves
  • 🟩 Submission heatmap — GitHub-style activity grid (last 26 weeks)
  • Recent submissions — last 8 accepted solutions with language and date
  • 💾 Local CSV history — your data, your file, no third-party dependency

🧠 How It Works

Run leetcode_tracker.py (daily)
        ↓
Fetches stats via LeetCode GraphQL API
        ↓
Appends a snapshot to data/stats_history.csv
        ↓
Run dashboard.py (anytime)
        ↓
Streamlit reads CSV + fetches live data
        ↓
Renders charts, heatmap, recent submissions

🛠️ Tech Stack

Layer Technology
Language Python 3.14
Data Source LeetCode GraphQL API (public)
Storage CSV via pandas
Dashboard Streamlit
Charts Plotly

⚡ Getting Started

1. Clone & install

git clone https://github.com/rajit2004/leetcode-tracker.git
cd leetcode-tracker
pip install -r requirements.txt

2. Set your username

Open leetcode_tracker.py and dashboard.py, change:

USERNAME = "------"   # ← your LeetCode username

3. Fetch your first snapshot

python leetcode_tracker.py

This creates data/stats_history.csv with today's stats.

4. Launch the dashboard

streamlit run dashboard.py

5. Automate daily tracking

Windows Task Scheduler:

  • Action: python C:\path\to\leetcode_tracker.py
  • Trigger: Daily at a fixed time

Linux/Mac cron:

0 20 * * * cd /path/to/leetcode-tracker && python leetcode_tracker.py

📂 Project Structure

leetcode-tracker/
├── leetcode_tracker.py   # Fetches stats and saves to CSV
├── dashboard.py          # Streamlit dashboard
├── requirements.txt
├── data/
│   └── stats_history.csv # Auto-generated on first run
└── README.md

data/stats_history.csv is gitignored — your personal data stays local.


💖 Support This Project

Sponsor


👨‍💻 Author

Ranesh Rajit — B.Tech CS Student, India

GitHub LinkedIn

About

Personal LeetCode progress tracker — fetches daily stats via GraphQL API, saves history to CSV, and visualises progress with an interactive Streamlit dashboard featuring charts, heatmap, and streak tracking.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors

Languages