The system should allow:
The system should handle
If it's possible, we can have the system to be able to accommodate up to 200 vehicles, so we can cover rush hours easily.
We need to support the following types of requests:
Database stores records for reservations made by clients with the following fields:
We have several main components in the system:
First a client request a new reservation from the system. Then the client requests opening the gate with a reservation id, gets a parking spot id and parks the vehicle. When the client wants to leave it first sends a payment request with a reservation id and then requests opening the gates again with an identifier of the payed reservation and leaves.
Dig deeper into 2-3 components and explain in detail how they work. For example, how well does each component scale? Any relevant algorithm or data structure you like to use for a component? Also you could draw a diagram using the diagramming tool to enhance your design...
Explain any trade offs you have made and why you made certain tech choices...
We may want to offer dynamic prices to better adopt to rush hours and intervals of low demand. Or we can make our spot finding algorithm more flexible, teaching it to combine smaller parking spots into one spot for a bigger vehicle, if necessary.