Seated rewards people for dining at resturants during slow-hours. I developed Seated's backend from scratch.
Highlights
Rebuilt the backend from scratch
APIs for mobile and admin web app
OpenTable Integration
Handling more than 100 million time slot for booking through dynamic schedules
3 levels
App level: Applies to all restaurants in the app
City level: Applies to all restaurants in a city
Restaurant level: Applies to one specific restaurant
2 types
Positive periods: These are time periods that customers can book a slot within.
Negative periods: These are time periods that customers cannot book slots within, they can overlap with positive slots and must be removed from within them.
E.g., an app level schedule of 30 minute slots for a positive period 2-4pm will generate the time slots: 2:00pm, 2:30pm, 3:00pm, 3:30pm.
A city level schedule with a negative period 2:30-3:30pm will remove the 2 slots 2:30pm and 3pm from all restaurants in that city. Combined with the app level schedule above, only 2:00pm and 3:30pm slots will be available to book.
The slots are generated within a second for thousands of restaurants through optimized SQL queries.