A system for managing reservations, vehicle maintenance, car pickups/drop-offs, and business analysis.
This system for car rental agencies supports fundamental operations such as:
- Reservation management
- Collection and return of vehicles
- Vehicle maintenance
- Business analysis
The architecture is based on microservices and uses Docker containers.
- Languages: Kotlin (backend), JavaScript (frontend)
- Backend: Spring Boot
- Frontend: React
- Database: PostgreSQL
- Containerization: Docker, Docker Compose
- Communication: REST API between microservices
NB:
- Make sure Docker is installed and running on your system.
- If you are on Linux or Mac, you must give permissions to the script:
cd infrastructurechmod +x init-multiple-databases.sh
Click on the Gradle icon and for every microservice, follow these steps:
- Click on
Tasks - Click on
build - Click on
bootBuildImage
Then, copy the image name from the bootBuildImage task output and paste it into the docker-compose.yml file in the infrastructure folder, replacing the existing image name.
To the end, run the following commands:
cd infrastructuredocker compose upcd infrastructuredocker compose upIf everything works properly, you should see messages such as:
- CREATE DATABASE
- Multiple databases created
Our frontend is located in the ReservationFrontend folder and can be launched in two modes:
cd ReservationFrontend docker build -t docker.io/library/frontend-demo:0.0.2 .cd infrastructuredocker compose upThis will start the frontend service using the image built in the previous step. Then, open your browser and enter this URL: http://localhost:8085/ui/
Improve image rendering (issues with the frontend in Docker, but in the previous lab it worked fine).
The payment is processed only after the user returns the vehicle. This occurs when the vehicle status is set to rented.