A modern, interactive spaced repetition learning platform designed to help developers master Data Structures & Algorithms (DSA) and System Design concepts through scientifically-proven memory techniques.
- 250+ Curated Problems from top coding platforms
- Smart Scheduling using SM-2 spaced repetition algorithm
- Topic-wise Organization (Arrays, Graphs, Dynamic Programming, etc.)
- Difficulty Progression (Easy → Medium → Hard)
- Progress Tracking with streaks and statistics
- Custom Study Sessions with flexible filtering
- Comprehensive Concepts (Scalability, Load Balancing, Databases)
- Real-world Case Studies and architecture patterns
- Interactive Learning with spaced repetition
- Progressive Difficulty from basics to advanced topics
This platform implements the SuperMemo SM-2 algorithm, a scientifically-proven method for optimizing long-term retention:
- Initial Learning: New cards appear frequently until mastered
- Interval Calculation: Based on your performance (Failed, Solved, Easy)
- Adaptive Scheduling: Cards reappear just before you're likely to forget
- Ease Factor: Difficulty adjusts based on your historical performance
- Failed (1.3x ease): Couldn't solve → Review soon
- Solved (2.5x ease): Standard progression → Normal interval
- Easy (2.6x ease): Too simple → Longer interval
Day 1 → Day 6 → Day 16 → Day 35 → Day 80 → ...
Intervals adapt based on your individual performance
All user data is stored locally in your browser using localStorage:
// Storage Structure
{
"beatcode_progress": {
"problemProgress": {
"problem-id": {
"reps": 3, // Number of successful reviews
"ease": 2.5, // Ease factor (1.3 - 2.6)
"intervalDays": 16, // Days until next review
"lastReviewed": "2024-04-23",
"nextDue": "2024-05-09"
}
},
"totalReviews": 156,
"studyStreak": 12,
"lastStudyDate": "2024-04-23"
},
"beatdesign_progress": { /* Similar structure */ },
"settings": {
"cardsPerSession": 15,
"theme": "system"
}
}- No server storage - your progress stays on your device
- No tracking - we don't collect any personal data
- Export/Import functionality for data portability (planned)
- Node.js 20+
- npm or yarn
- Clone the repository
git clone https://github.com/HarshDutt17/beat-interview.git
cd beat-interview- Install dependencies
npm install- Start development server
npm run dev- Open your browser
http://localhost:5173
npm run build
npm run previewsrc/
├── apps/
│ ├── beatcode/ # DSA Problems Module
│ │ ├── components/ # Problem cards, UI components
│ │ ├── data/ # 250+ curated problems
│ │ ├── pages/ # Dashboard, Study, Browse
│ │ └── services/ # Progress tracking, SM-2 algorithm
│ │
│ └── beatdesign/ # System Design Module
│ ├── components/ # Concept cards, UI components
│ ├── data/ # System design concepts & studies
│ ├── pages/ # Dashboard, Study sessions
│ └── services/ # Progress & scheduling logic
│
├── shared/
│ ├── components/ # Reusable UI components
│ └── services/ # Shared utilities & storage
│
└── App.tsx # Main router & app shell
- Frontend: React 18.3 + TypeScript
- Routing: React Router DOM v6
- Styling: Tailwind CSS
- Build Tool: Vite 5.4
- Icons: Lucide React
- Storage: Browser localStorage
- Deployment: Vercel (optimized)
- LeetCode: Popular algorithm problems
- System Design: Real-world case studies
- Curated Content: Hand-picked for learning progression
- Arrays & Strings: 95 problems
- Linked Lists: 45 problems
- Trees & Graphs: 128 problems
- Dynamic Programming: 87 problems
- System Design: 156 concepts
- And more...
We welcome contributions from the community! Here's how you can help:
Found a bug or have a suggestion? Open an issue
Please include:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Browser and OS information
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature-
Make your changes
- Follow existing code style
- Add tests if applicable
- Update documentation
-
Commit your changes
git commit -m "feat: add amazing feature"- Push and create a Pull Request
git push origin feature/amazing-feature- Add new problems to the dataset
- Improve problem descriptions or explanations
- Add system design case studies
- Translate content (internationalization)
Found broken or outdated links in the content? Help us maintain quality resources!
Please report broken links by:
- Opening an issue with the broken URL and suggested replacement
- Or submit a pull request with the fix
Include in your report:
- The broken URL and where you found it
- What the link should point to (if known)
- Any error messages or issues encountered
- Export/import progress data
- Study reminders and notifications
- Social features (leaderboards, sharing)
- Mobile app version
- Additional learning modules
- Problems solved by difficulty
- Study streaks and consistency
- Topic-wise progress
- Time spent studying
- Retention rates per topic
This app respects your privacy - no data is sent to external services.
- Local-first: All data stays on your device
- No tracking: We don't collect analytics or personal information
- No accounts required: Start learning immediately
- Open source: Full transparency in code and data handling
- ✅ Chrome 90+
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Edge 90+
This project is licensed under the MIT License - see the LICENSE file for details.
- SuperMemo for the SM-2 spaced repetition algorithm
- LeetCode for inspiration and problem references
- Open source community for tools and libraries
- Contributors who help improve this project
- Live Demo: beat-interview.vercel.app
- GitHub: github.com/HarshDutt17/beat-interview/
- Issues: Report bugs or request features
Happy Learning! 🎯
Made with ❤️ for developers who want to ace their coding interviews and system design rounds.