A modern flashcard application built with React and TypeScript, featuring a spaced repetition system to help you effectively learn and memorize words.
- Spaced Repetition System: Uses a modified Leitner system with 6 boxes
- Progress Tracking: Monitor your learning progress with detailed statistics
- Dark/Light Mode: Supports system theme preference
- Import/Export: Easily backup or share your word collections
- Customizable Learning: Set daily new word limits
- Responsive Design: Works on both desktop and mobile devices
Add and manage your vocabulary
Review words using spaced repetition
View your progress within the application
Customize your learning experience
This app uses a modified Leitner system with 6 boxes for efficient learning:
Box | Review Interval | Description |
---|---|---|
1 | Every day | New words or words you had difficulty remembering |
2 | Every 2 days | Words you've remembered once |
3 | Every 4 days | Words you've remembered twice |
4 | Every 7 days | Words you've remembered three times |
5 | Every 14 days | Words you've remembered four times |
6 | Never | Mastered words that don't need further review |
- New words start in Box 1
- If you remember a word correctly, it moves up one box
- If you forget a word, it returns to Box 1
- Words in Box 6 are considered mastered and won't appear in reviews
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/alised/flashcard_react.git
cd flashcard_react
- Install dependencies:
npm install
- Start the development server:
npm run dev
To create a production build locally:
npm run build
This will create a dist
directory with the compiled assets.
To preview the production build:
npm run preview
The application can be deployed to various platforms:
Deploy the contents of the dist
directory to any static hosting service like:
- GitHub Pages
- Netlify
- Vercel
- Firebase Hosting
- Build the application using
npm run build
- Serve the
dist
directory using a web server like Nginx or Apache - Configure your web server to handle client-side routing
- Add new words in the Words section
- Review due words in the Learn section
- Import/Export your collection in the Database section
- Customize your experience in the Settings section
- React
- TypeScript
- Tailwind CSS
- Vite
- IndexedDB (via Dexie.js)
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.