Parking Lot — Notes
Functional
- Issue tickets on entry.
- Find free slot per vehicle type / EV.
- Compute fee, accept payment, allow exit.
- Display free-count per level.
Non-functional
- 99.9% uptime; offline-safe (gates can fail closed safely).
- Concurrent entries handled.
- Audit log of every entry/exit.
API (services)
Ticket park(Vehicle)
Receipt unpark(ticketId)
int freeSlots(level, type)
Patterns
- Strategy: AllocationStrategy, PricingPolicy.
- Repository: tickets, slots.
- Observer: DisplayBoard.
- Factory: VehicleFactory by regNo / declared type.
- State: SlotState (FREE / OCCUPIED / RESERVED / OUT_OF_SERVICE).
Trade-offs
- Flat hourly simplest; dynamic pricing harder to explain to users.
- Pre-reserved slots for monthly passes vs first-come first-serve.
Refs
- Common LLD interview templates (Grokking the Object Oriented Design Interview).
- Refactoring guru patterns.