Skip to content

Repository files navigation

Review Assignment Due Date

lab5-wa2025

🚗 Car Rental – Microservices-based Car Rental System

A system for managing reservations, vehicle maintenance, car pickups/drop-offs, and business analysis.

About the Project

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.

Technologies used

  • Languages: Kotlin (backend), JavaScript (frontend)
  • Backend: Spring Boot
  • Frontend: React
  • Database: PostgreSQL
  • Containerization: Docker, Docker Compose
  • Communication: REST API between microservices

Running the project with Docker

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 infrastructure
    chmod +x init-multiple-databases.sh

First run or modified images

Click on the Gradle icon and for every microservice, follow these steps:

  1. Click on Tasks
  2. Click on build
  3. 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 infrastructure
docker compose up

Quick start (successive executions)

cd infrastructure
docker compose up

If everything works properly, you should see messages such as:

  • CREATE DATABASE
  • Multiple databases created

Frontend

Running the Frontend

Our frontend is located in the ReservationFrontend folder and can be launched in two modes:

First run or modified frontend

   cd ReservationFrontend
   docker build -t docker.io/library/frontend-demo:0.0.2 .

Quick start (successive executions)

cd infrastructure
docker compose up

This 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/

Future improvements

Improve image rendering (issues with the frontend in Docker, but in the previous lab it worked fine).

Design choices of payment flow

The payment is processed only after the user returns the vehicle. This occurs when the vehicle status is set to rented.

About

Microservices-based car rental backend application designed to explore scalable software architecture, REST APIs, service communication, and modular system design.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages