A full-stack web application to track and manage Data Structures & Algorithms (DSA) questions for interview preparation.
- Track DSA questions by topic and difficulty
- Monitor revision progress
- User authentication
- Personalized settings
- Clean and intuitive UI
DSA Tracker uses Spaced Repetition, a scientifically proven learning technique that maximizes knowledge retention and minimizes forgetting.
Research shows that reviewing material at optimal intervals significantly improves long-term memory retention. Instead of cramming everything at once, spaced repetition spreads reviews over time to keep information in your active memory.
Let's say you solve your first DSA question on Day 0:
| Timeline | Action | Why It Works |
|---|---|---|
| Day 0 | π― Solve a new DSA question | Knowledge acquisition - problem freshly learned |
| Day 1 | π Reminder: Revise the question | Review before forgetting - reinforces neural pathways |
| Day 3 | π Reminder: Revise again | Spaced interval - prevents memory decay |
| Day 7 | π Reminder: Revise again | Increasing intervals - long-term memory formation |
| Day 14 | π Reminder: Revise again | Extended spacing - ensures retention |
| Day 21 | π Reminder: Final revision | Mastery achieved - knowledge locked in memory |
- Combats Forgetting Curve: We forget ~50% of new information within 24 hours. Timely reviews counteract this.
- Strengthens Memory: Each review strengthens neural connections, making recall faster and more reliable.
- Builds Muscle Memory: Repeated practice on the same problem at intervals helps you internalize problem-solving patterns.
- Optimizes Study Time: By reviewing at the right times, you avoid unnecessary repetition while ensuring retention.
DSA Tracker allows you to customize your revision pattern based on your learning pace:
- Aggressive: 1, 2, 4, 7, 14 (for intensive learning)
- Balanced: 1, 3, 7, 14, 21 (recommended)
- Relaxed: 1, 5, 10, 20, 30 (for slower-paced learning)
Pro Tip: Start with the balanced pattern and adjust based on your comfort level with DSA concepts.
Main dashboard showing all tracked DSA questions and statistics
*Easy-to-use form to add new DSA questions with details and solutions*
*View detailed information about a question with revision schedule*
*Here you can , change your revision patter*
*Manage your profile and customize revision patterns*
Before you begin, ensure you have the following installed on your machine:
- Node.js (v14 or higher)
- npm (comes with Node.js)
- Git
- MongoDB Atlas account (for database)
git clone https://github.com/ankit23-exe/DSA-Tracker.git
cd DSA-Trackercd Backendnpm iCreate a new file named .env in the Backend folder and add the value as shown in the .env.example
- Go to MongoDB Atlas
- Create a free account
- Create a new cluster
- Click "Connect" and copy the connection string
- Replace
your_mongodb_atlas_url_herewith your actual MongoDB connection string - Example:
mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/dsa-tracker?retryWrites=true&w=majority
npm run devYou should see:
β
Connected to MongoDB
Server is running on port 5000
API URL: http://localhost:5000
Health check: http://localhost:5000/api/health
cd frontendnpm iCreate a new file named .env in the frontend folder and add:
VITE_API_URL=http://localhost:5000/api
npm run devYou should see output showing the local development server URL (typically http://localhost:5173)
- Open your browser and go to the URL shown in the terminal (usually
http://localhost:5173) - Create an account or login
- Start tracking your DSA questions!
- Backend Health Check: Visit
http://localhost:5000/api/health - API Endpoints:
- Auth:
http://localhost:5000/api/auth - Questions:
http://localhost:5000/api/questions - Revisions:
http://localhost:5000/api/revisions - Settings:
http://localhost:5000/api/settings
- Auth:
DSA-Tracker/
βββ Backend/
β βββ routes/
β βββ models/
β βββ controllers/
β βββ utils/
β βββ index.js
β βββ package.json
β βββ .env.example
βββ frontend/
β βββ src/
β βββ public/
β βββ package.json
β βββ .env.example
βββ README.md
If port 5000 is already in use, change the PORT in your Backend .env file and update VITE_API_URL accordingly.
- Verify your MongoDB connection string is correct
- Check your MongoDB Atlas IP whitelist settings (add your IP)
- Ensure your username and password are correct
- Verify the
VITE_API_URLin frontend.envmatches your backend URL - Check if the backend is running on the correct port
- Ensure CORS is enabled on the backend
| Variable | Description | Example |
|---|---|---|
MONGODB_URI |
MongoDB connection string | mongodb+srv://user:pass@cluster.mongodb.net/dsa-tracker |
PORT |
Server port | 5000 |
NODE_ENV |
Environment | development |
| Variable | Description | Example |
|---|---|---|
VITE_API_URL |
Backend API URL | http://localhost:5000/api |
This project is open source and available under the MIT License.
I LOVE contributions! This project is open source and welcomes contributions from everyone. Whether you're fixing bugs, adding features, improving documentation, or just using the app and sharing feedback, your contribution matters!
- Fork the repository on GitHub
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes and commit them (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request and describe your changes
- π Bug Fixes: Found a bug? Help us squash it!
- β¨ New Features: Have ideas to improve DSA Tracker? We'd love to hear them!
- π Documentation: Help improve our README, guides, or comments
- π¨ UI/UX Improvements: Make the interface more beautiful and user-friendly
- π§ͺ Testing: Write tests to ensure the app works flawlessly
- π Localization: Help translate the app to other languages
Please be respectful and constructive in all interactions. We're building this together as a community!
Questions about contributing? Reach out to me on Twitter or Email - I'd be happy to help!
Thank you for making DSA Tracker better! β€οΈ
Happy coding! π Good luck with your DSA preparation!
