Assignment - luist18/feup-aeda-proj GitHub Wiki

Fleet Management and Vehicle Rental

Part 1

​A car rental company intends to innovate its services by adopting new concepts that promote the intelligent mobility as a service (mobility-as-a-service). In addition to the traditional concept of vehicle rental, in which the company owns its fleet, the company will also implement the concept of carsharing, where private owners can make their vehicles available for when not in use. For example, someone who uses a vehicle only for early morning and late afternoon commute could provide their vehicle during the day, for short-term rental, and thus earn some income. The rentals may be from company vehicles, or private vehicles that make them available for lease. The contracts can be hourly, daily, weekly, or monthly.

Vehicles can be categorized into passenger vehicles and commercial vehicles. In the first case, the available capacity is measured in terms of number of passengers (2, 4, 5, 7, etc.) while in the second, the capacity is measured in terms of maximum volume and weight. Commercial vehicles can also be efrigerated for the transport of perishable cargo. The company maintains a portfolio of customers, i.e. other companies or individuals, identified by their NIF. Among the clients, there are those who only rent vehicles, and there are those who make their vehicles available for rent on the carsharing model. In the latter case, information on vehicle availability, rentals, the percentages to be shared between the owners and the company, among other elements that may be needed, must be defined.

​Company offers are promoted through a web portal, which can be accessed by visitors with or without registration. Unregistered people can only browse through the various car deals made available by the company. For people registered on the portal, the company will collect their contact details and references, and may recommend offers appropriate to their profile. The vehicle rent and assignment contracts are made via the portal, so there should be a visitor record in these cases. After the first contract, the visitor automatically becomes part of the company's customer base. The processes of vehicle reservations must also be managed from the portal; once booked, the vehicle becomes unavailable on the booking dates. Registered customers have a personal page where they can manage their bookings and rental history. Proprietary customers can also manage data regarding the availability of their vehicles (there may be more than one vehicle registered on behalf of the same customer), including contact information of the persons who are using the vehicle at any given time.

​Implement as well other features you consider relevant in addition to the overall requirements stated.

Part 2

Complement the implemented system with the following functionalities:

  • The company aims to make it easier to manage contracts made to date, by allowing easy navigation of the contract history. A contract is characterized by the date of celebration, period covered, vehicle registration, customer name, among all other relevant attributes. The company keeps all the past contracts, whether it is a vehicle offer or rental, in a binary search tree, sorted by date of conclusion and, in the event of a tie, by customer name. Multiple listings should be allowed, taking advantage of the ordering of the tree.

  • In order to maintain the quality of its services, the company performs periodic vehicle maintenance services, including overhaul services, oil changes, among other services that may be required. The vehicles are thus organized in a priority queue, in order to manage their departure for maintenance service, at a set date. In this period, the car will be unavailable for rent. At the end of each maintenance, the date for the next service is set and the vehicle returns to the queue. There will, however, be situations that may require service sooner than anticipated, such as troubleshooting or accidents. In these cases, it may be necessary to update the next service date, which will cause the vehicle to change its position in the priority queue. It should be possible to list the next n planned maintenance service outputs.

  • Old clients, who no longer have offer or rent contracts for some time, are stored in a hashtable after a predefined downtime. Maintaining inactive customers is used by the company to advertise available vehicle rental opportunities. Generally, advertising campaigns are sent to the email address of inactive clients. When the inactive clients re-enter into a new contract with the company, they will no longer be part of the hashtable until the next downtime. It should be possible to list these clients, as well as the contracts' history they already had with the company.

​Implement as well other features you consider relevant in addition to the overall requirements stated.