Requirements


Functional Requirements:


  • Allow reservation of a parking spot. - Online Reservations
  • Process payment for the reservation. - Payment System
  • Enable parking of a car in the reserved spot. - Entry/Exit System
  • Support early departure before reservation time expires. -> can Re-entry ??? Better not it complicates
  • Gate check-in/out.
  • Handle no show.
  • Handle handicap spots
  • Handle overdue stays.



Non-Functional Requirements:


  • List the key non-functional requirements (eg low latency, scalability, reliability, etc.)...
  • The system should be always accessible to avoid problems with user leaving or entering (99.99% availability)
  • Latency -> The system should be real time with less than 10ms latency
  • Spot locking mechanism -> each spot has to be locked when user selects to avoid double booking.
  • Scalability -> The system should handle 50 spots, with the potential of increasing to 5000 spot parking garage.
  • Online Booking Scale -> They system should handle 5k online users, with daily traffic of 100k users.


API Design

Define the APIs expected from the system. This is your chance to analyze and define the read and write paths so that you can come up with the high-level design...





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.