Car Rental System – Project Documentation
1. Project Overview
The Car Rental System is designed to manage the operations of a car rental company. It allows the company to track customers, vehicles, bookings, payments, and vehicle returns efficiently. The system ensures accurate data management, minimizes redundancy, and supports future scalability.
2. Functional Requirements
2.1 Customer Management
Maintain personal information for all customers: full name, contact details, and driver’s license number.
Support multiple driver licenses for a single person, if applicable.
2.2 Vehicle Information
Maintain up-to-date information for all available vehicles: make, model, year, mileage, rental rates, fuel type, plate number, and category (e.g., Sedan, 4x4).
Vehicle Fuel Types:
Gasoline (Petrol)
Diesel
Electric
Hybrid
2.3 Vehicle Booking
Record every booking made by a customer.
Capture booking details: rental start date, rental end date, pickup and drop-off locations, initial rental days, initial total due amount, and initial vehicle check notes.
2.4 Rental Transactions
Record payment details for each booking, including initial paid amount.
Update transaction if there are differences at vehicle return.
2.5 Vehicle Return
Record actual return date and calculate actual rental days.
Save final vehicle check notes.
Track additional charges or refunds.
Save current mileage and calculate consumed mileage during the rental period.
3. Database Design
3.1 Tables Overview
Person – stores general information of all individuals.
Customer – stores customer-specific information.
DriverLicenses – stores driver license details for each person.
Vehicles – stores vehicle information.
VehicleCategory – stores vehicle categories (e.g., Sedan, 4x4).
FuelTypes – stores fuel types for vehicles.
Booking – stores all booking details.
Locations – stores pickup and drop-off locations.
RentalTransaction – stores payment information.
VehicleReturn – stores vehicle return details.
3.2 Key Relationships
Person → Customer = 1:1 (each customer must have one person record).
Customer → Booking = 1:M (a customer can make multiple bookings).
Booking → Vehicle = M:1 (a vehicle can be booked multiple times over time).
Booking → RentalTransaction = 1:M (each booking can have multiple transactions).
Booking → VehicleReturn = 1:1 (each booking has one vehicle return record).
4. Notes
Tables are normalized to reduce data redundancy and ensure data integrity.
ENUMs or reference tables are used for fields with limited options (e.g., FuelType, LicenseType, GearType).
The system can be extended easily for additional features like multiple locations, vehicle maintenance