Document
Document
INTERDISCIPLINARY PROJECT
By
SCHOOL OF COMPUTING
SATHYABAMA
INSTITUTE OF SCIENCE AND
TECHNOLOGY (DEEMED TO BE
UNIVERSITY)
CATEGORY - 1 UNIVERSITY BY UGC
Accredited “A++” by NAAC I Approved by AICTE
JEPPIAAR NAGAR, RAJIV GANDHI SALAI, CHENNAI - 600119
APRIL - 2024
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
BONAFIDE CERTIFICATE
This is to certify that this Project Report is the bonafide work of GOLUSU
MANOJ KUMAR (41110421) who carried out the Project entitled “ONLINE QUIZ
APPLICATION” under my supervision from January 2024 to April 2024.
Internal Guide
Ms.T.ANANDHI, M.E.,
Ph.D.,
ii
DECLARATION
I, GOLUSU MANOJ KUMAR (Reg. No- 41110421), hereby declare that the
DATE:
iii
ACKNOWLEDGEMENT
iv
TRAINING CERTIFICATE
ABSTRACT
Our project aims to develop an online quiz application using the MERN
(MongoDB, Express.js, React, Node.js) stack, designed to provide users
with an engaging platform for learning and testing their knowledge in
various subjects. The application facilitates user registration and login
functionalities, allowing new users to sign up with their name, email,
and password, while existing users can access the platform by logging
in with their credentials. Upon login, users are presented with a
selection of available quiz subjects, such as HTML, CSS, and JavaScript.
After selecting a subject, users are welcomed to a dashboard where
they can access quizzes and track their progress.The core feature of
the application is the quiz module, which presents users with a series
of questions related to the chosen subject. Each quiz consists of 15
questions, and upon completion, users receive a detailed analysis of
their performance, including marks obtained and pass or fail status
based on predefined criteria. The application also offers a logout option
for users to securely exit the platform after completing their quiz
session.Our online quiz application aims to provide an intuitive and
interactive learning experience for users, fostering knowledge
acquisition and skill development in a convenient online environment.
With its user-friendly interface and comprehensive assessment
capabilities, the application serves as a valuable tool for both learners
seeking to test their understanding and educators looking to
administer quizzes in a digital format.
v
TABLE OF CONTENTS
PAGE
CHAPTER TITLE
NO. NO.
v
ABSTRACT
vii
LIST OF FIGURES
1 INTRODUCTION
1
1.1Overview
LITERATURE REVIEW 2
2 2.1 survey
3 REQUIREMENTS ANALYSIS
3.1 Objective 7
3.2.1 Hardware Requirements
3.2 8
3.2.2 Software Requirements
6 CONCLUSION 24
REFERENCES 25
SOURCE CODE 26
v
LIST OF FIGURES
v
CHAPTER 1
INTRODUCTION
1.1 OVERVIEW
1
CHAPTER 2
LITERATURE REVIEW
2.1 SURVEY
John Doe's study delves into the realm of interactive online quizzes,
investigating their potential to enhance student engagement and
improve learning outcomes. Through a combination of theoretical
analysis and practical experimentation, the research explores various
features and techniques that can be incorporated into online quizzes to
make them more interactive and effective as educational tools. This
includes the integration of immediate feedback mechanisms,
multimedia elements such as images and videos, and gamification
principles like pointsystems and leaderboards. By examining the
impact of these interactive elementson student motivation,
participation, and knowledge retention, the study sheds light on the
importance of designing engaging quiz experiences that go beyond
traditional text- based assessments.
3
[3.]"Exploring the Effectiveness of Online Quizzes as a Learning Tool in
Higher Education" by David Johnson (2019)
4
[5.] "Impact of Online Quizzes on Student Learning: A Meta-Analysis" by
Michael Anderson (2020)
5
[7.] "Comparative Analysis of Online Quiz Platforms for Educational
Use" by Mark Wilson (2021)
6
platforms based on criteria such as interface design, question types,
grading options, and integration capabilities, the analysis aims to
assist educators and institutions in selecting the most appropriate
platform for their specific needs. Additionally, the analysis highlights
emerging trends and innovations in online quiz platforms, such as
mobile compatibility, accessibility features, and real-time analytics,
that have the potential to enhance the teaching and learning
experience.
7
interaction, the guidelines offer actionable recommendations for
designing quizzes that are intuitive, accessible, and pedagogically
sound. This includes considerations such as interface design, question
types, feedback mechanisms, and integration with learning
management systems.
8
[10.] "Engaging Students with Interactive Online Quizzes: Best Practices
and Case Studies" by Rachel Taylor (2022)
Rachel Taylor's work explores best practices and case studies for
engaging students with interactive online quizzes in educational
settings. Drawing on examples from various disciplines and
educational levels, the study showcases innovative approaches and
effective strategies for designing and implementing interactive quizzes
that captivate students' interest and promote active learning. This
includes incorporating multimedia elements, gamification principles,
and real- world scenarios into quiz content, as well as leveraging
technology tools and platforms to enhance interactivity and
engagement. By sharing successful implementations and practical
insights, the study aims to inspire educators to explore new
possibilities for leveraging online quizzes as powerful tools for student
engagement and learning enhancement.
9
CHAPTER 3
REQUIREMENTS ANALYSIS
Our project aims to address the growing demand for convenient and
effective online learning tools by developing a comprehensive online
quiz application. With the widespread adoption of digital learning
platforms, there is a need for user- friendly and feature-rich solutions
that cater to diverse educational needs. Therefore, our primary
objective is to create an intuitive and engaging platform that allows
users to register, log in, and access a wide range of quiz subjects,
covering topics from foundational subjects like HTML and CSS to
advanced topics like JavaScript and beyond.Through the utilization of
the MERN stack - MongoDB, Express.js, React, and Node.js - we aim to
leverage the power of modern web technologies to build a robust and
scalable application architecture. This will enable us to implement key
features such as user authentication, database management, dynamic
content generation, and real-time interaction, ensuring a seamless and
responsive user experience across various devices and platforms.
1
3.2 REQUIREMENTS
1. RAM:
- Minimum requirement of 8 GB RAM to ensure smooth operation of the
system.
2. Hard Disk:
- Minimum 500 GB hard disk space to accommodate data storage
and software installations.
3. Input Devices:
- Standard Windows Keyboard: Required for inputting commands and text.
- Two or Three Button Mouse: Necessary for navigating the interface
efficiently.
4. Monitor:
- SVGA Monitor: Provides a clear and crisp display for viewing output and
interacting with the system.
5. Processor:
- I5 or above: Required for running the software and processing data
effectively.
1. Development Environment:
Code Editor: A code editor is essential for writing and editing code
efficiently. Popular options include Visual Studio Code, Atom, and Sublime
Text. These editors offer features such as syntax highlighting, code
completion, and integrated terminal, which streamline the development
process.
1
Version Control: Version control systems like Git, GitHub, and GitLab are
crucial for managing code changes, collaborating with team members, and
ensuring codebase
1
integrity. These platforms facilitate code sharing, branching, merging, and
tracking of project history, enabling smooth collaboration among
developers.
React Developer Tools and Redux DevTools: These browser extensions are
indispensable for React developers. React Developer Tools allow you to
inspect React component hierarchies and analyze component props and
state, aiding in debugging and optimization. Redux DevTools provide
insights into Redux state changes and actions, facilitating state
management in complex React applications.
2. Front-end Technologies:
1
user interfaces, ensuring compatibility across different devices and
browsers.
1
applications. They simplify UI development by providing ready-to-use design
elements and utility classes, speeding up the development process and
maintaining design consistency.
3. Back-end Technologies:
JSON Web Tokens (JWT): JSON Web Tokens (JWT) are a popular method for
securely transmitting authentication and authorization data between parties.
JWTs consist of encoded JSON objects containing user information and digital
signatures, enabling stateless and secure authentication mechanisms in web
applications.
1
CHAPTER 4
DESIGN DESCRIPTION OF PROPOSED PROJECT
fig1.system architecture
Client-Side Components:
Subject Selection: This component enables users to select the subject for
which they want to take a quiz. It provides a list of available subjects and
allows users to choose one to proceed with quiz-taking.
1
Quiz Interface: The quiz interface component is where users answer quiz
questions. It presents questions to users, collects their responses, and
facilitates navigation through the quiz.
Server-Side Components:
Data Access: The data access component interacts with the database to
retrieve and manipulate data. It performs operations such as querying the
database for quiz questions, storing user responses, and retrieving feedback
and analysis data.
Business Logic: Business logic encapsulates the core functionality and rules
of the application. It implements logic related to quiz-taking, scoring,
feedback generation, and analysis calculation. The business logic ensures
that the application behaves correctly and consistently according to its
specifications.
1
client-side components. They define the interfaces through which client-side
components can communicate with the server-side components. API
endpoints handle incoming requests, execute the corresponding business
logic, and return responses to the client.
1
Interaction Between Components:
Server-side components interact with each other to fulfill client requests and
execute application logic. For example, the data access component retrieves
quiz questions from the database, which are then processed by the business
logic component to generate a quiz for the user.
2
4.1.2 Various Stages
3. Development:
In the development phase, the actual coding and implementation of the
application take place. The development team follows the design
specifications and coding standards to build the various components of the
application, including front-end user interfaces, back-end server logic,
database interactions, and integrations with external services or APIs. Agile
development methodologies may be used to iteratively develop and test
application features.
2
features or updates, and ensuring a smooth transition from development to
production.
Fig2:workflow of design
2
4.1.4 working principles
2
5. Security and Data Privacy:
Security measures are implemented at various levels of the application to
safeguard user data and protect against security threats. Encryption
techniques are used to secure data transmission and storage, while secure
authentication protocols prevent unauthorized access to user accounts.
Access controls restrict data access to authorized users only, and data
privacy regulations are adhered to ensure compliance with applicable laws
and regulations.
2
Fig3:Sequence diagram
2
4.2 FEATURES
2. Subject Selection:
Users can browse and select from a variety of subjects or topics for which
quizzes are available.
3. Quiz Taking:
Users can take quizzes on selected subjects, with each quiz consisting of
multiple- choice questions, coding exercises, or other formats.
Timers and progress indicators help users track their progress and manage their
time effectively.
User profiles allow users to track their quiz history, view past quiz results,
and monitor their overall progress.
Progress tracking features enable users to set learning goals, track their
performance over time, and measure their improvement.
2
6. Social Features:
Social sharing options allow users to share their quiz results and
achievements with friends and peers on social media platforms.
Customizable settings allow users to adjust quiz difficulty, question types, and
other parameters to suit their learning preferences.
2
4.2.1 Novelty of the proposal
The online quiz application stands out due to its innovative approach to
enhancing learning and assessment experiences for users across various
domains. Unlike traditional quiz platforms, this project integrates advanced
features and functionalities aimed at delivering a comprehensive and
engaging learning ecosystem. One of the novel aspects of the application lies
in its emphasis on personalized learning pathways tailored to individual user
needs and preferences. Through advanced recommendation algorithms and
adaptive learning techniques, the platform dynamically adjusts quiz content
and difficulty levels based on users' performance, learning history, and
areas of interest. This personalized approach not only promotes active
engagement but also facilitates more effective knowledge retention and skill
development.The application fosters a collaborative and social learning
environment through its integration of social sharing features and
leaderboards. Users can share their quiz results, achievements, and insights
with friends and peers on social media platforms, fostering healthy
competition and knowledge sharing. Additionally, the platform's robust
analytics and reporting capabilities provide users and administrators with
valuable insights into learning trends, performance metrics, and areas for
improvement. By leveraging data- driven insights, users can make informed
decisions about their learning strategies and track their progress towards
their learning goals.
3
CHAPTER 5
3
CHAPTER 6
CONCLUSION
3
REFERENCES
3. Javaheri, M. R., Farsi, S., & Daud, N. M. (2015). A Framework for the
Integration of E-Learning Tools with E-Portfolio Systems.
5. Li, L., Wang, Q., & Zhang, J. (2020). Research on the Reform of College
English Teaching Based on Online Learning.
7. Mishra, L., Gupta, T., & Shree, A. (2019). Online Learning during
Lockdown: Challenges, Opportunities, and Way Forward.
8. Seaman, J. E., Allen, I. E., & Seaman, J. (2018). Grade Increase: Tracking
Distance Education in the United States. Babson Survey Research Group.
https://onlinelearningsurvey.com/reports/gradeincrease.pdf
3
SOURCE CODE
3
</div>
);
}
export default App;
backend code : const eress=require('express');
3
const
connect=require("./configs/db.js")
const bodyParser = require("body-
parser"); const Port =
process.env.PORT || 3755
var cors =
require('cors') const
app=express();
app.use(express.json());
app.use(cors())
app.use(bodyParser.json
());
app.use(bodyParser.urlencoded({ extended:
true })); const
loginAuth=require("./controller/auth.controller.js")
app.use("/",loginAuth)
const
RegisterAuth=require("./controller/auth.controller.j
s") app.use("/",RegisterAuth)
const quizAdd=require("./controller/quizAdd.controller.js")
app.use("/admin",quizAdd)
const
quiz=require("./controller/displayQuiz.controller.js")
app.use("/quiz",quiz)
const getquiz =
require("./controller/quizAdd.controller.js")
app.use("/quiz",getquiz)
const
user=require("./controller/auth.controller.js
") app.use("/user",user)
const userResult=require("./controller/userData.controller.js")
app.use("/userResult",userResult)
app.listen(Port,async
function(){ try {
await connect();
console.log(Listening on $
{Port} )
} catch
(error) {
console.log(e
rr)
}
3
})
import React, { useEffect, useState } from
"react"; import { useSelector } from "react-
redux";
import { Link, useNavigate } from "react-
router-dom"; import { ToastContainer, toast }
from "react-toastify"; import
"react-toastify/dist/ReactToastify.css";
export const TopicQuiz = () => {
const userId = useSelector((state) =>
state.mernQuize.userId); const navigate =
useNavigate();
const name = useSelector((state) =>
state.mernQuize.userName); return (
<div className="mt-10 mb-10 ">
3
<div className="justify-self-center ml-96">
<h1 className="font-bold ml-40 ">Prepare By Topics</h1>
</div>
<div className="grid grid-cols-2 w-11/12 p-10 m-auto gap-8 shadow-2xl">
{userId ? (
<Link to="/quiz/html">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1 ">HTML</h1>
</div>
<img className="w-2/5 rounded-2xl" src="/html-5.gif" alt="" />
</div>
</Link>
):(
<Link to="/register">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1 ">HTML</h1>
</div>
<img className="w-2/5 rounded-2xl" src="/html-5.gif" alt="" />
</div>
</Link>
)}
{userId ? (
<Link to="/quiz/css">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">CSS</h1>
</div>
<img
className="w-2/5 mr-0
rounded-2xl" src="./css3.gif"
alt=""
3
/>
</div>
</Link>
3
):(
<Link to="/register">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">CSS</h1>
</div>
<img
className="w-2/5 mr-0
rounded-2xl" src="./css3.gif"
alt=""
/>
</div>
</Link>
)}
{userId ? (
<Link to="/quiz/javascript">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">JavaScript</h1>
</div>
<img
className="w-2/5 rounded-
2xl " src="./javascript.gif"
alt=""
/>
</div>
</Link>
):(
<Link to="/register">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">JavaScript</h1>
</div>
4
<img
className="w-2/5 rounded-
2xl " src="./javascript.gif"
4
alt=""
/>
</div>
</Link>
)}
{userId ? (
<Link to="/quiz/react">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">React</h1>
</div>
<img className="w-2/5 rounded-2xl " src="./react.gif" alt="" />
</div>
</Link>
):(
<Link to="/register">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">React</h1>
</div>
<img className="w-2/5 rounded-2xl " src="./react.gif" alt="" />
</div>
</Link>
)}
{userId ? (
<Link to="/quiz/redux">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">Redux</h1>
</div>
<img
className="w-2/5 rounded-2xl bg-
white" src="./redux.svg"
4
alt=""
/>
</div>
4
</Link>
):(
<Link to="/register">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">Redux</h1>
</div>
<img
className="w-2/5 rounded-2xl bg-
white" src="./redux.svg"
alt=""
/>
</div>
</Link>
)}
{userId ? (
<Link to="/quiz/mongodb">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">MongoDb</h1>
</div>
<img
className="w-2/5 rounded-2xl
h-full" src="./mongo.gif"
alt=""
/>
</div>
</Link>
):(
<Link to="/register">
{" "}
<div className="border-2 cursor-pointer topicdiv text-white font-
sans text-4xl font-bold h-36 justify-items-center rounded-2xl pl-10
flex ">
<div className="w-3/5 h-full bg-rgb(27,169,76)">
<h1 className="pt-12 pl-16 topicdivh1">MongoDb</h1>
4
</div>
<img
className="w-2/5 rounded-2xl h-full"
4
src="./
mongo.gif"
alt=""
/>
</div>
</Link>
)}
</div>
<ToastContainer />
</div>
);
};