Back to Projects

LeetRevise

Built a spaced repetition tool that recommends LeetCode problems, helping 35+ users practice efficiently and improve problem-solving skills.

ReactNode.jsTypeScriptMongoDB
LeetRevise

About This Project

LeetRevise: Spaced Repetition for Coding Interviews

Overview

LeetRevise implements the scientifically-proven spaced repetition learning technique to optimize coding interview preparation. The platform analyzes user performance patterns and automatically schedules problem reviews at optimal intervals to maximize retention.

Key Features

đź§  Intelligent Scheduling

  • Adaptive Algorithm: Problems are scheduled based on your performance history
  • Optimal Intervals: Reviews are timed to maximize long-term retention
  • Difficulty Adjustment: The system adapts to your learning pace

📊 Performance Analytics

  • Progress Tracking: Detailed statistics on solving patterns
  • Weak Area Identification: Automatically identifies topics that need more practice
  • Performance Trends: Visual charts showing improvement over time

🎯 Personalized Recommendations

  • Smart Problem Selection: AI-powered recommendations based on your skill gaps
  • Topic-Based Learning: Organized by data structures and algorithms
  • Difficulty Progression: Gradual increase in problem complexity

Technical Implementation

Architecture

Frontend (React + TypeScript)
    ↓
API Layer (Node.js + Express)
    ↓
Database (MongoDB)
    ↓
Spaced Repetition Engine

Core Technologies

  • Frontend: React 18, TypeScript, Tailwind CSS
  • Backend: Node.js, Express.js, JWT Authentication
  • Database: MongoDB with Mongoose ODM
  • Algorithm: Custom spaced repetition implementation based on SM-2

Key Algorithms

Spaced Repetition Formula

The system uses a modified version of the SM-2 algorithm:

nextInterval = previousInterval * easeFactor
easeFactor = Math.max(1.3, easeFactor + (0.1 - (5 - quality) * (0.08 + (5 - quality) * 0.02)))

Where:

  • quality: User’s performance rating (0-5)
  • easeFactor: Difficulty multiplier for the problem
  • previousInterval: Days since last review

User Impact

Statistics

  • 35+ Active Users: Growing community of interview candidates
  • Average Improvement: 40% increase in problem-solving speed
  • Retention Rate: 85% of users continue using after first week
  • Success Stories: Multiple users landed jobs at FAANG companies

User Testimonials

“LeetRevise helped me identify my weak areas and focus my practice. I went from struggling with medium problems to solving them confidently in interviews.” - Software Engineer at Google

Future Enhancements

Planned Features

  • Mobile App: React Native implementation
  • Video Solutions: Integrated explanation videos
  • Peer Learning: Community features and discussions
  • Mock Interviews: AI-powered interview simulation
  • Company-Specific Prep: Tailored problem sets for different companies

Technical Roadmap

  • Microservices Architecture: Break down monolithic backend
  • Real-time Features: WebSocket integration for live features
  • Advanced Analytics: Machine learning for better recommendations
  • Performance Optimization: Implement caching and CDN

Getting Started

For Users

  1. Sign Up: Create your free account
  2. Assessment: Take initial skill assessment
  3. Start Learning: Begin with recommended problems
  4. Track Progress: Monitor your improvement over time

For Developers

# Clone the repository
git clone https://github.com/deep41/leetrevise

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env

# Start development server
npm run dev

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Areas for Contribution

  • Algorithm Improvements: Enhance the spaced repetition algorithm
  • UI/UX: Improve user interface and experience
  • Performance: Optimize database queries and API responses
  • Testing: Add comprehensive test coverage

Built with ❤️ by Deepak to help developers ace their coding interviews.

Technologies Used

React
Node.js
TypeScript
MongoDB

Quick Links