Solved it once doesn't mean you'll remember it. This automated spaced-repetition tracker emails you exactly when it's time to revisit a DSA problem — Day 3, 7, 15, 30, or on your own custom schedule — so nothing slips through the cracks before your next interview.
Built as part of my #100DaysOfCode journey — a full-stack MERN project that combines spaced-repetition learning science with automated email reminders, so DSA prep becomes a system instead of a guessing game.
- Frontend: https://amitdsatracker.onrender.com
- Backend API: https://dsa-tracker-backend-8ymx.onrender.com
Note: Both are hosted on Render's free tier, which spins down after inactivity — the first request after a period of idle time may take ~50 seconds to respond.
- Add & Track Questions — Log any DSA problem with its name, topic, difficulty, and original problem link (LeetCode/GFG).
- Spaced Repetition Scheduling — Automatic revision reminders at Day 3, 7, 15, and 30 after adding a question.
- Custom Scheduling — Set your own revision interval for any question instead of the default schedule.
- Live Dashboard — See all due questions organized by interval, update or delete entries in real time.
- One-Click Problem Access — Clickable LeetCode icon on every question takes you straight to the original problem.
- Automated Email Alerts — A cron job checks for due questions daily and emails you a summary — with a button that links straight back to your dashboard.
- Fully Responsive — Works cleanly on desktop, tablet, and mobile.
| Layer | Technology |
|---|---|
| Frontend | React (Vite) |
| Backend | Node.js, Express.js |
| Database | MongoDB Atlas + Mongoose |
| Scheduling | node-cron |
| Nodemailer (Gmail) | |
| Styling | Custom CSS (Flexbox, responsive) |
(Add your dashboard screenshots here — desktop view, mobile view, and a sample reminder email.)
notes/screenshots/dashboard-desktop.png
notes/screenshots/dashboard-mobile.png
notes/screenshots/reminder-email.png
- Node.js v18+ and npm installed
- A MongoDB Atlas account (free tier works)
- A Gmail account with an App Password generated (for sending email alerts)
git clone https://github.com/realamiit/mern-learning.git
cd mern-learningcd 02-nodejs/practice
npm installCreate a .env file in this folder with:
MONGO_URI=your_mongodb_atlas_connection_string
GMAIL_USER=your_gmail_address
GMAIL_APP_PASSWORD=your_gmail_app_password
RECIPIENT_USER=email_to_receive_remindersStart the backend server:
node express-server.jsServer runs at http://localhost:3000
cd ../../AmitDSATracker
npm install
npm run devApp runs at http://localhost:5173
- Add a question you just solved — name, topic, difficulty, and link.
- The app automatically schedules revision reminders for Day 3, 7, 15, and 30 from the date added (or set a custom day interval).
- A cron job runs daily, checks MongoDB for questions due today, and emails you a summary with clickable links.
- Click the email's "Go to Dashboard" button, revisit the due questions, and mark them done.
- Email deliverability: Reminder emails are sent via plain Gmail SMTP (Nodemailer), which is fine for personal/individual use but may land in the recipient's Spam folder on first delivery — Gmail's automated-sending trust model requires the recipient to mark the sender as "Not Spam" once, or add the sender to their contacts. For a production/multi-user version, a dedicated transactional email service (SendGrid, Mailgun, or Amazon SES) with proper SPF/DKIM authentication would resolve this reliably.
- GitHub contribution graph / coding platform submission tracking integration
- User authentication (multi-user support)
- Progress analytics (questions solved over time, topic-wise strength/weakness)
- WhatsApp notification support
Amit Gupta
- GitHub: @realamiit
- Building this project as part of a self-directed MERN stack + DSA learning journey, documented daily under #100DaysOfCode.
This project is open source and available for learning purposes.
We welcome any feedback or contributions to improve this project!