Vehicle Management System – Vehicle management system
-
Backend
- Java 17
- Spring Boot 3.3.1
- Spring Security – authentication and authorization
- Spring Data JPA – data‑access layer
- Lombok – reduces boilerplate code
-
Frontend
- Thymeleaf – HTML template engine
- Bootstrap (CSS/JS) – UI styling
-
Database
- MySQL 8.0
-
Infrastructure
- Docker – containerisation
- Maven – dependency management and project build
-
Integration
- REST API – integration with external systems
- Jackson – JSON processing
The Vehicle Management System solves the integration challenge of retrieving a large vehicle dataset (≈ 50 000 records) at any time while ensuring the data are as up‑to‑date as possible.
The application pulls data from the US government FuelEconomy service, which contains makes, models and other vehicle details. Because the external data structure differs from our own, integration and transformation are required before the information can be used.
Stage 1
- Retrieve the list of years (1984 – current year).
- Retrieve vehicle makes.
- Retrieve models for each make.
- Retrieve engines for each model.
This produces mapped vehicles with their models and engines for the corresponding production years.
Stage 2
Using the engine ID, we extract the remaining vehicle details, map them to DTOs, store them in the database and expose them through the REST service.
Because the application follows the MVC pattern, the same data are presented to the UI views.
If data are needed only for specific years, a year filter can be configured in the application.
- What is the city fuel consumption for a specific vehicle model?
- Which vehicles are available on the market?
- What engine (type, displacement, fuel) does a given model have in a particular production year?
- Which models of a given make are available in selected years (information not directly obvious from the source)?
- What fuel does a specific vehicle use?
- Java 17 JDK
- Maven 3.6+
- Docker and Docker Compose (optional)
- MySQL 8.0 (if not run inside a container)
- An IDE with Maven support (recommended: IntelliJ IDEA, Eclipse, VS Code)
Run the application in containers with:
docker compose up --build
# then, for subsequent starts
docker compose upThe system integrates data from:
- Internal MySQL database – stores users, vehicles and their relationships.
- Fuel Economy API – external API providing fuel‑consumption and vehicle specifications.
- User‑entered data – vehicle information, parameters and history.
The application unifies these sources, ensuring coherent and easily accessible information.
Seeded administrator account:
- Username:
adminek - Password:
admin
- User registration and login
- Adding, editing and deleting vehicles
- Vehicle information search
- Fetching additional vehicle data from external APIs
- Exporting vehicle data in various formats
Spring Security restricts data access. Each user sees only their own vehicles, while an administrator can also trigger system integration.
Session management uses HTTP‑only cookies.
If the external API is unavailable, a fallback mechanism loads data from fallback-makes.json.










