Project Report
Project Report
Despite the proliferation of online learning tools, a significant gap persists in the
a vailability of holistic and adaptable quiz platforms. Existing solutions frequently exhibit
several shortcomings that hinder effective assessment and learning:
1
1.3 Project Objectives
The primary objectives established for the development of Quizzify are as follows:
2
CHAPTER 2: LITERATURE REVIEW
2.1 Introduction
Traditional assessment methods, primarily paper-and-pencil tests, have long been the
c ornerstone of educational evaluation. These methods typically include multiple-choice
questions, essays, fill-in-the-blanks, true/false, and short answer questions. While they offer a
standardized approach and are relatively easy to administer in a physical classroom setting,
they come with significant drawbacks in the digital age. Manual grading is time-consuming
and prone to human error, especially for large cohorts. Feedback to students is often delayed,
hindering immediate learning correction. Furthermore, paper-based assessments offer limited
data for in-depth analysis of learning patterns or curriculum effectiveness. The logistical
challenges of distribution, collection, and secure storage also add to the administrative
burden. Despite their familiarity, their inherent inefficiencies and lack of scalability in a
burgeoning online learning environment highlight the need for more dynamic and
technologically advanced alternatives.
-learning has evolved significantly since its inception, transforming from simple
E
online repositories of static content to sophisticated interactive learning environments. Early
e-learning platforms were primarily content-delivery systems, offering digital textbooks and
lecture notes. The advent of Learning Management Systems (LMS) such as Moodle,
Blackboard, and Canvas marked a significant leap, introducing features like discussion
forums, assignment submission, gradebooks, and basic quizzing tools. These platforms
centralized learning resources and facilitated asynchronous communication. The subsequent
evolution has seen the rise of Massive Open Online Courses (MOOCs) like Coursera and
edX, making high-quality education accessible globally. Modern e-learning emphasizes
personalized learning paths, gamification, peer-to-peer interaction, and robust analytics. This
continuous evolution underscores the need for assessment tools that can keep pace with
pedagogical innovations, offering dynamic, scalable, and data-rich methods of evaluating
learning outcomes. The shift towards microlearning and just-in-time learning also demands
assessment methods that are integrated, immediate, and adaptive.
3
2.4 Technological Landscape: The MERN Stack
● ongoDB:A NoSQL database.
M
● Express.js:A web application framework for Node.js.
● React.js:A frontend JavaScript library for buildinguser interfaces.
● Node.js:A JavaScript runtime environment.
4
CHAPTER 3:
his chapter details the architectural design and the technical implementation of
T
Quizzify. It provides a comprehensive overviewofthesystem'smodularstructure,detailing
the interactions between its various components. The design decisions were driven by the
project objectives to create a scalable, secure, and user-friendly web application. We will
explore theclient-sideandserver-sidearchitectures,thedatabaseschema,anddelveintothe
implementationspecificsofeachcoremodule,highlightingthetechnologiesanddevelopment
methodologies employed to bring Quizzify to fruition. This chapter serves as the technical
blueprint, demonstrating how the theoretical concepts from the literature review were
translated into a functional software system.
3.2System Architecture
uizzifyemploysaclient-serverarchitecture,astandardmodelforwebapplications,
Q
wherethefrontend(client)communicateswiththebackend(server)toretrieveandsenddata.
Specifically,itadherestoaRESTfulAPIdesign,enablingstatelesscommunicationandclear
separation of concerns between the presentation layer and the business logic.
5
he architectural layers are designed to be independent and loosely coupled, facilitating
T
easier maintenance, scaling, and potential future integrations or technology swaps.
hefrontendofQuizzifyisaSingle-PageApplication(SPA)builtwithReact.js.This
T
architectureprovidesafluidanddynamicuserexperiencebyloadingmostoftheapplication's
resourcesontheinitialpageloadandsubsequentlyupdatingcontentdynamicallywithoutfull
page reloads.
● Component-Based Structure: The UI is broken down into reusable and modular
c omponents (e.g., Header, Footer, QuizCard, Question,AuthForm,Dashboard).This
approach enhances maintainability, promotes code reusability, and simplifies
debugging.
● State Management: React's built-in useState and useEffect hooks are extensively
usedformanaginglocalcomponentstateandsideeffects.Forglobalapplicationstate
(like user authentication status or current quiz data), the Context API is utilized to
avoid prop drilling and ensure data is accessible across deeply nested components.
● ·R outing:ReactRouterDOMisusedtomanagenavigationwithintheSPA,enabling
distinct URLs for different views (e.g.,/login,/dashboard,/quiz/:id)andprovidinga
seamless Browse experience.
● Styling: Tailwind CSS, a utility-first CSS framework, is employed for styling. Its
atomicCSSclassesallowforrapidUIdevelopmentandhighlycustomizabledesigns,
ensuring responsiveness across various screen sizes.
● API Communication: The frontend communicates with the backend via Axios, a
promise-based HTTP client, to make asynchronous requests (GET, POST, PUT,
DELETE) to the RESTful APIs.
6
3.2.2Server-Side Architecture (Backend)
he backend of Quizzify is developed using Node.js and the Express.jsframework.
T
Thislayerisresponsibleforhandlingallclientrequests,executingbusinesslogic,interacting
with the database, and serving data back to the frontend.
ESTfulAPIEndpoints:Express.jsdefinesaseriesofwell-structuredAPIendpoints(e.g.,
R
/api/auth/register, /api/quizzes, /api/quizzes/:id/submit) that the frontend consumes. Each
endpoint corresponds to specific CRUD operations.
oAuthentication Middleware: Verifies JWT tokens and attaches user information to
the request object.
oAuthorizationMiddleware:Checksuserrolestoensureonlyauthorizedusersaccess
specific routes (e.g., only teacher’s can create quizzes).
OError
andling Middleware: Catches and processes errors, sending appropriate
H
TTP responses.
H
oBody
Parser: Parses incoming request bodies (e.g.,JSON payloads).
ontrollers:Thesemodulescontainthecorebusinesslogicforhandlingrequests,validating
C
data, interacting with service layers or directly with the database, and preparing responses.
Routers:Expressroutersdefinethespecificroutesandmapthemtocorrespondingcontroller
f unctions.
7
3.2.3Database Design
ongoDB, a NoSQL document database, was chosen for its flexibility, scalability,
M
and seamless integration with the JavaScript-centric MERN stack. Data is stored in
collections,witheachdocumentwithinacollectionrepresentingarecord,typicallyinBSON
(Binary JSON) format.
Table 3.1
urationPerQuest Number
d No 10 Duration in seconds
ion
Table 3.2
8
● Leaderboard Collection:
Table 3.3
Table 3.4
3.3Module Breakdown
uizzify's functionality is organized into several distinct, interacting modules, each
Q
responsible for a specific set of features. This modular design promotes maintainability,
reusability, and easier debugging.
● R egistration:Usersprovideausername,email,andpassword.Thebackendreceives
thisdata,hashesthepasswordusingbcrypt.js(astronghashinglibrary),andstoresthe
hashed password along with other user details in the Users collection. Unique
constraints are enforced for username and email.
● Login: Users submit their username/email and password. The backendretrievesthe
stored hashed password for the given username/email and compares it with the
submitted password using bcrypt.compare().
● JWT Generation: Upon successful login, a JSON Web Token (JWT) is generated.
This token contains a payload (e.g., user ID, role) and is signed with a secret key.
9
● T oken Handling: The JWT is sent back to the client, typically stored in an
HTTP-onlycookieorlocalStorageforsubsequentauthenticatedrequests.HTTP-only
cookies offer better protection against Cross-Site Scripting (XSS) attacks.
This module empowers teachers to fully control the quiz content on the platform.
3.3.2.1Creating Quizzes
● U serInterface:Adedicatedteacherdashboardprovidesanintuitiveformforcreating
newquizzes.Teachersinputthequiztitle,abriefdescription,andsetatimelimit(in
minutes).
● Backend Processing: An API endpoint (POST /api/quizzes) receives this data.The
backend validates the input and creates a new document in the Quizzes collection,
linking it to the createdBy teachers’s ID.
oCreate:
Add new questions to an existing quiz.
oRead:
View all questions within a quiz.
10
oUpdate:
Edit existing question text or options.
oDelete:
Remove questions from a quiz.
alidation:Server-sidevalidationensuresthatquestionshavesufficientoptionsanda
V
designated correct answer.
11
Figure 3.6 (Quiz Attempt Interface)
● S ubmission: Users can submit the quiz at any point or it will automaticallysubmit
when the timer runs out. All selected answers are sent to the backend.
● Backend Grading: The backend receives the submitted answers, compares them
against the correct answers stored in the database for each question, calculates the
score, and records the attempt in the Attempts collection.
● Instant Feedback: The calculated score and feedback (e.g., number of correct
answers,alistofcorrect/incorrectanswersperquestion)areimmediatelysentbackto
the frontend and displayed to the user. This provides immediate reinforcement for
learning.
● A ggregate Quiz Scores: Teachers can view the average score for each quiz, the
distribution of scores, and the number of attempts.
● Question Analysis: For each quiz, teachers can see which questions were most
frequently answered incorrectly, helping them identify confusingquestionsortopics
that require more detailed instruction.
● Dashboard Visualization: Basic visualizations (e.g., bar charts for average scores,
piechartsforcorrect/incorrectdistribution)arerenderedontheteachersdashboardto
make data more digestible.
12
Figure 3.7 (Dashboard with Basic Analytics)
heselectionoftechnologiesforQuizzifywasmeticulouslyalignedwiththeMERN
T
stack's capabilities, ensuring a cohesive and efficient development environment.
eact.js: Used for building the interactive and dynamic user interface. React's
R
component-based architecture and virtual DOM ensure high performance and a modular
codebase. Key libraries and concepts used include React Hooks (useState, useEffect,
useContext), React Router DOM for routing, and Axios for API calls.
ailwind CSS: A utility-first CSS framework that enabled rapid development of
T
responsive and visually appealing designs. Its flexible class system allowed for highly
customizable styling without writing traditional CSS.
● N ode.js:TheJavaScriptruntimeenvironmentprovidingtheserver-sideinfrastructure.
Its event-driven, non-blocking I/O model makes it highly efficient for handling
concurrent requests.
● Express.js:Thefast,unopinionated,minimalistwebframeworkforNode.js,usedfor
building the RESTful APIs. It manages routing, middleware, and request/response
handling.
● Mongoose: An Object Data Modeling (ODM) libraryforMongoDBthatprovidesa
straightforward, schema-based solution to model application data. It simplifies
interactions with the MongoDB database.
13
3.4.3 Database (MongoDB)
● G it&GitHub:Usedforversioncontrol,collaborativedevelopment,andsourcecode
management.
● Postman:For testing API endpoints during backenddevelopment.
● VS Code:The primary Integrated Development Environment(IDE) used for coding.
● Vercel/Netlify: (For frontend deployment) and Heroku/Render: (For backend
deployment) for continuous deployment and hosting.
hischapterhasprovidedacomprehensiveoverviewofQuizzify'ssystemdesignand
T
its implementation details. From the high-level client-server architecture to the specific
technologies and modular breakdown, every aspect was meticulously planned to meet the
project'sobjectivesofscalability,security,anduser-friendliness.TheadoptionoftheMERN
stack and an Agile development methodology proved instrumental in buildingarobustand
efficient web application. The described modules—user authentication, quiz management,
quiz attempt interface, and analytics—form the backbone of Quizzify, demonstrating a
cohesive and functional system. The next chapter will delve into the rigorous testing
procedures undertaken to validate this implementation and assess its performance.
14
Figure 3.8 (Flowchart)
15
HAPTER 4
C
ESTING AND PERFORMANCE ANALYSIS
T
4.1 Introduction
● P
urpose:To test the interaction between differentmodules or services to ensure they
work together seamlessly.
16
● S
cope:Focused on API endpoints where the frontend communicates with the
backend, or where the backend interacts with the MongoDB database. For instance,
testing the full flow of user registration, logging in, and then accessing a protected
route.
● T
ools:Supertestwas used in conjunction with Jestto send HTTP requests to
Express.js routes and assert responses. For frontend-to-backend integration, manual
testing was performed, observing the flow of data and UI updates.
● M
ethodology:Test scenarios involve sequences of actionsthat span multiple
components or services. For example, testing the 'create quiz' functionality would
involve sending a request from the frontend to the backend API, and then verifying
that the quiz is correctly stored in the MongoDB database.
P
● urpose:To evaluate the complete, integrated systemagainst specified requirements.
● Scope:Covered the entire application, simulatingreal-world usage scenarios from
end-to-end. This included testing user registration, admin quiz creation, quiz attempts,
and viewing analytics.
● Tools:Primarily manual testing was conducted, mimickingactual user journeys.
Browser developer tools were used to monitor network requests and console errors.
● Methodology:Comprehensive test plans were executed,covering all major
functionalities. This involved creating test users (admin and regular user), performing
various operations, and verifying the expected system behavior and output, including
error handling.
selection of critical test cases is presented below, illustrating the testing process
A
and key outcomes.
ser
U
ser registration
U
ew user account created,
N created,
UTH-001 with valid
A Pass Pass
success message password
credentials
hashed.
orrect
C
ser registration Error message: Email
U
UTH-002
A Pass Pass error
with existing email already exists
handling.
17
oken
T
ser authenticated, JWT
U
ser login with
U valid,
AUTH-003 token returned, redirected toPass Pass
valid credentials correct
dashboard
redirect.
orrect
C
ser login with
U rror message: Invalid
E
UTH-004
A Pass Pass error
invalid password credentials
handling.
iddlewar
M
ccessing
A
rror message:
E e correctly
UTH-005 protected route
A Pass Pass
Unauthorized, 401 status blocks
without token
access.
BAC
R
ccessing admin
A
rror message: Forbidden,
E correctly
UTH-006 route as regular
A Pass Pass
403 status restricts
user
access.
Table 4.1
Table 4.2
18
4.4 Usability Testing
Usability testing focused on how easy and efficient Quizzify was for its intended users.
● M
ethodology:A small group of peers (simulating studentsand teachers) were given
tasks and then interviewed for feedback.
o P
ositive:Users found the interface clean and intuitive,especially the quiz
attempt screen. The real-time timer and instant feedback were highly
appreciated.
o A
reas for Improvement:Some users desired clearerinstructions for admin
quiz creation (e.g., how to correctly format options for MCQs). The analytics
dashboard, while functional, was deemed basic and could benefit from more
detailed visualizations.
19
CHAPTER 5: CONCLUSION AND FUTURE SCOPE
5.1 Introduction
his final chapter serves as the culmination of the entire project report, synthesizing the
T
problem identification (Chapter 1), the foundational literature review (Chapter 2), the detailed
system design and implementation (Chapter 3), and the comprehensive testing and evaluation
(Chapter 4). It is a critical self-assessment, allowing for a candid discussion of the project's
achievements, the challenges overcome, and the invaluable lessons learned throughout the
development of Quizzify. Beyond retrospection, this chapter also lays out a strategic roadmap
for Quizzify's evolution. It casts a forward-looking vision, outlining potential improvements
and future enhancements that will ensure Quizzify's continued relevance and expanded
impact within the dynamic and ever-evolving landscape of digital education. This chapter
transitions from whatwasbuilt to whatcan bebuilt,providing insight into its academic,
technical, and practical significance.
20
c ohesive, efficient, and user-centric online assessment tool, distinguishing itself by its
thoughtful architecture and robust implementation.
● I ntegration of Gemini API for Dynamic Quiz and Feedback Generation:To
enhance the platform’s intelligence, we integrated the Gemini API to auto-generate
quizzes and provide personalized feedback. This implementation involved crafting
secure prompts, processing responses, and formatting the content into structured quiz
questions. It significantly elevated the system's adaptability and enriched the learning
experience with dynamically generated, contextually appropriate quizzes and
feedback summaries, aligning with modern AI-assisted education trends.
● L
ive Quiz Functionality with Real-time Leaderboard:A standout feature of
Quizzify is the live quiz mode, where teacher-generated quizzes are broadcasted in
real-time to students. This was implemented using Firebase Realtime Database
(RTDB), which provided a scalable and low-latency solution for synchronizing quiz
questions, answers, and leaderboard data across all connected clients. Firebase RTDB
allowed us to set up real-time listeners on both the teacher and student interfaces,
ensuring instant propagation of quiz state updates — such as new questions, answer
submissions, and live leaderboard rankings.
21
5.4 Limitations
hile the current version of Quizzify successfully fulfills its intended core objectives
W
and provides a robust foundation, several limitations were identified during its development
and testing phases. Acknowledging these limitations is crucial for guiding future development
and understanding the current scope of the platform.
● Only Multiple-Choice Questions are Supported:Thecurrent iteration of Quizzify is
restricted to supporting only multiple-choice questions (MCQs) with a single correct
answer. This significantly limits the types of assessments that can be conducted on the
platform, thereby curtailing its utility for subjects or evaluation methods that require
open-ended responses, complex problem-solving, critical thinking (e.g., essay
questions, coding challenges, diagram-based questions), or diverse interactive
elements. Implementing more varied question types would necessitate substantial
changes to the database schema, the development of specialized frontend input
components, and complex backend grading logic. Automated grading for subjective
questions, in particular, would demand advanced Natural Language Processing (NLP)
or Artificial Intelligence (AI) capabilities, which were beyond the scope of this
mini-project.
● L acks Adaptive Quizzes Based on Difficulty Level:The platform currently serves
questions in a fixed sequential order or a random order, without the ability to
dynamically adjust the difficulty level of questions based on a user's previous answers.
This absence of an adaptive testing mechanism prevents the creation of truly
personalized learning paths and hinders the efficient assessment of a learner's mastery
levels. Implementing adaptive testing would require a sophisticated backend
algorithm capable of tracking user performance per question, categorizing questions
by predefined difficulty levels, and dynamically selecting the next question. This often
involves advanced psychometric frameworks, such as Item Response Theory (IRT)
models, which are mathematically complex and demand extensive data for calibration.
● L
imited Role Types (Teacher and Student):The currenttwo-role system (admin
and user) is sufficient for basic operational needs but lacks the granularity required for
more complex institutional hierarchies. In larger educational settings, there is a need
for roles such as super-admin, course instructor, teaching assistant, proctor, or
dedicated content creator. This limitation can lead to either granting too much access
to certain roles or insufficient access for others, impacting operational efficiency and
security. Expanding role types would necessitate a more intricate Role-Based Access
Control (RBAC) system with fine-grained permissions, a more complex database
schema for managing roles and their associated permissions, and extensive updates to
middleware and frontend logic to correctly manage these granular access levels.
22
f uture iterations. These proposed enhancements aim to significantly expand the platform's
utility, engagement, and reach within the e-learning ecosystem.
23
earning Management Systems (LMS) quiz modules. They can tailor it to
L
their branding, integrate it with existing systems, and even contribute back
improvements.
Government Education Initiatives Promoting Digital Literacy:
o
Government bodies focused on enhancing digital literacy and providing
accessible education can leverage Quizzify as a foundational platform for
nationwide assessment programs or online learning initiatives. Its scalability
and open nature make it ideal for broad public sector deployment.
o NGOs and Training Centers in Underserved Areas:Non-governmental
organizations and vocational training centers operating in resource-constrained
or underserved areas can utilize Quizzify to provide free or low-cost,
high-quality assessment tools. This empowers them to deliver impactful
training programs and skill development initiatives, democratizing access to
formal evaluation.
o Developers and Researchers Interested in Ed-Tech Innovation:The
open-source codebase serves as a valuable resource and sandbox for other
developers, academic researchers, and startups in the educational technology
(ed-tech) space. They can use Quizzify as a base for building new
functionalities, conducting research on online learning methodologies, or
simply as a practical learning example of a full-stack web application.
Strengths:
● Real-time scoring:The system provides instant feedbackand scoring upon quiz
submission, significantly enriching the user experience. This immediate response
mechanism supports self-paced learning and reinforces understanding, making the
platform more engaging and educationally effective.
● Responsive design:The meticulous application of responsivedesign principles using
Tailwind CSS ensures that Quizzify offers a consistent and optimal user experience
across a wide range of devices, from desktop computers to tablets and mobile phones.
This broad accessibility is crucial in today's multi-device educational environment.
● Secure login/auth:User authentication is handledvia Firebase Authentication, which
issues secure, JWT-based tokens and manages credential storage using robust hashing
protocols. This ensures strong data protection, prevents unauthorized access, and
maintains the integrity of user sessions without manual token management.
● AI-generated quiz creation: Quizzify leverages AI to assist users in generating
quizzes based on specified topics or text inputs. This feature helps the student to test
their skills in a particular topic.
24
Weaknesses:
● Limited question types:Quizzify currently supports only multiple-choice questions.
This constraint limits the types of knowledge and skills that can be assessed, making it
less suitable for subjects requiring subjective answers, complex problem-solving, or
interactive elements.
● No built-in mobile app:While the web applicationis responsive, the absence of a
dedicated native mobile application (Android/iOS) means it cannot fully leverage
device-specific features like push notifications, offline capabilities, or advanced
biometric authentication, potentially limiting reach and user experience.
● No live proctoring:The platform lacks advanced proctoringfeatures (e.g., webcam
monitoring, screen recording, AI-based anomaly detection) necessary for high-stakes,
formal examinations where strict academic integrity must be enforced to prevent
cheating.
● Limited analytics depth:While basic performance trackingis available, the current
analytics dashboard provides limited deep insights into granular learning patterns,
common misconceptions, or predictive student performance, which are increasingly
sought after by educators for data-driven pedagogy.
● Manual question entry:The lack of robust import/exportfeatures (e.g., via CSV or
Excel) for questions means administrators must manually input each question, which
can be a time-consuming and inefficient process for managing large question banks.
Opportunities:
● Mobile-first expansion:Developing a dedicated ReactNative application would
allow Quizzify to tap into the vast mobile user base, enable crucial features like
offline access, push notifications, and deeper device integration, thereby significantly
expanding its reach and enhancing user engagement.
● LMS and API integration:Implementing LTI and RESTfulAPI integrations with
popular Learning Management Systems (e.g., Moodle, Canvas, Google Classroom)
would seamlessly embed Quizzify into existing educational ecosystems, enabling
single sign-on, automated gradebook synchronization, and broader adoption.
● Gamification features:Integrating elements like real-timeleaderboards, achievement
badges, and a points system can significantly enhance user motivation and
engagement, transforming the assessment process into a more interactive and
rewarding experience.
● Adaptive testing:Developing intelligent algorithmsthat adjust question difficulty
based on individual learner performance would provide highly personalized learning
paths, optimize assessment efficiency, and improve learning outcomes by focusing on
specific knowledge gaps.
● Multimedia support:Adding the capability to include images, audio, and video
within questions would greatly enrich the content, making quizzes more engaging and
applicable to a wider range of subjects and learning styles.
25
Threats:
● Competition from paid tools:The market for online quiz and assessment platforms
is competitive, with established commercial players (e.g., Kahoot!, Quizizz, enterprise
LMSs) having larger marketing budgets, extensive feature sets, and dedicated support
teams, posing a significant competitive challenge for user acquisition.
● Browser security challenges:The constantly evolvinglandscape of web browser
security policies (e.g., stricter cookie handling, enhanced ad/tracker blocking, new
security APIs) could necessitate continuous adaptation and updates to Quizzify's
codebase to ensure full functionality and compliance.
● Bandwidth/connectivity issues:As a web-based platform,Quizzify's performance is
reliant on internet connectivity. Users in regions with poor bandwidth or unreliable
internet access might experience usability challenges, limiting the platform's
accessibility and reach in certain areas.
● Data privacy regulations:The increasing global emphasison data privacy and the
introduction of new regulations (e.g., GDPR, CCPA, local data protection laws)
necessitate continuous vigilance and potential adjustments to Quizzify's data
collection, storage, and processing practices to ensure legal compliance and maintain
user trust.
● Sustaining open-source contributions:While an open-sourcemodel offers many
benefits, sustaining an active and engaged developer community for continuous
contributions (bug fixes, feature development) can be challenging without dedicated
resources, funding, or strong community leadership.
5.8 Conclusion
he successful development and deployment of Quizzify marks a significant
T
achievement in applying modern software engineering skills to solve a real-world educational
problem. The platform, built upon the robust MERN stack, demonstrates how technology can
profoundly enhance learning and assessment through automation, interactivity, and insightful
data analytics. By meticulously addressing the limitations of existing solutions and
prioritizing a responsive, secure, and intuitive user experience, Quizzify contributes
meaningfully to the evolving domain of digital education.
Quizzify, in its current form, serves as a solid foundation for future research, extensive feature
enhancement, and active community collaboration. It exemplifies the potential for
open-source solutions to democratize access to quality educational tools. With further
strategic investment in development, especially in areas like adaptive testing, multimedia
integration, and robust LMS interoperability, the application has the inherent potential to
scale globally, support millions of learners, and play a truly meaningful role in transforming
online assessment practices worldwide.
The journey of developing Quizzify reflects not only the technical competence and
problem-solving abilities of the project team but also a deep commitment to building ethical,
inclusive, and impactful educational tools that can positively contribute to the future of
learning. It is a testament to the power of technology when applied thoughtfully to address
critical needs in society.
26
REFERENCES
3. F
irebase. 2024.Firebase authentication documentation.
https://firebase.google.com/docs/auth
5. M
eta Platforms, Inc. 2024.React – A JavaScript libraryfor building user interfaces.
https://reactjs.org
7. N
PM. 2024.bcrypt - A library to help you hash passwords.
https://www.npmjs.com/package/bcrypt
27
Appendix – A Program Code
his appendix contains select code snippets that are crucial to the functionality of
T
Quizzify. Due to the extensive nature of a full-stack application's codebase, only key sections
demonstrating core logic or complex implementations are included here. The complete source
code forQuizzify, including frontend and backendcomponents, can be accessed at the
following GitHub repository:
https://github.com/sahil2431/Quizzify
onst
c ai
=
new
GoogleGenAI({
apiKey:
process.
env
.
GEMINI_API_KEY
});
function
cleanJsonString(
raw
) {
return
raw
.
replace
(
/
^
̀``json\s
*
/
,
''
)
// Remove opening̀``json
.
replace
(
/```
$
/
,
''
)
// Remove closing̀``
.
trim
();
}
export
const
generateFeedback=
async
(
questions
,
answers
)
=>
{
let
prompt
=̀You are a teacher. Please providefeedback on the following
answers to the questions asked. The feedback should be in the form of a list of
suggestions for improvement, and should be no more than 500 words long. The
feedback should contain what the student did well, what they could improve on, and
any other relevant information. Remember it is an MCQ quiz hence one word answer
is correct(as it was in the option).
\n\n
̀
;
questions
.
m
ap((
question
,
index
)
=>
{
prompt
+=̀
${
index
+
1}
:
${
question
.
questionText
}\n
̀
;
prompt
+=̀Student's answer:${
answers
[
index
]
}\n
̀
;
prompt
+=̀Correct answer:${
question
.
c
orrectAnswer}\n\n
̀
;
});
const
response=
await
ai.
models
.
generateContent
({
model:
'gemini-2.0-flash-lite' ,
contents:
[
{
role:
'user',
parts:
[{
text:
prompt}]
}
],
config:
{
temperature:
0.1
,
}
});
onst
c reply
=
response
.
candidates
[
0
]
.
content
.
parts
[
0
].
text
;
return
reply
;
};
28
xport
e const
generateQuestions=
async
(
topic
,
numberOfQuestions
=
5
,
difficulty
=
'medium'
)
=>
{
let
prompt
=̀You are a quiz question generator.
Generate
${
numberOfQuestions
}
multiple-choice quiz questions about
${
topic
}
. Each
question should have four
options: three incorrect options and one correct option. Please clearly indicate
the correct answer for each question.
\n\n
The difficulty
level of the questions
should be
${
difficulty
}
.
\n\n
The output should be in
a JSON format with the
following structure:
[
{
"questionText": "Question goes here?",
"options": [
{
_id : option number,
text : option text,
isCorrect : true/false
}
],
"explanation": "Brief explanation of the correct answer"
}
].Return only raw JSON, do not wrap it in markdown or triple backticks.`
;
try
{
const
response
=
await
ai
.
models
.
g
enerateContent
({
model:
'gemini-2.0-flash-lite'
,
contents:
[
{
role:
'user'
,
parts:
[{
text:
prompt
}]
}
],
config:
{
temperature:
0.5
,
}
});
onst
c reply
=
response
.
c
andidates
[
0
].
content
.
parts
[
0
]
.
text
;
try
{
// Attempt to parse the JSON response
const
questions
=
JSON
.
parse
(
cleanJsonString
(
r
eply
));
console
.
log
(
"Parsed JSON response:"
,
questions
);
return
questions
;
}
catch
(
error
) {
console
.
error
(
"Error parsing JSON response:"
,
error
);
// Handle the error or return a default value/message
return
{
error:
"Failed to parse generated questions."
};
}
}
catch
(
error
) {
console
.
e
rror
(
"Error generating questions:"
,
error
);
return
{
error:
"Failed to generate questions."
};
}
};
29
ppendix A.2: Fetching Leaderboard Data (Firebase Realtime Database,
A
Frontend Example)
const
fetchLeaderboard
=
async
()
=>
{
const
leaderboardRef
=
ref
(
database
,̀quizzes/
${
quizId
}
/leaderboard`
);
const
leaderboardSnapshot
=
await
get
(
leaderboardRef
);
const
leaderboardData
=
leaderboardSnapshot.
val
()
||{};
console
.
log
(
leaderboardData
);
if
(
leaderboardData
) {
const
players
=
Object
.
entries
(
leaderboardData
)
.
filter
(([
key
])
=>
key
!==
"showLeaderboard")
// Filter out the control
flag
.
map
(([
userId
,
data
])
=>
({
userId
,
...
data
,
}));
const
sorted
=
players
.
sort
((
a
,
b
)
=>b
.
points
-
a
.
points
);
// Find current user's rank
const
rankIndex
=
sorted
.
findIndex
(
(
player
)
=>
player
.
userId
===
currentUser.
uid
);
setCurrentUserRank
(
r
ankIndex
+
1
);
// +1 toconvert index to rank
setSortedPlayers
(
sorted
);
console
.
log
(
sortedPlayers
)
}
;
}
const
authMiddleware
=
async
(
req
,
res
,
next
)
=>
{
try
{
const
authHeader
=
req
.
h
eaders
.
authorization
;
if
(
!
authHeader
||
!
authHeader
.
startsWith
(
'
Bearer
'
)) {
return
res
.
s
tatus
(
401
).
json
({
message:
'Unauthorized:
No token provided'
});
}
const
token
=
authHeader
.
split
(
' '
)[
1
];
if
(
!
decodedToken
) {
return
res
.
s
tatus
(
401
).
json
({
message:
'Unauthorized:
Invalid token'
});
}
eq
r .
user
=
decodedToken
;
const
userExists
=
await
User
.
findOne
({
uid:
decodedToken
.
u
id
});
req
.
dbUser
=
userExists
||
null
;
ext
n ();
}
catch
(
error
) {
30
onsole
c .
e
rror
(
'Authentication error:'
,
error
);
return
res
.
status
(
4
01
).
json
({
message:
'Unauthorized:
Invalid token'
,
error:
error
.
message
});
}
};
31
Appendix – B Datasheets for Design Project
his appendix contains relevant datasheetsor technical specifications for the key
T
components and libraries utilized in the development of Quizzify. These documents provide
detailed information on the functionalities, capabilities, and constraints of the technologies
chosen, supporting the design decisions outlined in Chapter 3.
32
Appendix B.3 MERN Stack Component Overview
Component Description
MongoDB oSQL database used to store quizzes, users, and leaderboard data.
N
Flexible document structure in JSON format.
Express.js ackend web application framework for handling API routes and
B
middleware logic.
33
CURRICULUM VITAE
Mohammad Sahil
mail :mohammadsahil4343@gmail.com
E Phone : +91 9580107673
LinkedIn :https://www.linkedin.com/in/mohammad-sahil-b74b2225a
Github :https://www.github.com/sahil2431
Educational Qualifications:
Technical Skills:
● Languages:JavaScript, C++
● eb Technologies:HTML, CSS, React.js, Node.js, Express.js
W
● Database:MongoDB, Firebase Realtime DB
● Tools & Platforms:Git, VS Code, Postman , Firebase
Projects:
Quizzify – AI-based Quiz Platform
● Role:Backend & AI Integration Developer
● Technologies Used:MERN Stack, Firebase Authentication,Google Gemini
API, JWT, MongoDB
● My responsibilities included implementing backend APIs using Express.js,
designing and integrating MongoDB schemas, and handling secure JWT-based
authentication. I also integrated Google's Gemini API for dynamic quiz and
feedback generation, and assisted in connecting Firebase Authentication for
user login.
Ecommerce Website
● Developed a comprehensive and fully functional e-Commerce platform using
the MERN stack (MongoDB, Express.js, React.js, and Node.js)
● Implemented JWT-based authentication to ensure secure and seamless user
access
● Implemented a flexible product listing and advanced filtering features.
● Integrated RazorPay payment gateway for smooth, secure, and reliable
transaction processing.
● Website Link :https://virtu-mart-ten.vercel.app/(Deployed on Vercel).
34
CURRICULUM VITAE
Mohammad Saqib
Email : saqib070104@gmail.com Phone : +91 7458999600
inkedIn :https://www.linkedin.com/in/mohammad--saqib/
L
Github :https://github.com/MDSAQIB777
Educational Qualifications:
Technical Skills:
● anguages:C++,Python
L
● Frontend:HTML, CSS,JavaScript, React.js
● Backend:Node.js,Express.js
● Database:MongoDB, Firebase,MySql
● Tools & Platforms:Git, VS Code, Postman,Vite
● Other:Problem Solving,Debugging,Data Structures &Algorithms
Projects:
35
CURRICULUM VITAE
LinkedIn :https://www.linkedin.com/in/muklendra-pratap-rao
Github :https://github.com/MuklendraPratapRao
Educational Qualifications:
Technical Skills:
● anguages:C++,Python
L
● Frontend:HTML, CSS,JavaScript, React.js
● Backend:Node.js,Express.js
● Database:MongoDB, Firebase,MySql
● Tools & Platforms:Git, VS Code, Postman,Vite
● Other:Problem Solving,Debugging,Data Structures &Algorithms
Projects:
● D eveloped a fully responsive trading platform for using web technologies
(HTML, CSS, JavaScript, React , Material UI, etc).
● Designed and implemented key features including dynamic catalog, real-time
trade monitoring functionality, and interactive design.
● Focused on delivering a clean, modern UI with a mobile-first approach to
ensure optimal user experience across all devices.
36
CURRICULUM VITAE
Harsh Lohani
Email : harshlohani075@gmail.com Phone : +91 8887927075
LinkedIn :https://www.linkedin.com/in/harsh-lohani-455a80327
Github :https://github.com/Harsh06327
Educational Qualifications:
Technical Skills:
● anguages:C++
L
● Frontend:HTML, CSS,JavaScript
● Backend:Node.js,Express.js
● Database:MongoDB , MySql
● Tools & Platforms:Git , VS Code
● Data Structures & Algorithms
Projects:
37