EvacuMate

Your only mate that can guess your coordinates.
Team Name: 
SoloBolo

EvacuMate is a friendly Facebook messenger bot, built on a platform that changes how we think about managing natural disasters.

It does this by:

  • Making community members aware of the possibility of a natural disaster and their responsibilities during an evacuation.
  • Helping disaster managers to better plan for and make smart choices during evacuations.
  • Giving the members of community informed options and the ability to establish a direct line of communication.

It's build using javasript in the back and front end. One file is deployed to Heroku and this is the foundation for bot itself which does most of the querying of public APIs. There is another server that maintains and visualises its own JSON data store that contains theoretical information about potential natural disasters like floods, storms and bushfires.

The Heroku bot queries datasets pertaining to Community Centres that are useful for recovery processes an temporary housing, BOM weather warning feeds that provide alerts about potentially dangerous weather, WiFi hotspot locations to get seperated and disconnected people back in contact with eachother, and SES building locations that provide opportunities for volunteering and rescuing during the recovery proccss.

I had a lot of fun with these geographic APIs because it was a bit of a challenge to think of an algorithmic way (in javascript) that I would be able to find the place that is closest to any given location.

The bot takes English phrases like "Adelaide Street" or your home address, converts this information into a GPS coordinate, and determines whether the location you have specified is safe according to a mock database it has maintained.

You can see this database visualised here: http://evacumate.xyz/map.html

And here in raw JSON: http://evacumate.xyz/locations.json

In a real world scenario, this database would be maintained by the people responding to natural disasters, continually being updated with fresh information and tweaked to better reflect the geographical locations that are being affected by the disaster.

This page is also connected to the IAG flood risk database. It which collects samples of coordinates as you move around the page, and over time builds up a heat-map visualisation of areas that it has deemed are at risk during floods.

You can click on the polygons that have been defined in the JSON file and then draw on the map, and a window will pop up providing context to the natural disaster or event that the shape pertains to. This system mirrors the textual information provided by the Facebook messenger bot, and thus it should be used to establish communication with those that need it and are seeking the pairing of textual information with rich interactive media.

Because the bot deals with a number of API sources, it has to interact with them in various ways. Over the course of this project I've learned to deal with JSON, XML, CSV and PSV files within Javascript, which has been a real challenge due to my unfamiliarity and aversion with asynchronous code, but I've really enjoyed the challenge and I'm confident that I've learned a lot because of this choice.

It's also been very interesting building the messenger bot itself. Having a bunch of functions deployed to a 'serverless' environment where I'm not even interacting with the computer fully, let alone the person at the other end, because Facebook acts as a proxy in this circumstance. The most challenging thing about this experience was having to deal with this situation because it is very difficult to debug errors and try new things because there is no way to mirror the way that Facebook was interacting with my bot locally, so debugging relied on deploying the bot and then picking apart the error log afterwards.

I'm very happy with the result I have achieved. I feel like I've accomplished what I set out to do which was to create a novel and usefull application that will actually provide real value during a natural disaster. People are becoming more an more connected to their mobile phones and I think bots like this are of such great use because of how streamlined and to-the-point they are. In what other situation would you be more frustrated by websites that you have to zoom in with your fingers on and click tiny links with. The facebook messenger platform is simple, but powerful in it's ability to deliver information.

I'm also very happy with the way that I leveraged its capabilities https://developers.facebook.com/docs/messenger-platform/. I was able to cover some advanced things like making use of buttons, callbacks and I was able to complete the extremely complicated setup process which is definitely not something I'd recommend to new programmers. Another thing that I'm proud of is that I managed to retain data when it is all too easy to lose it because Javascript is such a funtional language and it can be a big pain point passsing paramaters around all the time. In saying that, if I had a chance to do it again, I'd like to try python on the backend because I feel a bit more comfortable with its more rigid nature.

Video Upload: 
Region: 
Used Datasets: 
Dataset Name: 
Community Halls
Publishing Organisation/Agency: 
Brisbane Lifestyle
Jurisdiction of Data: 
Queensland Government
How did you use this data in your entry?: 
Calculating the closest possible community hall to evacuate to
Dataset Name: 
Queensland Warning Feed
Publishing Organisation/Agency: 
BOM
Jurisdiction of Data: 
Australian Government
How did you use this data in your entry?: 
Reviewing warnings about dangerous weather in order to notify users
Dataset Name: 
Wifi hotspot locations - Libraries and Parks
Publishing Organisation/Agency: 
Brisbane City Council
Jurisdiction of Data: 
Local Government
How did you use this data in your entry?: 
Notifying users of wifi access points, given the possibility that they have lost access at home and need to organise things or contact people
Dataset Name: 
SES building locations
Publishing Organisation/Agency: 
Queensland Fire and Emergency Services
Jurisdiction of Data: 
Queensland Government
How did you use this data in your entry?: 
Notifying users of safe places with resources, as well as where there may be opportunieties to help
Dataset Name: 
IAG Flood Risk Data
Publishing Organisation/Agency: 
IAG
Jurisdiction of Data: 
Non-Government Organisations
How did you use this data in your entry?: 
Used it to create a heatmap that dynamically pointed out at-risk homes whilst browsing the map
Event Location: 
Brisbane Official