Quiz App Development Guide
Quiz App Development Guide
Quiz Master - V1
It is a multi-user app (one requires an administrator and other users) that acts as an exam
preparation site for multiple courses.
Frameworks to be used
These are the mandatory frameworks on which the project has to be built.
Roles
The platform will have two roles:
Admin - root access - It is the superuser of the app and requires no registration
User: The user will register/login and attempt any quiz of his/her interest.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 1/7
Admin: The superuser with full control over other users and data. Registration is not allowed for the
admin: The admin account must pre-exist in the database when the application is initialized.
Subject: The field of study in which the user wishes to give the quiz. The admin will be creating one
or many subjects in the application. Every subject can possibly have the following fields:
id - primary key
Name
Description
etc: Additional fields (if any)
Chapter: Each subject can be subdivided into multiple modules called chapters. The possible fields
of a chapter can be the following:
id - primary key
Name
Description
etc: Additional fields (if any)
Quiz: A quiz is a test that is used to evaluate the user’s understanding of any particular chapter of
any particular subject. A test may contain the following attributes:
id - primary key
chapter_id (foreign key-chapter)
date_of_quiz
time_duration(hh:mm)
remarks (if any)
etc: Additional fields (if any)
Questions: Every quiz will have a set of questions created by the admin. Possible fields for a
question include:
id - primary key
quiz_id (foreign key-quiz)
question_statement
Option1, option2, … etc.
etc: Additional fields (if any)
Scores: Stores the scores and details of a user's quiz attempt. Possible fields for scores include:
id - primary key
quiz_id (foreign key-quiz)
user_id (foreign key-user)
time_stamp_of_attempt
total_scored
etc: Additional fields (if any)
Note: The above fields are not exhaustive. Students can add more fields as per their specific
requirements.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 2/7
Application Wireframe
Quiz Master
Note:
The provided wireframe is intended only to illustrate the application's flow and demonstrate what
should appear when a user navigates between pages.
A login/register form with fields like username, password etc. for user and admin login
You can either use a proper login framework or just use a simple HTML form with username and
password (we are not concerned with how secure the login or the app is)
The app must have a suitable model to store and differentiate all types of users
Admin Dashboard - for the Admin
Edit/delete a quiz
The admin specifies the date and duration(HH: MM) of the quiz
The admin creates/edits/deletes the MCQ (only one option correct) questions inside the specific quiz
Recommended Functionalities
API resources are created to interact with the subjects, chapters and/or quizzes. (Please note: you
can choose which API resources to make from the given ones, It is NOT mandatory to create API
resources for CRUD of all the components)
APIs can either be created by returning JSON from a controller or using a flask extension like
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 3/7
flask_restful
External APIs/libraries for creating charts, e.g. Chart JS
Implementing frontend validation on all the form fields using HTML5 form validation or JavaScript
Implement backend validation within your app's controllers.
Optional Functionalities
Provide styling and aesthetics to your application by creating a beautiful and responsive front end
using simple CSS or Bootstrap
Incorporate a proper login system to prevent unauthorized access to the app using Flask extensions
like flask_login, flask_security etc.
Any additional feature you feel is appropriate for the application
Evaluation
Students have to create and submit a project report (not more than 5 pages) on the portal, along
with the actual project submission
The report must include the following things;
Student details
Project details, including the question statement and how you approached the problem statement
Frameworks and libraries used
ER diagram of your database, including all the tables and their relations
API resource endpoints (if any)
Drive link of the presentation video
All code is to be submitted on the portal in a single zip file (zipping instructions are given in the
project document - Project Doc T12025
Video Presentation Guidelines (Advised):
1. A short Intro (not more than 30 sec)
4. Any Additional feature(s) implemented other than core requirements (30 sec)
Note:
2. Keeping your video feed on during recording (like in a screencast) is optional but recommended.
The video must be uploaded on the student drive with access to anyone with the link and the link
must be included in the report:
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 4/7
This will be viewed during or before the viva, so it should be a clear explanation of your work.
Viva: after the video explanation, you are required to give a demo of your work, and answer any
questions that the examiner asks:
This includes making changes as requested and running the code for a live demo.
Other questions that may be unrelated to the project itself but are relevant to the course.
This is a well-structured project that involves Flask, Jinja2, SQLite, and Bootstrap to build a quiz
management system with admin and user roles. I can help you with:
1. Project Setup - Structuring the project with Flask, Jinja2, Bootstrap, and SQLite.
2. Database Design - Creating the ER diagram and setting up the database models.
3. User Authentication - Implementing admin and user login using Flask-Login.
4. CRUD Operations - Creating, editing, and deleting subjects, chapters, quizzes, and questions.
5. Quiz Functionality - Enabling users to attempt quizzes and store scores.
6. Chart Representation - Using Chart.js for summary charts.
7. Project Report & Video Guidelines - Helping with documentation and structuring the video.
Would you like me to start with the database schema or the Flask project structure? 🚀
I'll create the complete Flask-based Quiz Master project with the following structure:
csharp
quiz_master/
│── app.py # Main application file
│── config.py # Configuration settings
│── models.py # Database models
│── forms.py # Flask-WTF forms for validation
│── static/ # CSS, JS, images
│── templates/ # Jinja2 HTML templates
│ ├── base.html # Common layout
│ ├── index.html # Home page
│ ├── login.html # Login page
│ ├── register.html # Registration page
│ ├── admin_dashboard.html # Admin dashboard
│ ├── user_dashboard.html # User dashboard
│ ├── create_subject.html # Admin creates subjects
│ ├── create_chapter.html # Admin creates chapters
│ ├── create_quiz.html # Admin creates quizzes
│ ├── attempt_quiz.html # User attempts quiz
│ ├── view_scores.html # View quiz scores
│── database.db # SQLite database
│── requirements.txt # Required dependencies
│── README.md # Documentation
Now, I'll generate all the necessary code files for this project. Stay tuned! 🚀
Quiz Master V1
The core Flask-based Quiz Master application is set up with user authentication, database models, and
essential routes. Next, we can add:
The file type is Python (`.py`), specifically a Flask-based web application backend. It includes:
Would you like me to organize it into a proper folder structure with separate files for models, routes,
and templates? 🚀
I've structured the project into separate folders for models, routes, templates, static files, forms, and
database. Let me know if you need further refinements! 🚀
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 6/7
ChatGPT can make mistakes. Check important info.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 7/7