Stop memorizing solutions. Start mastering patterns.
A modern, pattern-based DSA learning platform for serious coding interview preparation.
🌐 Live Demo · 🐛 Report Bug · ✨ Request Feature
| Feature | Description |
|---|---|
| 📊 Pattern-Based Learning | Problems organized by DSA patterns — Arrays & Hashing, Strings, Linked Lists, Dynamic Programming, Graphs, Trees |
| ✅ Progress Tracking | Mark questions as Solved, Revision, or Unsolved with persistent state |
| 🔗 LeetCode Sync | Connect your LeetCode profile and auto-sync solved problems |
| 📈 Dashboard Analytics | Visual progress stats — overall completion %, difficulty breakdown (Easy / Medium / Hard) |
| 🔐 Firebase Authentication | Google sign-in to save and sync progress across devices |
| 🌗 Dark / Light Theme | System-aware theme toggle with smooth transitions |
| 📝 Markdown Solutions | Rich solutions with syntax-highlighted code blocks |
| 🎯 Smart Filtering | Filter by difficulty, status, and pattern within each topic |
| 🏷️ Interview Tips | Memory tricks and interview-focused notes for each problem |
| 📱 PWA Ready | Installable as a Progressive Web App with manifest and icons |
| 🔍 SEO Optimized | Dynamic meta tags, Open Graph, Twitter cards, sitemap, and robots.txt |
| 📊 Analytics | Firebase Analytics + Vercel Analytics for usage insights |
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| UI Components | Radix UI · Lucide Icons |
| Animations | Framer Motion |
| State Management | Zustand |
| Auth & Database | Firebase (Auth + Firestore) |
| Markdown | react-markdown · react-syntax-highlighter |
| Analytics | Vercel Analytics · Firebase Analytics |
| Deployment | Vercel |
# 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.localCreate a .env.local file in the root directory:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_idnpm run devOpen http://localhost:3000 in your browser.
npm run build
npm startleetcode-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
| Home Page | Topic Page |
|---|---|
| Pattern-based topic cards with stats | Interactive table with filters & solutions |
| Dashboard | Dark Mode |
|---|---|
| Progress analytics & LeetCode sync | Full dark theme support |
- Blind 75 Problem List
- Blind 75 Spreadsheet
- Top 75 LeetCode Questions — GitHub
- Top 75 LeetCode Questions — Web Version
- DSA Sheet by Arsh (45–60 Days Plan)
- DSA by Shradha Ma'am
- DSA Sheet by Love Babbar
- Striver's SDE Sheet
- Striver's 79 Last Moment DSA Sheet
- DSA Patterns Roadmap — KushalVijay
- AlgoMaster DSA Course Roadmap
- SDE Sheets Collection
- Tech Interview Handbook — GitHub
- Interview Master 100 — Instabyte
- DSA Master — Instabyte
- FAANG Coding Interview Questions
- Design Patterns Catalog — Refactoring Guru
- InterviewReady — System Design Course
- Complete System Design Roadmap — takeUforward
- AlgoMaster — System Design Course Introduction
- HLD System Designs — Anshul619
- GitHub Topics — High Level Design
- System Design LLD & HLD — vivek-panchal
- SystemDesign Playbook — DesignNerds
- System Design Academy — systemdesign42
- Best System Design Resources — armankhondker
- Awesome System Design Resources — ashishps1
- Backend from First Principles by Sriniously — YouTube Playlist
| Area | Repository |
|---|---|
| Java | Java Code Examples — navinreddy20 |
| Spring 6 | Spring 6 Course — navinreddy20 |
| Microservices | Microservices Tutorials — navinreddy20 |
| AI/ML | LangChain and Ollama — laxmimerit |
| Angular | Angular Interview Questions — sudheerj |
Contributions are welcome! Feel free to open issues and submit pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Ankit Raj
🌐 Portfolio · GitHub · Twitter · LinkedIn
⭐ Star this repo if it helped your interview prep!