"Repetition is the mother of all learning" - an Athenian Proverb
This application is designed to help lifelong learners master new topics through effective spaced repetition. Users can store flashcards in a database and review them based on how well they know each card. The app uses a timed system to manage review intervals, which range from 5 seconds to 5 months, spread across 10 bins. Correctly answered cards move to the next bin with an increased review interval, while incorrect answers move the card back to the first bin. Cards that are answered incorrectly ten times are moved to a special 'hard to remember' bin for additional review.
To get started with the application, follow these steps:
-
Fork and Clone the Repository
- Fork the repository on GitHub and clone it to your local machine.
-
Install Dependencies
- Navigate to the project directory and run:
npm install
- Navigate to the project directory and run:
-
Configure Environment Variables
- Create a
.env
file in the root directory and add your MongoDB connection string:MONGO_URI=mongodb+srv://...
- Create a
-
Run the Application in Development Mode
- Start the development server with:
npm run dev
- Start the development server with:
-
Build the Project for Production
- To create a production build, run:
npm run build
- To create a production build, run:
-
Access the Application
- Open your browser and visit http://localhost:3000 to use the application.
-
Add Flashcards
- Enter a new card name and definition in the input area and click 'Add Flash Card'.
-
Review Flashcards
- When reviewing a card, click 'I got it' if you answered correctly or 'I didn't get it' if you answered incorrectly.