Vehicle Management System

Created by Glabay | Added on Jul 22, 2026
0 reviews

Project Overview

The goal of this project is to build a Vehicle Management System web application using modern Java and Spring Boot practices.

This project simulates a small vehicle dealership application where customers can browse vehicles, while administrators and employees can manage dealership inventory through protected dashboards.

This blueprint describes the required features and learning objectives. It does not define one exact implementation. There are many valid approaches to solving this project.

Focus on:

  • Writing clean and maintainable Java code
  • Understanding Spring Boot architecture
  • Applying security concepts correctly
  • Designing solutions independently
  • Learning how real-world applications are structured

Learning Objectives

By completing this project, students should gain experience with:

  • Spring Boot MVC applications
  • Thymeleaf server-side rendering
  • Spring Data JPA persistence
  • Entity design and relationships
  • Spring Security authentication and authorization
  • Role-based access control
  • Form validation
  • CRUD operations
  • Database integration
  • Application structure and organization

Required Technologies

The application must use:

  • Java 25
  • Spring Boot
  • Maven or Gradle
  • Spring MVC
  • Spring Data JPA
  • Spring Security
  • Thymeleaf
  • SQLite Database

Optional technologies:

  • Lombok
  • Spring Boot DevTools
  • Additional Spring modules
  • Frontend libraries

Application Requirements

The application represents a vehicle dealership website.

The application should contain two primary areas:

  1. Public Customer Website
  2. Protected Management Dashboard

Public Website

The public website should allow visitors to browse available vehicles without logging in.

Home Page

The home page should display available vehicles.

Recommended information:

  • Vehicle image
  • Make
  • Model
  • Year
  • Price
  • Mileage
  • Fuel type
  • Transmission

Users should be able to select a vehicle and view more details.


Authentication Requirements

The application must support registration and login.

Registration

Users should be able to create an account using:

  • Username
  • Password
  • Password confirmation

Registration should include validation.

Examples:

  • Username cannot be empty
  • Password cannot be empty
  • Password confirmation must match
  • Duplicate usernames should not be allowed

Login

Users should authenticate using:

  • Username
  • Password

Spring Security should manage authentication.


Roles

The required roles are:

USER

A normal registered user.

Capabilities:

  • Login
  • Access authenticated pages available to users

ADMIN

A dealership administrator.

Capabilities:

  • Access admin dashboard
  • Manage vehicles
  • Manage users
  • Create vehicles
  • Edit vehicles
  • Delete vehicles

Admin Dashboard

The admin area must be protected using Spring Security role-based authorization.

Example:

/admin

The dashboard should act as a landing page showing dealership information.

Recommended dashboard cards:

  • Total Vehicles
  • Available Vehicles
  • Sold Vehicles
  • Registered Users
  • Employees
  • Upcoming Appointments

Admin Pages

The dashboard should provide access to management pages.

Example:

/admin/dashboard

/admin/cars
/admin/cars/add
/admin/cars/edit/{id}

/admin/users

The exact URL structure is up to the developer.


Vehicle Entity Requirements

The application must contain a Vehicle entity.

Recommended fields:

  • ID
  • Make
  • Model
  • Year
  • Price
  • Mileage
  • Fuel Type
  • Transmission
  • Color
  • VIN
  • Description
  • Image URL
  • Sold Status

Students may add additional fields.


Vehicle Management

ADMIN

Administrators can:

  • Create vehicles
  • View vehicles
  • Update vehicles
  • Delete vehicles

EMPLOYEE (Bonus)

Employees can:

  • Create vehicles
  • View vehicles
  • Update vehicles

Employees cannot delete vehicles.

Validation Requirements

The application should validate user input.

Recommended validation examples:

Vehicle:

  • Required fields cannot be empty
  • Price must be greater than zero
  • Mileage cannot be negative
  • VIN must be unique
  • Year should be reasonable

User:

  • Username required
  • Password required
  • Password confirmation must match

Validation messages should be shown clearly to users.

Recommended Entities

These are recommendations, not strict requirements.

Required Entity

User

Stores authentication information.

Possible fields:

  • ID
  • Username
  • Password
  • Role

Vehicle

Stores dealership inventory information.


Bonus Entities

Employee

Represents dealership employees.

Possible fields:

  • ID
  • Name
  • Email
  • Phone Number
  • Role

Customer

Represents customers.

Possible fields:

  • ID
  • Name
  • Email
  • Phone Number

Appointment

Represents vehicle test drive appointments.

Possible fields:

  • ID
  • Customer
  • Vehicle
  • Date
  • Status

Available Options

The following are suggestions only.

They are not required implementations.

Password Encryption

Possible approaches:

  • BCrypt
  • Argon2

Styling

Possible approaches:

  • Plain CSS
  • Bootstrap
  • Tailwind CSS
  • Other frontend frameworks

Entity Design

Possible approaches:

  • Enum-based roles
  • Separate Role entity
  • Different relationship mappings

REST API Bonus

Expose vehicle information through REST endpoints.

Example:

GET /api/cars
GET /api/cars/{id}

Possible additions:

  • Creating vehicles through API
  • Updating vehicles through API
  • Deleting vehicles through API
  • Pagination
  • Filtering

Bonus Challenges

Maximum of 5 bonus challenges.

Bonus 1 - Employee Management

Add an EMPLOYEE role.

Employees should be able to:

  • Login
  • View vehicles
  • Add vehicles
  • Edit vehicles

Employees should not be able to delete vehicles.


Bonus 2 - Customer Accounts

Add a CUSTOMER role.

Customers should be able to:

  • Register
  • Login
  • View their profile
  • Manage their information

Bonus 3 - Test Drive Appointments

Create a vehicle appointment system.

Customers should be able to:

  • Select a vehicle
  • Request a test drive
  • View appointment status

Employees/Admins should be able to manage appointments.


Bonus 4 - Vehicle REST API

Create a REST API that provides vehicle data.

Requirements:

  • JSON responses
  • Correct HTTP methods
  • Proper status codes
  • Validation handling

Bonus 5 - Vehicle Search

Add vehicle searching and filtering.

Examples:

  • Search by make
  • Search by model
  • Filter by price
  • Filter by year
  • Filter by fuel type