This blog is written as per the codekarle system design series.
Functional Requirements:
Hotel
Onboarding
Updates
Booking
User
Search
Book
Check Booking
Analytics
NFR:
Low Latency
HA
High Consistency
Scale
500k Hotels
10 M Rooms
1000 rooms/hotel(Max 7500)
Hotel DB
Hotel(Id, Name, localityid, description, original images, display images, isActive)
Hotel Facilities(Id, HotelId, Facilities, isActive)
Rooms(Id, HotelId, displayname, isActive, qty, price_min, price_max)
Rooms Facilities(Id, RoomlId, FacilitiyId, isActive)
Facilities(Id, displayname)
Locality(Id, cityid, stateid, countryid, zipcode, isActive)
Booking DB
AvailableRooms (RoomId, date, initial_qty, available_qty)
Booking (bookingId, roomid, userid, startdate, eddate, noofrooms,status,invoiceid)
Status (Reserved, booked, cancelled, completed)