Requirements
Functional Requirements:
- Allow reservation of a parking spot.
- Process payment for the reservation.
- Enable parking of a car in the reserved spot.
- Support early departure before reservation time expires.
- Gate check-in/out.
- Handle no show.
Non-Functional Requirements:
- Latency must feel real-time to the user (<=200ms).
- The system must be horizontally scalable to handle traffic peaks without wasting resources during off-peak periods.
- It must be highly consistent to ensure that scheduled slots are genuinely available upon payment confirmation
API Design
//get reservations
GET /spots
High-Level Design
Describe the overall system architecture. Identify the main components needed to solve the problem end-to-end. Use the diagramming tool to create a block diagram.
Detailed Component Design
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.