Skip to content

smritii73/Aptitude_Application

Repository files navigation

Aptitude Application - Full Stack Quiz Platform

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.

Tech Stack

Backend

  • Java 17
  • Spring Boot 3.2.0
  • Spring Data JPA
  • MySQL
  • Maven

Frontend

  • React.js
  • Vite
  • Tailwind CSS (if used)

Prerequisites

Java Installation

  1. Download and install Java 17 or later from the Oracle official website.

  2. 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)
    • Edit Path and add %JAVA_HOME%\bin

    • Verify with:

      java -version
      

Maven Installation

  1. Download Apache Maven from the Maven official website.

  2. Extract it and set environment variables:

    • MAVEN_HOME: Path to extracted Maven folder
    • Add %MAVEN_HOME%\bin to system Path
    • Verify with:
      mvn -v
      

MySQL Setup

  1. Install MySQL Server and MySQL Workbench

  2. Create a schema named:

    CREATE DATABASE aptitude_application;
  3. 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
    

Project Structure

Backend - quiz-online-server-master

├── .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

Frontend - quiz-online-client

├── 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

Features

Admin Panel

  • Add Subjects
  • Add Questions mapped to Subjects
  • View all questions in a list
  • Update or Delete any question from the list

Practice Quiz

  • Select the number of problems to solve

  • Attempt the quiz interactively

  • Get quiz result with:

    • Number of correct answers
    • Percentage score

Running the Application

Backend

cd quiz-online-server-master
mvn clean install -DskipTests
mvn spring-boot:run

Frontend

cd quiz-online-client
npm install
npm run dev

Notes

  • 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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors