https://github.com/vaibhav-pant/alfredtask-
Flashcard Learning App with Leitner System
https://github.com/vaibhav-pant/alfredtask-
Last synced: 8 months ago
JSON representation
Flashcard Learning App with Leitner System
- Host: GitHub
- URL: https://github.com/vaibhav-pant/alfredtask-
- Owner: Vaibhav-Pant
- License: cc0-1.0
- Created: 2025-02-17T19:45:14.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-02-17T20:06:13.000Z (8 months ago)
- Last Synced: 2025-02-17T21:23:46.699Z (8 months ago)
- Language: JavaScript
- Homepage: https://alfredtaskbackend.vercel.app
- Size: 64.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Leitner Flashcard Learning System
A web application implementing the Leitner System for efficient flashcard-based learning using the MERN stack (MongoDB, Express.js, React, Node.js).
## Features
- 📚 Implementation of the Leitner System with 7 boxes
- ⏰ Spaced repetition with increasing intervals
- 📝 Create and manage flashcards
- 📊 Track learning progress
- 🎯 Focus on cards that need review
- 💻 Clean, responsive UI using Tailwind CSS## Tech Stack
- **Frontend**: React, Tailwind CSS, Axios
- **Backend**: Node.js, Express.js
- **Database**: MongoDB Atlas
- **Deployment**: Vercel## Leitner System Implementation
The application implements the Leitner System, a flashcard-based learning technique that uses spaced repetition:
- Cards start in Box 1 (daily review)
- Correct answers move cards to the next box
- Incorrect answers move cards back to Box 1
- Higher boxes have longer review intervals:
- Box 1: Review daily
- Box 2: Every 3 days
- Box 3: Every 7 days
- Box 4: Every 14 days
- Box 5: Every 30 days
- Box 6: Every 60 days
- Box 7: Every 90 days## Setup Instructions
### Prerequisites
- Node.js (v14 or higher)
- MongoDB Atlas account
- npm or yarn### Backend Setup
1. Navigate to the backend directory:
```bash
cd backend
```2. Install dependencies:
```bash
npm install
```3. Create a `.env` file in the backend directory:
```env
PORT=5000
MONGODB_URI=your_mongodb_atlas_connection_string
```4. Start the backend server:
```bash
npm run dev
```### Frontend Setup
1. Navigate to the frontend directory:
```bash
cd frontend
```2. Install dependencies:
```bash
npm install
```3. Start the frontend development server:
```bash
npm start
```## Project Structure
```
flashcard-app/
├── backend/
│ ├── models/
│ │ └── Flashcard.js
│ ├── routes/
│ │ └── flashcardRoutes.js
│ ├── .env
│ ├── package.json
│ └── server.js
│
└── frontend/
├── src/
│ ├── components/
│ │ ├── Dashboard.js
│ │ ├── FlashcardCreator.js
│ │ ├── ReviewFlashcards.js
│ │ └── AllFlashcards.js
│ ├── services/
│ │ └── api.js
│ ├── App.js
│ └── index.js
└── package.json
```## API Endpoints
- `GET /api/flashcards` - Get all flashcards
- `GET /api/flashcards/due` - Get flashcards due for review
- `POST /api/flashcards` - Create a new flashcard
- `PUT /api/flashcards/:id/answer` - Update flashcard box based on answer
- `DELETE /api/flashcards/:id` - Delete a flashcard## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details