Skip to content

Repository files navigation

LeetCode Pattern Tracker

LeetCode Pattern Tracker

Stop memorizing solutions. Start mastering patterns.
A modern, pattern-based DSA learning platform for serious coding interview preparation.

🌐 Live Demo · 🐛 Report Bug · ✨ Request Feature

StarsForksLicenseVercel


✨ Features

FeatureDescription
📊 Pattern-Based LearningProblems organized by DSA patterns -Arrays & Hashing, Strings, Linked Lists, Dynamic Programming, Graphs, Trees
Progress TrackingMark questions as Solved, Revision, or Unsolved with persistent state
🔗 LeetCode SyncConnect your LeetCode profile and auto-sync solved problems
📈 Dashboard AnalyticsVisual progress stats -overall completion %, difficulty breakdown (Easy / Medium / Hard)
🔐 Firebase AuthenticationGoogle sign-in to save and sync progress across devices
🌗 Dark / Light ThemeSystem-aware theme toggle with smooth transitions
📝 Markdown SolutionsRich solutions with syntax-highlighted code blocks
🎯 Smart FilteringFilter by difficulty, status, and pattern within each topic
🏷️ Interview TipsMemory tricks and interview-focused notes for each problem
📱 PWA ReadyInstallable as a Progressive Web App with manifest and icons
🔍 SEO OptimizedDynamic meta tags, Open Graph, Twitter cards, sitemap, and robots.txt
📊 AnalyticsFirebase Analytics + Vercel Analytics for usage insights

🛠️ Tech Stack

LayerTechnology
FrameworkNext.js 16 (App Router)
LanguageTypeScript
StylingTailwind CSS v4
UI ComponentsRadix UI · Lucide Icons
AnimationsFramer Motion
State ManagementZustand
Auth & DatabaseFirebase (Auth + Firestore)
Markdownreact-markdown · react-syntax-highlighter
AnalyticsVercel Analytics · Firebase Analytics
DeploymentVercel

🚀 Getting Started

Prerequisites

  • Node.js >= 18
  • npm or yarn
  • A Firebase project with Auth & Firestore enabled

Installation

# Clone the repository
git clone https://github.com/AnkitRajCode/leetcode-pattern-tracker.git
cd leetcode-pattern-tracker
# Install dependencies
npm install
# Create environment variables
cp .env.example .env.local

Environment Variables

Create a .env.local file in the root directory:

NEXT_PUBLIC_FIREBASE_API_KEY=your_api_keyNEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domainNEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_idNEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucketNEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_idNEXT_PUBLIC_FIREBASE_APP_ID=your_app_idNEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id

Run Locally

npm run dev

Open http://localhost:3000 in your browser.

Build for Production

npm run build
npm start

📁 Project Structure

leetcode-pattern-tracker/
├── app/
│ ├── page.tsx # Homepage -topic cards & hero section
│ ├── layout.tsx # Root layout with providers & metadata
│ ├── dashboard/ # Dashboard with progress stats & LeetCode sync
│ ├── topics/[topic]/ # Dynamic topic pages with question tables
│ ├── api/ # API routes
│ ├── robots.ts # SEO robots configuration
│ └── sitemap.ts # Dynamic sitemap generation
├── components/
│ ├── table/ # Interactive question table with filters
│ ├── topic/ # Topic page components
│ ├── ui/ # Reusable UI primitives (Button, Dialog, etc.)
│ ├── LeetcodeSync.tsx # LeetCode profile sync component
│ ├── FirebaseSync.tsx # Firebase data sync on auth state
│ ├── FirebaseAnalytics.tsx # Analytics tracking
│ ├── MarkdownRenderer.tsx # Syntax-highlighted markdown rendering
│ ├── ThemeToggle.tsx # Dark / Light mode toggle
│ ├── UserNav.tsx # User navigation & auth controls
│ └── Footer.tsx # Global footer
├── context/
│ └── AuthContext.tsx # Firebase auth context provider
├── data/
│ ├── arrays.json # Arrays & Hashing problems
│ ├── strings.json # String Manipulation problems
│ ├── linkedlist.json # Linked Lists problems
│ ├── dp.json # Dynamic Programming problems
│ ├── graph.json # Graph problems
│ └── tree.json # Tree problems
├── store/
│ └── questionStore.ts # Zustand store for question state
├── lib/ # Firebase config & utilities
├── public/ # Static assets, icons, manifest
└── types/ # TypeScript type definitions

📸 Screenshots

Home PageTopic Page
Pattern-based topic cards with statsInteractive table with filters & solutions
DashboardDark Mode
Progress analytics & LeetCode syncFull dark theme support

📚 Curated Resources

LeetCode Lists & Problem Sets

Comprehensive Lists

Grind 75

Blind 75

Neetcode 150


DSA Sheets & Roadmaps


Interview Preparation

Data Structures Visualization


System Design

📘 Courses & Roadmaps

🔧 LLD Resources

📦 HLD / System Design Repositories

🧠 Deep Dives


Backend Development

Spring & Spring Boot

Backend Fundamentals


GitHub Repositories

AreaRepository
JavaJava Code Examples -navinreddy20
Spring 6Spring 6 Course -navinreddy20
MicroservicesMicroservices Tutorials -navinreddy20
AI/MLLangChain and Ollama -laxmimerit
AngularAngular Interview Questions -sudheerj

Additional References


🤝 Contributing

Contributions are welcome! Feel free to open issues and submit pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is open source and available under the MIT License.


👤 Author

Ankit Raj

🌐 Portfolio · GitHub · Twitter · LinkedIn


⭐ Star this repo if it helped your interview prep!

About

A modern, pattern-based DSA learning platform for serious coding interview preparation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages