0% found this document useful (0 votes)
6 views

Quiz App Development Guide

iitm bs mad1
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Quiz App Development Guide

iitm bs mad1
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

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.

Flask for application back-end


Jinja2 templating, HTML, CSS and Bootstraps for application front-end
SQLite for database (No other database is permitted)
Note: All demos should be possible on your local machine.

Roles
The platform will have two roles:

Admin - root access - It is the superuser of the app and requires no registration

Admin is also known as the quiz master


There is only one admin to this application
The administrator login redirects to the quiz master/admin dashboard
The administrator will manage all the other users
The administrator will create a new subject
The administrator will add various chapters under a subject
The administrator will add quiz questions under a chapter

User - Can attempt any quiz of its choice


User Registration and Login
Each user may have:
id - primary key
Username (email)
Password
Full Name
Qualification
DOB
To be able to choose the subject as well as the chapter name
Start the quiz
View the quiz scores
Terminologies

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.

Replication of the exact views is NOT mandatory.


Students are encouraged to work on their own front-end ideas and designs while maintaining the
application's intended functionality and flow.
Core Functionalities
Admin login and User login

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

The admin should be added, whenever a new database is created


The admin creates/edits/deletes a subject
The admin creates/edits/deletes a chapter under the subject
The admin will create a new quiz under a chapter
Each quiz contains a set of questions (MCQ - only one option correct)
The admin can search the users/subjects/quizzes
Shows the summary charts

Quiz management - 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

User dashboard - for the User

The user can attempt any quiz of his/her interest


Every quiz has a timer (timer is optional)
Each quiz score is recorded
The earlier quiz attempts are shown
Shows the summary charts
Note: The database must be created programmatically (via table creation or model code). Manual
database creation, such as using DB Browser for SQLite, is NOT allowed.

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

Click here of project report demo

Possible folder structure:

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)

2. How did you approach the problem statement? (30 sec)

3. Highlight key features of the application (90 sec)

4. Any Additional feature(s) implemented other than core requirements (30 sec)

Note:

1. The final video must not exceed 5-10 minutes.

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? 🚀

give me all code file

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:

Admin functionalities (subject, chapter, quiz management)


Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 5/7
Quiz-taking functionality for users
Frontend templates with Jinja2, Bootstrap, and JavaScript

Let me know what you’d like to work on next! 🚀

what file type is tis

The file type is Python (`.py`), specifically a Flask-based web application backend. It includes:

Flask (for web application routing)


SQLAlchemy (for SQLite database management)
WTForms (for form validation)
Flask-Login & Flask-Bcrypt (for authentication and password hashing)

Would you like me to organize it into a proper folder structure with separate files for models, routes,
and templates? 🚀

yes sperate all file and give givetyppe

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

You might also like