Skip to content

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

1 star

Watchers

1 watching

Forks

Contributors