Customers reserve a car class at a branch for a date range, not a specific car. Availability is fleet size minus overlapping reservations, cached per branch and class. A reservation holds capacity with a conditional update and places a deposit hold on the card. At pickup a specific vehicle is assigned; telematics report mileage and fuel, and the final charge is captured on return.
Functional requirements
- Search cars by branch, dates and class with prices
- Reserve, modify and cancel
- Deposit hold at booking, final charge at return
- Assign a vehicle at pickup; record damage and mileage
- Fleet management: maintenance, transfers between branches
Non-functional requirements
- No overbooking a class at a branch beyond policy
- Payments exactly-once, deposits always released
- Accurate availability during peak travel seasons
Extensions
- Digital keys and contactless pickup.
- One-way rentals with fleet rebalancing.
- Damage detection from photos.