A smart CLI application that helps you master Data Structures & Algorithms using spaced repetition. Never forget what you've learned - the system intelligently schedules problem reviews based on your performance!
- 🧠 Smart Learning: Uses proven spaced repetition algorithm to maximize retention
- 📈 Track Progress: See your improvement over time with detailed analytics
- 🎯 Focus Practice: Identifies weak topics and adjusts accordingly
- ⚡ CLI Efficiency: Fast, keyboard-friendly interface for developers
- 🔄 No Setup Hassle: Fully containerized with Docker
Before you start, make sure you have these installed:
- Node.js 18+ - Download here
- Docker Desktop - Download here
Verify installation:
✓ You should now be in the repeatable-practice-system directory
✓ Run docker ps - you should see dsa-mongo container running
✓ This installs dependencies, compiles TypeScript, and makes dsa command available globally
✓ You should see the help menu with all available commands
Get started with a quick demo:
✓ You should see: "Problem 'Two Sum' added successfully!"
✓ You should see "Two Sum" in your today's list
✓ Problem marked as complete - it will appear again in 3 days
✓ See your first stats! 1 problem completed, streak started
Congratulations! You're ready to build your DSA practice habit.
- Add Problems: Import problems you want to practice
- Daily Reviews: System shows you problems due for review
- Rate Performance: After solving, rate how well you did
- Smart Scheduling: Algorithm adjusts future review dates based on your performance
- Track Progress: Monitor improvement and identify weak areas
Rate your performance honestly - the algorithm uses this to optimize your learning:
- easy ⚡ - Solved much faster than expected → Reviews spaced further apart
- good ✅ - Solved within expected time → Normal progression
- hard 😅 - Took longer but got it right → Reviews repeat sooner
- failed ❌ - Couldn't solve it → Back to tomorrow's queue
Uses a modified SM-2 algorithm optimized for coding problems:
Review Schedule: 1 day → 3 days → 7 days → 14 days → 30 days → 60 days → 120 days
- Easy ⚡ → Skip ahead in sequence (e.g., 3 days → 14 days)
- Good ✅ → Follow normal progression
- Hard 😅 → Stay at current interval longer
- Failed ❌ → Reset to tomorrow
- Forgetting Curve: Reviews problems just before you'd forget them
- Active Recall: Forces you to retrieve solutions from memory
- Personalized: Adapts to your individual learning pace per topic
- 🔥 Streak Tracking: Days of consistent practice
- 📈 Speed Improvement: How much faster you're getting
- 🎯 Topic Breakdown: Success rates by algorithm type
- ⏰ Review Load: Upcoming workload planning
- 📉 Difficulty Analysis: Where you struggle most
Create .env file for custom settings:
Default password (password) is for development only. Use strong credentials in production via environment variables.
"dsa: command not found" after npm link?
"MongoDB connection failed"?
Want to start fresh?
Need to uninstall?
- 📱 Web dashboard for detailed analytics
- 🔄 Import problems from LeetCode lists
- 👥 Team challenges and leaderboards
- 📧 Daily email reminders
- 🎯 Custom difficulty algorithms per topic
We welcome contributions! Areas that need help:
- 🐛 Bug fixes and testing
- 📊 More analytics and visualizations
- 🔧 Performance optimizations
- 📱 Web interface development
MIT License - Feel free to fork, modify, and use for your interview prep!
Give it a star ⭐ and share it with other developers preparing for technical interviews!
Happy coding and good luck with your interviews! 🚀
.png)


