In a crisis, the most valuable resource is TIME. Speed of communication is crucial. Even if your response is operationally flawless, it will be perceived always as sloppy if it is slow, inconsistent or not well managed. The response axiom is: 'Speed beats smart'.
In a disaster situation, cellular network is highly affected and becomes spotty. Mobile internet speed drops. Anxious people start making a lot of calls jamming the cellular network. The biggest fear on two ends is losing connectivity with loved ones and what makes it harder is the lack of internet connection.
ResQme is about removing dependence on Internet access over WIFI / mobile data bringing connectivity to the people even with low - power cellular network as it provides rescuing services based on SMS.
What it does
A person who needs help can send a simple SMS to a helpline number stating their problem in short along with their address. The system shows the rescue dispatcher the geo-locations on a map of all people who sent SMS-es. The rescue dispatcher can analyse where to send the rescuers (for example, our autonomous bot).
How we built it
We used the Nexmo API to receive the SMS after which we extract the type of disaster and the address string. We get the latitude and longitude from the address using the MapQuest API. Next, using the ESRI map API, we show location of all the addresses on the ESRI map.
We also used AWS lamba and API gateway to expose rest endpoints.
The rescue party (emulated as a vehicle) has a wifi module that is able to communicate GPS location all the time and so we can track them real-time on the ESRI map. Using the UI dashboard, we can dispatch the bot and see its progress towards the destination on the map.
Getting the hardware to work was our biggest challenge - integrating data communication via bluetooth communication and dynamically updating the dashboard as and when the vehicle moves was our biggest and most time consuming challenge.
We hit some hurdles while trying to integrating ESRI map APIs on the front end- especially with populating text in pop ups and also while parsing text messages received in natural language.
Accomplishments that we're proud of
We managed to get 4 sponsored APIs Integrated - nexmo, esri, mapquest and disaster management related impact through which we learnt a great deal about integrating multiple types of APIs as well as the pros and cons of them.
We managed to get an end to end software product and for most of us, it was the first time to integrate our solution with hardware and have a working prototype with an autonomous vehicle
We also finished integrating our basic webpage with a dashboard template and explored AWS lambda and AWS Gateway API to expose rest endpoints. We also learnt how to use serverless for the purpose of pushing code to aws cloud.
What we learned
We learnt how to integrate multiple components and run a project end to end - we built out a dashboard, rest services, a process to receive text messages and a mongo db persistence layer along with aurdino connection to our autonomous vehicle.
We learnt how to divide a big project into small achievable milestones and delegating equal amount of work to reduce duplication or blockers for any person in the team.
We also learnt how to find "hacks" and workarounds for problems that give us solutions as quickly as possible - we got better at optimizing our work besides our algorithms :)
What's next for ResQme
Using text sentiment analysis to analyse distress level in free text so that the map can assign the priority to each victim. This can be used to prioritize rescue dispatches.
We also want to add voice call feature apart from texting for help.
Eventually we would like our vehicle to be not just a dispactcher for people in need but also as a supplier of commodities all the way from food to wifi connectivity by bringing wifi to their geolocation.