A production-grade accountability system to track Data Structures & Algorithms consistency, submissions, streaks, and revision cycles.
Frontend (Vercel)
https://consistencywithdsa.vercel.app
Backend (Render)
https://dsatracker-dub8.onrender.com
DSA Tracker is a full-stack web application built to enforce disciplined DSA practice through:
- Daily submission tracking
- Automated streak calculation
- Smart revision scheduling
- Profile management
- Analytics-style submission heatmap
Unlike basic trackers, this system:
- Verifies submissions using Firebase Authentication
- Validates tokens on the backend using Firebase Admin SDK
- Secures all protected routes
- Is deployed in a real production environment
- React (Vite)
- TypeScript
- TailwindCSS
- Firebase Authentication
- React Router
- Lucide Icons
- Sonner (toast notifications)
- Custom submission heatmap grid
- Node.js
- Express
- TypeScript
- Firebase Admin SDK
- Production-ready CORS configuration
- Token verification middleware
- Frontend deployed on Vercel
- Backend deployed on Render
- Environment variables securely managed
- Submit DSA questions
- Tracks platform, difficulty, topic, and solving method
- Stores submission timestamp
- Calculates daily streak automatically
- Enforces one valid submission per day
- Fully protected using Firebase token verification
- Displays submission history
- Expand/collapse functionality
- Delete submission with confirmation modal
- Backend-protected API calls
- Calendar-based grid similar to LeetCode
- Year-to-date submission tracking
- Theme selector (Green / Pink / Blue)
- Color intensity based on submission count
- Tracks revision history
- Due revision endpoint
- Optimized review cycle logic
- Google Login using Firebase
- Backend token verification
- Protected API routes
dsatracker/
│
├── client/ # React Frontend
│ ├── components/
│ ├── pages/
│ ├── lib/
│ └── config
│
├── server/ # Express Backend
│ ├── routes/
│ ├── middleware/
│ ├── db/
│ └── firebaseAdmin
│
├── dist/ # Compiled server output
└── package.json
VITE_API_BASE_URL=https://dsatracker-dub8.onrender.com
VITE_FIREBASE_API_KEY=...
VITE_FIREBASE_AUTH_DOMAIN=...
VITE_FIREBASE_PROJECT_ID=...
PORT=5000
FIREBASE_PROJECT_ID=...
FIREBASE_PRIVATE_KEY=...
FIREBASE_CLIENT_EMAIL=...
Clone the repository:
git clone https://github.com/Thejaggeddevil/dsatracker
cd dsatracker
Install dependencies:
pnpm install
Run frontend:
cd client
pnpm dev
Run backend:
pnpm run build:server
node dist/server/index.js
Frontend:
- Vercel
Backend:
- Render (Node 22)
CORS configured for:
- Localhost
- Production Vercel domain
User
→ React Frontend
→ Firebase Authentication
→ Bearer Token
→ Express Backend
→ Firebase Admin Verification
→ Database Operations


