A premium, fast, and highly interactive developer dashboard that transforms static LeetCode profiles into beautiful visual statistics. Built with FastAPI and a modern frontend to help developers track their problem-solving journey, contest ratings, and compare skills seamlessly.
- 🚀 Premium Aesthetics: Dark mode, glassmorphism UI, glowing borders, and modern typography (Outfit/Inter).
- 📊 Advanced Analytics: Interactive difficulty breakdowns, language usage, and topic-wise performance visualizations.
- 🏆 Contest Journey: Track your rating trajectory, best/worst ranks, and consistency across weekly contests.
- ⚡ 60fps Animations: Smooth, staggered entrance animations and real-time counter ticking powered by Motion One.
- ⚔️ Comparison Mode: Head-to-head "Battle Mode" to compare two LeetCode profiles side-by-side.
- Backend: Python 3, FastAPI, Uvicorn, HTTPX
- Data Processing: Pandas
- Frontend: HTML5, CSS3 (Vanilla CSS variables), Vanilla JavaScript
- Templates: Jinja2
- Charting Engine: ApexCharts
- Animation Engine: Motion One (Framer Motion's vanilla JS core)
- Python 3.9+
- pip (Python package installer)
- Git
-
Clone the repository
git clone https://github.com/shubham-lohan/leetcode-visualiser.git cd leetcode-visualiser -
Set up a Virtual Environment
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Dependencies
pip install -r requirements.txt
-
Run the Application
python -m uvicorn app.main:app --reload
The application will be available at http://127.0.0.1:8000.
We welcome contributions! If you're looking to add a new feature, fix a bug, or improve documentation, follow the guide below.
- Fork the repository to your own GitHub account.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/leetcode-visualiser.git
- Create a new branch for your feature or bugfix:
git checkout -b feature/your-awesome-feature
- Make your changes. If you are modifying the frontend, be sure to maintain the premium design system (variables found in
app/static/css/main.css). - Test your changes locally by running the FastAPI server.
- Commit your changes with clear and descriptive commit messages:
git commit -m "feat: add new dark mode toggle" - Push your branch to your fork:
git push origin feature/your-awesome-feature
- Open a Pull Request against the
mainbranch of the original repository.
app/main.py: The entry point for the FastAPI server and route definitions.app/routers/: Specific route handlers (e.g., handling the profile data fetch).app/services/: Business logic, LeetCode API interactions, and data formatting.app/templates/: Jinja2 HTML templates (base.html,index.html,compare.html).app/static/css/main.css: Core design system, variables, and styling.app/static/js/dashboard.js: Client-side logic for animations, counters, and rendering ApexCharts.