A full-stack MERN application to track your Data Structures & Algorithms practice — log problems, visualize your progress with insights and heatmaps, set goals, and compare with friends.
🔗 Live Demo: https://dsa-tracker-rohini18.vercel.app
Originally built as a group project. This repository is a personal copy maintained by @Rohini-R008.
- Authentication — Secure JWT-based register/login with hashed passwords (bcrypt).
- Problem Tracking — Add problems with platform, topic, difficulty, and status.
- Dashboard — At-a-glance stats on your solving activity.
- Insights — Charts and a calendar heatmap to visualize progress over time.
- Friends — Connect with friends and compare activity.
- Profile & Goals — Set a target problem count and a daily goal.
| Layer | Technologies |
|---|---|
| Frontend | React 19, Vite, React Router, Axios, Recharts, Framer Motion, Radix UI, react-hot-toast |
| Backend | Node.js, Express 5, Mongoose, JWT, bcryptjs, Helmet, CORS, express-validator |
| Database | MongoDB (Atlas) |
| Deployment | Vercel (frontend) + Render/Railway (backend) |
DSA_Tracker/
├── client/ # React + Vite frontend
│ ├── src/
│ │ ├── api/ # Axios instance & interceptors
│ │ ├── assets/
│ │ ├── components/ # Sidebar, ProtectedRoute
│ │ ├── context/ # AuthContext
│ │ ├── pages/ # Landing, Auth, Dashboard, Problems, Insights, Friends, Profile
│ │ ├── App.jsx
│ │ └── main.jsx
│ └── vercel.json
├── server/ # Express + MongoDB backend
│ ├── config/ # DB connection
│ ├── controllers/ # Route logic
│ ├── middleware/ # Auth middleware
│ ├── models/ # User, Problem schemas
│ ├── routes/ # auth, problems, insights, friends
│ ├── seed.js # Sample data seeder
│ └── index.js # App entry point
└── README.md
git clone https://github.com/Rohini-R008/DSA_Tracker.git
cd DSA_Trackercd server
npm install
cp .env.example .env # then fill in your values
npm run dev # starts on http://localhost:5000cd client
npm install
cp .env.example .env # then fill in your values
npm run dev # starts on http://localhost:5173cd server
node seed.js| Variable | Description | Example |
|---|---|---|
MONGO_URI |
MongoDB connection string | mongodb+srv://user:[email protected]/dsa_tracker |
JWT_SECRET |
Secret key used to sign JWTs | a_long_random_string |
JWT_EXPIRE |
Token expiry duration | 7d |
FRONTEND_URL |
Allowed CORS origin (your frontend URL) | http://localhost:5173 |
PORT |
Port the server listens on | 5000 |
NODE_ENV |
Environment mode | development |
| Variable | Description | Example |
|---|---|---|
VITE_API_URL |
Base URL of the backend API | http://localhost:5000/api |
⚠️ Never commit your real.envfiles — they are git-ignored. Only.env.exampleis tracked.
- Frontend is deployed on Vercel (root directory:
client). SetVITE_API_URLto your deployed backend's/apiURL. - Backend is deployed on Render (root directory:
server). Set allserver/.envvariables in the dashboard and pointFRONTEND_URLto your Vercel URL. - Database is hosted on MongoDB Atlas.
See the project wiki / deployment notes for step-by-step instructions.
Built as a collaborative group project. Maintained here by @Rohini-R008.