Ways to approach a general Design problem.
-
Use Cases Generation: Gather all the possible use cases
-
Constraints and Analysis: How many users, how much data etc.
-
Basic Design: Most basic design. Few users case.
-
Bottlenecks: Find the bottlenecks and solve them.
-
Scalability: A large number of users. 4 and 5 step will go in loop till we get a satisfactory answer
Current Scenario
- Use cases for this problem.
- Parking can be single-level or multilevel.
- Types of vehicles that can be parked, separate spaces for each type of vehicle.
- Entry and exit points.
- Constraints
- Number of vehicles that can be accommodated of any type.
- Basic Design/High-Level Components
- Vehicle/Type of vehicle.
- Entry and Exit points.
- Different spots for vehicles.
- Bottlenecks
- Capacity breach for any type of vehicle.
- Scalability
- Scalable from single-level to multi-level
- Scalable from Bike only parking to accommodate all kinds of vehicles.
Keeping these in minds, APIs can be designed in the language of your preference.