Skip to content

Service to run a car rental


Brief description of the system

As part of the project, a system should be created that allows car rental companies to be run in several cities. The system is to allow for the booking, rental and returns of cars. Additionally, it should calculate the rental company's revenues and present basic statistics.


Main system functions

  • Car booking
  • Renting a car
  • Car return
  • Managing the list of offices
  • Managing the fleet and their current location
  • Income calculation
  • Statistics

Technologies

  • Spring + Hibernate
  • (optional) Frontend in Angular/React/Thymeleaf

Basic entities (Proposal)


Rental

  • name
  • Internet domain
  • contact address
  • owner
  • logotype
  • list of branches

Branch

  • address (with city)
  • list of facility employees
  • list of currently available cars

Employee

  • first name
  • name
  • position (EMPLOYEE/MANAGER)
  • branch where he/she works

Car

  • brand
  • model
  • body type
  • year
  • Colour
  • mileage
  • status (BOOKED/AVAILABLE/UNAVAILABLE) - status applies to a specific date; unavailable, i.e. broken, under repair, under inspection, etc.
  • amount (per day of rental)

Customer

  • first name
  • name
  • email
  • address

Reservation

  • date of booking
  • client
  • car
  • date from
  • date to
  • branch of loan
  • return department
  • amount

Loan (based on Reservation)

  • employee
  • date of rental
  • reservation
  • comments

Refund (based on the Reservation)

  • employee
  • date of return
  • reservation
  • surcharge
  • comments

Revenue

  • sum of amounts for car rental

Functionalities


Configuring the rental

  • the system is designed so that it can be sold to any rental network
  • it should allow you to configure the Lending Department, i.e. providing the name, domain, address, owner and logotype
  • branches are managed from the rental level: adding/closing

Management of departments

  • each branch has a list of employees
  • there should be a Manager in each branch
  • each branch has a list of currently available cars in a given location at a given time
  • (optional) a mechanism presenting information when only 1 or 2 cars are available at a given date

Cars

  • cars are not permanently assigned to a specific seat
  • they can be borrowed and returned at various branches (for an additional fee)
  • you need to update the mileage and the amount for the rental
  • set the appropriate status; if it cannot be borrowed for reasons other than at a given time (e.g. inspection, failure)
  • their status should be presented on a given date
  • (optional) a simple filtering mechanism by car parameters (make, model, year, color; other parameters can be added)

Customer

  • the rental company should have a list of customers
  • in its basic form it can be a predefined list
  • (optional) the customer should be able to create an account and log in

Car booking

  • the car is reserved by a specific customer for a specific date
  • when booking, please provide the car pickup and return department (it can be different)
  • the system should calculate the total amount for the rental (e.g. by multiplying the number of days and adding a fixed amount for returning to a location other than the rental)
  • reservations can be canceled, e.g. 2 days before the date of rental (no fee); 80% of the amount is then reimbursed
  • (optional) the system may have promotions due to the number of rentals, kilometers traveled, holiday period, etc. (loyalty program)

Renting a car

  • event in the system: an employee rents a car on the basis of a reservation
  • additionally comments can be saved

Returning the car

  • event in the system: the employee picks up the car based on the reservation
  • additionally comments can be saved
  • if necessary, enter the amount of the surcharge (in connection with exceeding the time limit, damages, etc.)
  • (optional) you can extend the Booking with the generation of an invoice. You can also add an additional invoice for extra payment (to separate payments from bookings and returns)

Calculation of income

  • revenue should be updated at appropriate times, i.e.

    • Reservation: Revenue increases by the amount of the reservation

    • Cancellation of a booking: the revenue is reduced by the amount of the booking

    • Cancellation of Bookings (late): Revenue is reduced by 80% from bookings
    • Surcharge on return: revenue increases by the amount of the surcharge
  • think about the method of counting and presenting money, e.g. keep the approved and unapproved amounts in separate columns (those that will have to be returned)

  • (optional) expansion of the system due to invoices and fees / deposits for reservations, etc.

Statistics module

  • revenue statistics are broken down by divisions, cities and employees
  • statistics of the most popular routes (the most frequently chosen collection and return department)
  • statistics of the most popular branches, car collection cities
  • statistics of the most popular branches, car return cities
  • statistics of the most popular cars
  • (optional) statistics of canceled reservations (by departments, employees, cars)

Additional requirements

  • it is necessary to ensure an aesthetic and functional way of presenting data
  • data downloaded from users should be pre-validated