Skip to content

QuizMaster is a role-based quiz management platform with separate dashboards for admins and users. It supports quiz creation, scheduling, participation, score tracking, and analytics, optimized for performance and scalability.

License

Notifications You must be signed in to change notification settings

Eyuvaraj/QuizMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

QuizMaster

QuizMaster is a full-stack quiz management application built with Flask REST API and Vue 3 frontend, it provides a comprehensive platform for administrators to manage quizzes and for users to take exams with real-time scoring and analytics.

Screenshot 2025-10-13 at 6 18 59β€―PM

Key Highlights:

  • πŸ” JWT Authentication with role-based access control
  • πŸ“Š Real-time quiz analytics and performance tracking
  • ⚑ Background tasks with Celery for email notifications and exports
  • πŸš€ Modern Vue 3 + Bootstrap 5 responsive interface
  • πŸ“± Optimized for medium-sized laptop screens (demo-ready)

Table of Contents


Project Overview

QuizMaster enables:

  • Admin: Full management of subjects, chapters, quizzes, questions, and users.
  • Users: Quiz participation, score tracking, and performance analytics.

All database tables are created programmatically using Flask-SQLAlchemy. Manual DB creation is not allowed.


Wireframe

QuizMaster Wireframe


Tech Stack

  • Backend: Flask (REST API), Flask-SQLAlchemy, Celery, Redis, SQLite
  • Frontend: VueJS (Composition API), Bootstrap 5
  • Other: Jinja2 (entry point only, not for UI), Redis (caching & jobs), Celery (background tasks)

Core Features

Authentication & Authorization

  • JWT or Flask-based token authentication
  • Role-based access control (Admin/User)
  • Single admin (predefined, no registration)
  • User registration and login

Admin Dashboard

  • Manage Subjects, Chapters, Quizzes, Questions (CRUD)
  • View/search users, subjects, quizzes, questions
  • Set quiz schedule (date, duration)
  • View summary charts

User Dashboard

  • Browse and attempt available quizzes (MCQ, single correct)
  • Quiz timer and instant feedback
  • View past attempts and scores
  • Export quiz history as CSV
  • View summary charts

Completed Milestones

  1. Database Schema Design

    • Models: User, Admin, Subject, Chapter, Quiz, Question, Score
    • Relationships: Subjects β†’ Chapters β†’ Quizzes β†’ Questions
  2. Authentication & RBAC

    • Token-based authentication
    • Role-based permissions
  3. Admin Dashboard

    • CRUD for all entities
    • User management and search
  4. User Dashboard & Quiz System

    • List/attempt quizzes
    • Timer and feedback
    • Score storage
  5. Score Management

    • Store and display quiz scores and summaries
  6. Quiz Scheduling

    • Admin sets quiz start date and duration
    • Users can only attempt within schedule
    • Automatic quiz locking after expiry
  7. Backend Jobs

    • Daily reminders (G-Chat/SMS/Email)
    • Monthly performance reports (email)
    • Celery & Redis for background processing
  8. Search Functionality

    • Admin: search users, subjects, quizzes, questions
    • User: search quizzes, subjects
  9. Async CSV Export

    • User: export quiz history
    • Admin: export user performance
    • Handled via Celery background tasks
  10. API Performance & Caching

    • Optimize response times
    • Rate-limiting and Redis caching

Backend Jobs

  • Daily Reminders: Notify users of new quizzes or inactivity (configurable time, via G-Chat/SMS/Email)
  • Monthly Reports: Email HTML reports with quiz stats, scores, rankings
  • Async CSV Export: User/admin-triggered, background job, alert on completion

Performance & Caching

  • Use Redis for API caching and background jobs
  • Implement cache expiry and rate-limiting for endpoints

Project Structure

.
β”œβ”€β”€ Backend
β”œβ”€β”€ Frontend
β”œβ”€β”€ LICENSE
β”œβ”€β”€ Quiz_master wired frame.png
└── README.md

3 directories, 5 files

Backend Directory

Contains the Flask REST API backend with all necessary configurations, models, and routes.

Frontend Directory

Contains the Vue 3 + Bootstrap 5 frontend application with all necessary configurations, components, and styles.


Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • Redis (for background tasks and caching)

Backend Setup

cd Backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python launch_app.py  # or python app.py

Frontend Setup

cd Frontend
npm install
cp .env.sample .env
# Update .env with your backend API URL
npm run dev

Full Setup

For detailed setup instructions, see:


Default Access

  • Admin: Default admin credentials are set during first run
  • API Documentation: Visit http://localhost:5000/docs for Swagger UI
  • Frontend: Visit http://localhost:5173/ (default Vite dev server)

Project Summary


Project Demo

Project.Demo.mp4

About

QuizMaster is a role-based quiz management platform with separate dashboards for admins and users. It supports quiz creation, scheduling, participation, score tracking, and analytics, optimized for performance and scalability.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •