A diagram of the project's technology
Jeffrey Cordero (team member) is from Texas, USA, and was living near Houston during one of the worst floods ever. In 2017, Hurricane Harvey dumped over 1.3 meters of rain (9 trillion gallons) on the city of Houston, causing need for over 13,000 people to be rescued from the flood water. In response, volunteers came from around the country to aid in rescue attempts. However, the best organization for matching volunteers with boats to those in need of rescue were simply volunteers using cellphones and Excel, leading to far from optimal response times. We realized that a computer could easily and quickly organize responders and those in need of rescue and decided to build an easy to use tool for future disasters.
What it does
The chatbot uses natural language processing to understand and interface with users. Using the chatbot, users can register as either 'those in need of rescue' or 'respondents.' The back-end of our tool will grab their information and location from Facebook and connect those in need with the optimally closest respondents. It then provides responders with the names and location of those in need of rescue/support.
How we built it
The chatbot is run on the facebook messenger platform and connected to the node.js server using ngroks tunneling. The chatbot functionality is implemented using the DialogFlow software which allows for natural language processing to grab user intents. The back-end is written in Node.js which is running on an Amazon Web Services EC2 instance as the server. As well, we use a MySQL database running on an AWS RDS instance used to store user info.
Challenges we ran into
We struggled mainly with the use of asychronous code in Node.js. This took up the largest portion of development time and caused for large numbers of bugs. As well, the use of so many APIs caused for some development issues and confusion along the way.
Accomplishments that we're proud of
We are all excited for the fully featured communication provided by the chatbot as it is far more natural than originally expected. As well, in the end we are incredibly proud of the asynch node.js bugs that we were able to solve. Many of these issues required searching through library source code to solve.
What we learned
What's next for Disaster Response Bot
We want to implement the ability to register to donate supplies. The tool will then find the closest supply drop point (like shelters) and alert the user where to bring the supplies. As well, possible future additions include adding pathfinding functionality (specifically in the disaster area) and allowing people to setup new disasters using the chatbot.