A modern flashcard application using spaced repetition algorithms (SM-2 and SM-15) to optimize learning and retention.
This application helps users learn and retain information efficiently through scientifically-proven spaced repetition techniques. Users can create decks of flashcards, import content from files, use AI to generate cards, and review them at optimal intervals.
- NestJS with TypeScript
- PostgreSQL database with Prisma ORM
- JWT authentication
- Docker for containerization
- OpenRouter API for AI integration
- Next.js with TypeScript (static export)
- React Context for state management
- fetch for API communication
- Tailwind CSS with shadcn for styling
- User registration and login
- JWT-based authentication with refresh tokens
- Password reset functionality
- Protected routes and auth guards
- Create, edit, and delete decks
- Public/private deck settings
- Community deck sharing
- Deck statistics and analytics
- Create flashcards with front/back content
- Bulk operations (create, edit, delete) (when ai is implemented)
- Card ordering and organization
- Card preview functionality
- Upload PDF and text files
- Automatic content extraction
- Convert file content to flashcards
- Support for multiple file formats
- Generate cards from text prompts
- Bulk card generation from files
- OpenRouter API integration
- Usage tracking and cost estimation
- SM-2 Algorithm: Basic spaced repetition
- SM-15 Algorithm: Advanced algorithm with OF Matrix
- Card scheduling based on performance
- Review queue generation
- Progress tracking and statistics
- Keyboard shortcuts for reviews
- Dark mode support
- Mobile responsive design
- Performance analytics dashboard
- Simple algorithm with 6 grade levels
- Easiness factor adjustments
- Interval multiplier based on performance
- Optimum Factor (OF) Matrix
- Memory stability calculations
- A-Factor for difficulty assessment
- Forgetting curves visualization
- Phase 1: Project setup, database configuration, authentication system
- Phase 2: Core backend infrastructure and user management
- Phase 3: Deck and card CRUD operations
- Phase 4: File processing and content extraction
- Phase 5: AI integration for card generation
- Phase 6: Review system with SM-2 algorithm
- Phase 7: Advanced SM-15 algorithm implementation
- Phase 8: Testing, UI polish, and documentation
- Phase 9: Deployment and production setup
- Node.js (v18+)
- PostgreSQL
- Docker & Docker Compose
- OpenRouter API key (for AI features)
# Clone the repository
git clone [repository-url]
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
# Setup environment variables
cp .env.example .env
# Edit .env with your configuration
# Run database migrations
cd backend
npx prisma migrate dev
# Start development servers
# Backend
npm run start:dev
# Frontend (new terminal)
cd frontend
npm run devDATABASE_URL=postgresql://user:password@localhost:5432/study_tool
JWT_SECRET=your_jwt_secret
JWT_REFRESH_SECRET=your_refresh_secret
OPENROUTER_API_KEY=your_api_key
NEXT_PUBLIC_API_URL=http://localhost:3000
This project follows a multi-developer workflow. Please:
- Pick an issue from GitHub Issues
- Create a feature branch
- Follow the existing code patterns
- Submit a PR when complete
Private