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...