This is a project that intends to automate the process of booking meetings according to available time slots.
What problem does BookOmatic solve ?
When a person1 wants to book a meeting with person2 he will send an email requesting for the date and time of the meeting. Person1 is not available at the requested time so he gives a date and time to person2 at which he is free. This goes on till they both find a suitable time slot at which they both are free. This is a long and cumbersome process so BookOmatic solves this by showing person1 the date and time slots person2 is free so he can book his meeting immediately.
Tools:
Django and Python for frontend
Firebase for backend
Use case:
User1 gets an email from User2 wanting to book a meeting
User1 sends back a link to a site
User2 opens the site and sees a UI with available time slots
User2 presses a time slot and creates a booking
User1 gets notified about the requested booking
User1 can approve or disapprove the booking
Requirements:
Should be able to add events in google calendar
Should be able to send email notifications
Should be able to show available spots
Should check user calendar in case they book something into available spots
User should be able to pick which times are going to be available to book, weekly, monthly or yearly (for instance Tuesdays at 3 PM is available all year, Monday at 2 PM is only available today etc)
The user that books meeting should be able to add in details for the meeting
Might have options like: type of meeting [Phone, Video, Face to Face]
Adding in a note for what the meeting is about
Name of booker, name of the company
Phone number and email
if it's a video conference an option for adding a link to the site of the meeting is required
Main user should be able to approve or disapprove booking
Edge cases:
User1 is in the process of booking an appointment and User2 books it before User1 finishes. So once User1 is done it is no longer available.
Solution: When a user presses a time slot it becomes unavailable straight away. And if they cancel or get disapproved it will become available again.
User2 can hog available slots by opening the booking page indefinitely, making the application counter-productive. There has to be a time limit set for a single booking to take place, example: 15 mins available to book a slot after User clicks a slot to book