Given the ongoing effects of COVID-19, we know lots of people don't want to spend more time than necessary in a hospital. We wanted to be able to skip a large portion of the waiting process and fill out the forms ahead of time from the comfort of our home so we came up with the solution of HopiBot.
What it does 📜
HopiBot is an accessible, easy to use chatbot designed to make the process of admitting patients more efficient — transforming basic in person processes to a digital one, saving not only your time, but the time of the doctors and nurses as well. A patient will use the bot to fill out their personal information and once they submit, the bot will use the inputted mobile phone number to send a text message with the current wait time until check in at the nearest hospital to them. As pandemic measures begin to ease, HopiBot will allow hospitals to socially distance non-emergency patients, significantly reducing exposure and time spent around others, as people can enter the hospital at or close to the time of their check in. In addition, this would reduce the potential risks of exposure (of COVID-19 and other transmissible airborne illnesses) to other hospital patients that could be immunocompromised or more vulnerable.
How we built it 🛠
We built our project using HTML, CSS, JS, Flask, Bootstrap, Twilio API, Google Maps API (Geocoding and Google Places), and SQLAlchemy. HTML, CSS/Bootstrap, and JS were used to create the main interface. Flask was used to create the form functions and SQL database. The Twilio API was used to send messages to the patient after submitting the form. The Google Maps API was used to send a Google Maps link within the text message designating the nearest hospital.
Challenges we ran into ⛈
- Trying to understand and use Flask for the first time
- How to submit a form and validate at each step without refreshing the page
- Using new APIs
- Understanding how to use an SQL database from Flask
- Breaking down a complex project and building it piece by piece
Accomplishments that we're proud of 🏅
- Getting the form to work after much deliberation of its execution
- Being able to store and retrieve data from an SQL database for the first time
- Expanding our hackathon portfolio with a completely different project theme
- Finishing the project within a tight time frame
- Using Flask, the Twilio SMS API, and the Google Maps API for the first time
What we learned 🧠
Through this project, we were able to learn how to break a larger-scale project down into manageable tasks that could be done in a shorter time frame. We also learned how to use Flask, the Twilio API, and the Google Maps API for the first time, considering that it was very new to all of us and this was the first time we used them at all. Finally, we learned a lot about SQL databases made in Flask and how we could store and retrieve data, and even try to present it so that it could be easily read and understood.
What's next for HopiBot ⏰
- Since we have created the user side, we would like to create a hospital side to the program that can take information from the database and present all the patients to them visually.
- We would like to have a stronger validation system for the form to prevent crashes.
- We would like to implement an algorithm that can more accurately predict a person’s waiting time by accounting for the time it would take to get to the hospital and the time a patient would spend waiting before their turn.
- We would like to create an AI that is able to analyze a patient database and able to predict wait times based on patient volume and appointment type.
- Along with a hospital side, we would like to send update messages that warns patients when they are approaching the time of their check-in.