QuizMaster is a structured and user-friendly educational assessment app developed using Flask. It allows:
- Full CRUD operations:
- Subjects
- Chapters
- Quizzes
- Questions
- Dynamic dashboard with:
- Quiz statistics
- Modal-based entity creation (without page reloads)
- Secure Registration/Login
- Explore subjects and quizzes
- Attempt quizzes with auto-scoring
- View historical performance and quiz attempts
🌐 The app ensures real-time feedback and performance insights, aiding both teaching and learning.
| Layer | Technologies Used |
|---|---|
| 🖥️ Frontend | HTML5, CSS3, Bootstrap, Jinja2 |
| ⚙️ Backend | Flask, Flask-SQLAlchemy, Werkzeug |
| 💾 Database | SQLite |
| 🛡️ Security | Password Hashing & Role-Based Access |
| 🔐 Session | Flask Sessions for Auth & State |
📦 QuizMaster/
┣ 📜 app.py # Core app file with routes & logic
┣ 📜 requirements.txt # Python dependencies
┣ 📜 README.md # Project documentation
┣ 📂 instance/ # SQLite database
┣ 📂 templates/
┃ ┣ 📂 admin/ # Admin interface templates
┃ ┗ 📂 user/ # User interface templates
┣ 📂 static/ # CSS, images
- User
id,username,password,is_admin,scores[]
- Subject
id,name,description,chapters[]
- Chapter
id,name,subject_id,quizzes[]
- Quiz
id,title,date_of_quiz,time_duration,chapter_id,questions[],scores[]
- Question
id,question_statement,option1-4,correct_option,quiz_id
- Score
id,user_id,quiz_id,score,total_questions,timestamp
Relationships use SQLAlchemy backrefs with cascade deletes for integrity.
Admin:
Create Subject → Add Chapter → Add Quiz → Add Questions
User:
Browse → Attempt Quiz → View Results & Past Scores
- Python 3.8+
- pip
- git clone https://github.com/yourusername/quiz-master.git
- cd quiz-master
- python -m venv venv
- source venv/bin/activate
- Windows: venv\Scripts\activate
- pip install -r requirements.txt
- python app.py
First run will automatically create an admin user with:
- Username: admin
- Password: 0000
- Password hashing: bcrypt via werkzeug.security
- Session protection with Flask’s session object
Role-based access control (admin/user)
Structure sql
📁 templates/ ├─ admin/ ├─ user/ 📁 static/
- app.py
- README.md
- requirements.txt
- python app.py
- Default runs at http://127.0.0.1:5000
Made with ❤️ using Flask (Python).