Skip to content

kaushik-sb/QuizMaster

Repository files navigation

Quiz Master App

A comprehensive full-stack Quiz Master Application that allows administrators to create, manage, and analyze quizzes while providing users with an interactive platform to take quizzes and track their performance. The application was mainly built using Flask and Bootstrap with Jinja2 templating and flask-login authentication combined with Charts JS for quiz performance analysis.

Key Objectives

1. Admin Functionality: 
   - Allow admins to create, edit, and delete subjects, chapters, and quizzes.  
   - Enable question management (MCQ-based) with correct answer validation.  
   - Provide performance analytics (user-wise and subject-wise) using visual charts.  

2. User Functionality:
   - Allow users to register, log in, and attempt available quizzes.  
   - Display quiz results immediately after submission.  
   - Show historical performance through a dashboard with score trends.  

3. Technical Implementation:
   - Develop a Flask-based backend with SQLAlchemy for database management.  
   - Use Bootstrap 5 for responsive frontend design.  
   - Implement Chart.js for performance visualization.  
   - Ensure secure authentication and role-based access control.  

4. Expected Outcomes:
   - A fully functional quiz platform where admins can manage content efficiently.  
   - Users can take quizzes, receive instant feedback, and track progress.  
   - Data-driven insights for both users and administrators.  

Solution Approach :

To address the problem of creating a comprehensive Quiz Master Application, I adopted a structured development approach, focusing on modularity, user experience, and data integrity. The solution was divided into three core components:  

1. Backend Development with Flask & SQLAlchemy:  
   - Designed a relational database schema with models for Users, Subjects, Chapters, Quizzes, Questions, and Attempts to ensure structured data storage.  
   - Implemented role-based authentication (Admin/User) using Flask-Login, with restricted access to admin functionalities like quiz creation/deletion.  
   - Used SQLAlchemy ORM for efficient database operations, ensuring atomic transactions for deletions (e.g., cascading deletes for chapters/quizzes).  

2. Frontend with Bootstrap 5 & Chart.js:  
   - Built responsive UIs for dashboards (Admin/User) using Bootstrap 5, ensuring mobile compatibility.  
   - Integrated Chart.js to visualize performance metrics (e.g., subject-wise scores) dynamically fetched via Flask routes.  
   - Added real-time feedback for quiz attempts, with immediate scoring and historical results.  

3. Problem-Solving & Optimization:  
   - Challenge: Deleted subjects appeared as "Unknown" in user charts.  
     Solution: Modified queries to filter out deleted subjects by cross-referencing active records.  
   - Challenge: Flash messages displayed on login pages.  
     Solution: Ensured redirects pointed to relevant pages (e.g., admin dashboard) and added flash message rendering in base.html.  
   - Challenge: Data integrity during deletions.  
     Solution: Implemented transactional deletes (e.g., deleting a chapter removes its quizzes/questions via `db.session`).  

The result is a scalable, secure, and user-friendly quiz platform that meets the problem statement’s requirements, with clear separation of concerns (MVC architecture) and extensibility for future features like timed quizzes or multimedia questions.

Frameworks And Libraries Used :

Frontend
Jinja2 templating
HTML and CSS for basic styling
Bootstrap for responsive design
Backend
Flask
Javascript
Database
SQLite3
DB Browser (for checks)
Authentication
Flask login
Werkzeug security
Analysis
Charts JS

About

A comprehensive quizzing platform to conduct, host and attend quizzes within a secure environment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors