Parking Lot System: Low Level Design

ssd

server side digest

Posted on April 24, 2023

Parking Lot System: Low Level Design

This is our first blog in the series of Low Level Design. We'll start from designing and coding a Parking lot system. While coding we'll be following some design patterns that we discussed in earlier blogs, Part 1 and Part 2.

Before starting the design, one must know the Requirements and Objects of the system.

System Design Meme

Requirements:-

  • We have one entrance and one exit
  • We have different parking spots for two, three and four wheelers
  • Parking prices are based on hourly and minutes based
  • There are multiple parking floors
  • We have different strategies to find the parking spots like Parking Spot near to the elevator, Parking Spot near to entrance etc

Objects Required:-

  • Ticket
  • Entrance
  • Parking Spot
  • Vehicle, VehicleType (Enum)

Now, lets design ๐Ÿ˜Ž

But But But, Before coming to the design, there is one most important thing i.e. following either one of the approaches from

  • Top Down Approach
  • Bottom Up Approach

Here, In Top to Down approach we start from the system start. Here in our case our system starts from the entry of a vehicle into a Parking Space.
In Bottom to Up approach, we start from the main requirement (any) like we start from ParkingSpot and then further.

Thought Process:-

Now, here is our thought process while designing.

  • Vehicle needs to be parked at some Spot (Design a Parking Spot)
  • But we have different type of vehicles (2,3,4 wheelers) so make ParkingSpot as an interface and extend to TwoWheeler, ThreeWheeler and FourWheeler ParkingSpot.

Parking Lot System Design

  • Now, we have ParkingSpots but to manage these ParkingSpots we have to make a Manager (ParkingSpotManager) which will be a centralized place to control the ParkingSpots.
  • Here, we have a Parking Strategy (Strategy Pattern) that has different implementation.
  • We have has-a relation which says it is not a child but it has an instance of that class

Parking Lot system manager

  • Now, coming to Entrance and Ticket, we have entrance from where a person collects his ticket to park a vehicle. So, it should have a Ticket, Parking Spot Manager to find parking and all.

Parking Lot System

  • Now, we have to include the Price on the ticket and price can be assigned from the entrance itself. Now, Price could be different and can have multiple implementations.

Parking Lot System

  • Now, It might look a mess to you, But at the end combining all the stuff, it looks like this (Sorry, if image is not clear, kindly click on the Google Drive link for a High Quality Image)

Parking Lot System


We'll get to the code in our next blog, Follow for more updates

๐Ÿ’– ๐Ÿ’ช ๐Ÿ™… ๐Ÿšฉ
ssd
server side digest

Posted on April 24, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

ยฉ TheLazy.dev

About