Skip to content
hiresh-ydvPublic

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

LeetCheck 🔥

AI-powered LeetCode profile roaster — in pure Indian tech-bro Hinglish.

Enter any LeetCode username and get a brutally funny, data-driven roast of their profile stats — written like a classic Indian engineering senior at a chai tapri.


✨ What It Does

LeetCheck fetches your real LeetCode profile data and feeds it to an AI model that roasts:

  • Easy / Medium / Hard split — are you actually solving problems or just farming Two Sum?
  • Submission count vs accepted — treating LeetCode like a debugging console?
  • Contest rating & global ranking — scared of Sunday 8 AM contests?
  • Submission streak & calendar — daily 1 easy problem for "green box ki kheti"?
  • Badges — participation trophies galore?

The roast is delivered in authentic Hinglish, punchy bullet points, and ends with a Final Verdict.


🗂️ Project Structure

LeetCheck/
├── backend/                  # FastAPI Python backend
│   ├── app/
│   │   ├── api/
│   │   │   └── routes.py     # GET /analyze/{username}
│   │   ├── services/
│   │   │   ├── leetcode.py   # LeetCode GraphQL API client
│   │   │   └── llm.py        # Groq LLM roast generation
│   │   └── main.py           # FastAPI app + GET /roast/{username}
│   ├── pyproject.toml
│   └── .env                  # (not committed) GROQ_API_KEY
│
├── frontend/                 # React + Vite frontend
│   ├── src/
│   │   ├── components/
│   │   │   ├── SearchBox.jsx
│   │   │   ├── ProfileHeader.jsx
│   │   │   ├── DifficultyStats.jsx
│   │   │   ├── SolvedProgress.jsx
│   │   │   ├── ContestStats.jsx
│   │   │   ├── SubmissionHeatmap.jsx
│   │   │   ├── BadgeSection.jsx
│   │   │   ├── RoastCard.jsx
│   │   │   ├── LoadingState.jsx
│   │   │   └── InteractiveBackground.jsx
│   │   ├── services/
│   │   │   └── api.js        # Calls /analyze and /roast endpoints
│   │   ├── App.jsx
│   │   └── main.jsx
│   ├── package.json
│   └── vite.config.js
│
├── .gitignore
└── README.md

🛠️ Tech Stack

Layer Technology
Frontend React 19, Vite 8, Lucide React
Backend FastAPI, Uvicorn, Python 3.12+
AI / LLM Groq API (openai/gpt-oss-120b)
Data Source LeetCode GraphQL API
Package Manager uv (backend), npm (frontend)
Rate Limiting SlowAPI

🚀 Getting Started

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • A Groq API key (free tier available)

Backend Setup

cd backend

# Install dependencies with uv
pip install uv        # if not already installed
uv sync

# Create your .env file
echo GROQ_API_KEY=your_key_here > .env

# Start the server
uvicorn app.main:app --reload --port 8000

The API will be live at http://localhost:8000.

API Endpoints:

Method Endpoint Description
GET / Health check
GET /health Health status
GET /analyze/{username} Fetch LeetCode profile data
GET /roast/{username} Fetch profile + generate AI roast

Frontend Setup

cd frontend

npm install

# Optional: create a .env.local to point at a remote backend
# VITE_API_BASE_URL=http://localhost:8000

npm run dev

The app will open at http://localhost:5173.

By default, the frontend calls the backend at the same origin (no .env.local needed for local dev when the backend is on port 8000 via the Vite proxy or you set VITE_API_BASE_URL).


🔐 Environment Variables

Backend — create backend/.env:

GROQ_API_KEY=your_groq_api_key_here

Frontend (optional) — create frontend/.env.local:

VITE_API_BASE_URL=http://localhost:8000

⚠️ Never commit .env files. They are excluded by .gitignore.


📸 Features At A Glance

  • 🔍 Username search — enter any public LeetCode handle
  • 📊 Profile stats — difficulty breakdown, solved counts, submission calendar heatmap
  • 🏆 Contest data — rating, global rank, contests attended
  • 🎖️ Badges — all earned badges displayed
  • 🤖 AI Roast — savage, funny Hinglish roast generated by Groq LLM
  • ✨ Interactive background — animated canvas background
  • ⏳ Loading states — smooth animated loading screen


Built with chai, sarcasm, and one too many LeetCode sessions. ☕

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages