A Flask-based web application for studying with flashcards and taking quizzes across different categories.
- 📇 Interactive flashcards for active learning
- 📝 Multiple-choice quizzes with instant feedback
- 📂 Category-based quiz organization
- 📊 Dynamic performance dashboard with analytics
- 🏆 Best & weak category tracking
- 📈 Overall accuracy calculation
- 🔁 Retry incorrect questions feature
- 🌗 Light/Dark mode toggle
- 🔀 Mixed quizzes from multiple categories
- 💾 LocalStorage-based progress persistence
flashcard_app/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── data/ # Data files
│ ├── flashcards.json
│ ├── questions.json
│ ├── questions.py
│ └── quiz.json
├── static/ # Static assets
│ ├── css/style.css
│ └── js/main.js
└── templates/ # HTML templates
├── base.html
├── index.html
├── about.html
├── categories.html
├── flashcards.html
├── quiz.html
└── dashboard.html
- Python 3.8 or higher
- pip (Python package manager)
Navigate to the project directory and create a virtual environment:
cd /Users/shubhamsharma/flashcard_app
python3 -m venv venvmacOS/Linux:
source venv/bin/activateWindows:
venv\Scripts\activateYou should see (venv) prefix in your terminal, indicating the virtual environment is active.
pip install -r requirements.txtThe requirements.txt contains:
flask>=2.0.0- Web framework
python app.pyThe application will start in debug mode at http://127.0.0.1:5000/
| Route | Method | Description |
|---|---|---|
/ |
GET | Home page with flashcard count |
/flashcards |
GET | View all flashcards |
/categories |
GET | View all quiz categories |
/quiz/<category> |
GET | Take quiz in specific category |
/quiz/mixed |
GET | Take mixed quiz from selected categories |
/dashboard |
GET | View quiz results dashboard |
/about |
GET | About page |
Visit: http://127.0.0.1:5000/quiz/science
Visit: http://127.0.0.1:5000/quiz/mixed?categories=history,geography&count=10
count- Number of questions (default: 5)categories- Comma-separated list of categories (for mixed quiz)
When you're done working on the project:
deactivateTo work on the project again:
cd /Users/shubhamsharma/flashcard_app
source venv/bin/activate
python app.pyIf you need to add new dependencies:
pip install <package-name>
pip freeze > requirements.txt- 🔐 User authentication & login system
- 🗄 Database integration (PostgreSQL / SQLite)
- 📊 Advanced analytics with charts
- 📜 Detailed quiz history timeline
- 🧠 Adaptive difficulty based on performance
- 📱 Improved mobile responsiveness
- ☁️ Deployment (Render / Railway / AWS)
- 🛠 Admin panel for managing questions & flashcards
MIT License