Our university requires that you be physically present to hold your spot in line for the University Health Center. This can be frustrating if you have to go to class, but you need to see a medical professional. We noticed a similar issue in the ER-- there is no way to approximate when it is going to be your turn to see a doctor without asking a staff member who might be busy. At some DMV locations in Texas, people are allowed to hold their spot inline at the DMV online so that they do not have to wait at the DMV for hours(The service would just ask if the user was ready when they reached the front of the virtual line and gave the user the option to delay by a specified amount of time). Having a tool like this for medical facilities would be especially beneficial because it would avoid sick people congregating in waiting rooms while they are waiting for service.
What it does
In theory, the project was supposed to be a Facebook messenger chatbot (made in Dialogflow) that was connected to a queue system that was written in Python and hosted on Google Cloud Platform (GCP). Additionally, the service that was using the chatbot (for example an ER) was supposed to be able to put in their open hours and the average time between people in line being helped. This would be useful for everything from medical locations to restaurants and would eliminate the need for people to physically wait in line for service.
In reality, neither my partner nor I had used GCP or Dialogflow before, and we were unfamiliar with working with APIs. So our project is currently split into 3 parts that don't interact with each other right now:
- A Google Dialogueflow chatbot that works on Facebook Messenger-- It will let you sign up for an appointment, but we could not figure out how to get it to push information to a Python file
- A Python file that uses the Google Calendar API to send invitations to events--It will create a Google calendar event and invite the person who is inline (but it is not connected to anything public facing and it does not keep track of your spot in line)
- A Google Cloud Platform Web App--- the intent was to have it send an email to the person who registered in line, but we keep getting 504 errors when we click on the send email link.
How I built it
The 3 bullet points in the section above describe the order in which we tried to achieve the goal we described.
Challenges I ran into
We were unfamiliar with how to use GCP, Dialogueflow, and APIs, so we spent a lot of time trying to figure out how to work with those tools.
Accomplishments that I'm proud of
-Our chatbot works (Please note that it does not work for non-admin users because Facebook has not approved the chatbot yet)
- We figured out how to push notifications to users via Google Calendar Events -Our Web App exists on GCP
What I learned
-How to use APIs -How to use Python -How to use GCP, Dialogueflow, and the Google Calendar API -Hackathons are super fun
What's next for LineLion
1) Connecting the Chatbot to the Python file 2) Building a logic structure for the queue 3) Allowing service providers to enter their open hours and the average wait time 4) Allowing users to push back their appointment in line 5) Allowing users to set a later appointment or reservation time (even if the queue will not go back that far) 6) Integrating prioritization based on factors other than time (e.g. severity of illness/wounds)