DEV Community

Cover image for Parking Lot System: Low Level Design
Lovepreet Singh
Lovepreet Singh

Posted on

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


  • 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

Top comments (8)

410nidhi profile image
Nidhi Upasani

Very informative :)

lovepreetsingh profile image
Lovepreet Singh

Thanks 😎

nsengupta profile image
Nirmalya Sengupta • Edited

If Ticket has-A Vehicle, then the member's type should be Vehicle, instead of VehicleType, no? or am I missing something?

lovepreetsingh profile image
Lovepreet Singh

Yes You are right bro, Ticket should have Vehicle not VehicleType

vilce profile image
Ștefan Vîlce

excellent post!

caroline profile image

Great post!!

hartajsinghdev profile image


lovepreetsingh profile image
Lovepreet Singh

Thanks Buddy