Requirements
Functional Requirements:
Add parking floors & slots
Park a vehicle
Unpark a vehicle
Generate ticket on entry
Calculate & pay parking fee on exit
Different vehicle types (Bike, Car, Truck)
Different slot sizes
Real-time availability
Multiple payment modes
Display board (free slots per floor)
Non-Functional Requirements:
Low latency (entry/exit fast)
Scalable (multi-floor, multi-entry)
Highly available
Consistent billing
Core Objects & Relationships
ParkingLot
ParkingFloor
ParkingSlot
Vehicle
Ticket
Payment
APIs & Class Members
For each class, define the attributes (data) it will hold and the methods (functions) that operate on the attributes. Ensure they align with the object's responsibilities and adhere to the principle of encapsulation. Write your code in the code editor below.
Deep Dive
Explain design tradeoffs you considered. Check and explain whether your design adheres to SOLID principles. Explain how your design can handle changes in scale and whether it would be easy to extend with new functionalities. Identify areas for future improvement...