This project is a full-stack web application for aptitude practice and quiz management. It provides an admin panel for managing questions and subjects, and a user interface for taking quizzes and receiving results.
- Java 17
- Spring Boot 3.2.0
- Spring Data JPA
- MySQL
- Maven
- React.js
- Vite
- Tailwind CSS (if used)
-
Download and install Java 17 or later from the Oracle official website.
-
Set up
JAVA_HOME:-
Open
Environment Variables>System Variables -
Add a new variable:
- Name:
JAVA_HOME - Value: Path to JDK folder (e.g.,
C:\Program Files\Java\jdk-17)
- Name:
-
Edit
Pathand add%JAVA_HOME%\bin -
Verify with:
java -version
-
-
Download Apache Maven from the Maven official website.
-
Extract it and set environment variables:
MAVEN_HOME: Path to extracted Maven folder- Add
%MAVEN_HOME%\binto systemPath - Verify with:
mvn -v
-
Install MySQL Server and MySQL Workbench
-
Create a schema named:
CREATE DATABASE aptitude_application;
-
Configure the database in
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/aptitude_application spring.datasource.username=root spring.datasource.password=your_password spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
├── .mvn/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── controller/ # REST API controllers
│ │ │ └── model/ # Entity classes (e.g., Question.java)
│ │ │ └── repository/ # Spring Data repositories
│ │ │ └── service/ # Business logic layer
│ │ │ └── QuizOnlineApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/ # Unit tests
│ └── QuizOnlineApplicationTests.java
├── pom.xml # Maven configuration
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ │ ├── layout/Navbar.jsx
│ │ ├── question/
│ │ │ ├── AddQuestion.jsx
│ │ │ ├── UpdateQuestion.jsx
│ │ ├── quiz/
│ │ │ ├── GetAllQuiz.jsx
│ │ │ ├── Quiz.jsx
│ │ │ ├── QuizResult.jsx
│ │ │ ├── QuizStepper.jsx
│ │ ├── Admin.jsx
│ │ ├── Home.jsx
│ ├── App.jsx
│ ├── main.jsx
├── utils/
│ ├── AnswerOptions.jsx
│ ├── QuizService.jsx
│ ├── Subject.jsx
├── package.json
├── vite.config.js
- Add Subjects
- Add Questions mapped to Subjects
- View all questions in a list
- Update or Delete any question from the list
-
Select the number of problems to solve
-
Attempt the quiz interactively
-
Get quiz result with:
- Number of correct answers
- Percentage score
cd quiz-online-server-master
mvn clean install -DskipTests
mvn spring-boot:run
cd quiz-online-client
npm install
npm run dev
- Ensure MySQL is running before launching the backend.
- Frontend expects the backend API to be running on default port
8080. - Adjust CORS configuration if needed for frontend-backend communication.