Skip to content

ankit23-exe/DSA-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DSA Tracker

A full-stack web application to track and manage Data Structures & Algorithms (DSA) questions for interview preparation.

πŸš€ Features

  • Track DSA questions by topic and difficulty
  • Monitor revision progress
  • User authentication
  • Personalized settings
  • Clean and intuitive UI

🧠 Spaced Repetition & Scientific Revision Strategy

DSA Tracker uses Spaced Repetition, a scientifically proven learning technique that maximizes knowledge retention and minimizes forgetting.

How Spaced Repetition Works

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.

Example: Revision Pattern (1, 3, 7, 14, 21 days)

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

Why This Works

  1. Combats Forgetting Curve: We forget ~50% of new information within 24 hours. Timely reviews counteract this.
  2. Strengthens Memory: Each review strengthens neural connections, making recall faster and more reliable.
  3. Builds Muscle Memory: Repeated practice on the same problem at intervals helps you internalize problem-solving patterns.
  4. Optimizes Study Time: By reviewing at the right times, you avoid unnecessary repetition while ensuring retention.

Customizable Reminder Patterns

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.

Screenshots

Dashboard

image

Main dashboard showing all tracked DSA questions and statistics

Add Question

image *Easy-to-use form to add new DSA questions with details and solutions*

Question Details

image *View detailed information about a question with revision schedule*

Setting

image *Here you can , change your revision patter*

User Profile

image *Manage your profile and customize revision patterns*

πŸ“‹ Prerequisites

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)

πŸ”§ Installation & Setup

Step 1: Clone the Repository

git clone https://github.com/ankit23-exe/DSA-Tracker.git
cd DSA-Tracker

Step 2: Setup Backend

Navigate to Backend folder:

cd Backend

Install dependencies:

npm i

Create .env file:

Create a new file named .env in the Backend folder and add the value as shown in the .env.example

Get MongoDB Atlas URL:

  1. Go to MongoDB Atlas
  2. Create a free account
  3. Create a new cluster
  4. Click "Connect" and copy the connection string
  5. Replace your_mongodb_atlas_url_here with your actual MongoDB connection string
  6. Example: mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/dsa-tracker?retryWrites=true&w=majority

Start the Backend:

npm run dev

You should see:

βœ… Connected to MongoDB
 Server is running on port 5000
 API URL: http://localhost:5000
 Health check: http://localhost:5000/api/health

Step 3: Setup Frontend

Open a new terminal and navigate to Frontend folder:

cd frontend

Install dependencies:

npm i

Create .env file:

Create a new file named .env in the frontend folder and add:

VITE_API_URL=http://localhost:5000/api

Start the Frontend:

npm run dev

You should see output showing the local development server URL (typically http://localhost:5173)

Step 4: Test the Application

  1. Open your browser and go to the URL shown in the terminal (usually http://localhost:5173)
  2. Create an account or login
  3. Start tracking your DSA questions!

βœ… Verification

  • 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

πŸ“ Project Structure

DSA-Tracker/
β”œβ”€β”€ Backend/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.example
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.example
└── README.md

πŸ› Troubleshooting

Port Already in Use

If port 5000 is already in use, change the PORT in your Backend .env file and update VITE_API_URL accordingly.

MongoDB Connection Error

  • Verify your MongoDB connection string is correct
  • Check your MongoDB Atlas IP whitelist settings (add your IP)
  • Ensure your username and password are correct

Frontend can't connect to Backend

  • Verify the VITE_API_URL in frontend .env matches your backend URL
  • Check if the backend is running on the correct port
  • Ensure CORS is enabled on the backend

πŸ“ Environment Variables Reference

Backend (.env)

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

Frontend (.env)

Variable Description Example
VITE_API_URL Backend API URL http://localhost:5000/api

πŸ“„ License

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


🀝 Contributing

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!

How to Contribute

  1. Fork the repository on GitHub
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Make your changes and commit them (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request and describe your changes

Ideas for Contributions

  • πŸ› 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

Code of Conduct

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!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors