The theme for this year was natural disaster relief. The goal of our project was to create a proof of concept for finding missing persons in a natural disaster. Ultimately we had the goal of combining GPS tracking and the use of google nearby API to narrow down the location of missing people to within 5-10 meters, reducing the time needed to search for missing people. The purpose was also intended to be a way to keep track of who did make it out of the disaster safely. In the end we only had time to complete the GPS logging feature, which in itself could still be invaluable to search and rescue efforts.
What it does
When the server of a local area is activated due to an emergency situation, those who activate their app will begin transmitting their GPS data back to the server where the server will store the full name of the civilian as well as the last 10 GPS coordinates where they were located. The app also provides a way for the civilian to notify the server that they have reached safety and are not in need of rescue.
How I built it
The app was created in Android Studio and uses http requests to the server to communicate information back and forth. The server was created using mongodb and spring.
Challenges I ran into
During the early stages of the app it was difficult to plan when the phone and server would need to communicate to keep traffic between the server and individuals at a minimum. The largest challenge was that there were simply too many lines of code to write over 36 hours for us to create the full functionality that we envisioned. Our final problem was an issue with GitHub which did not allow us to push our code correctly to the platform which made collaboration difficult.
Accomplishments that I'm proud of
The ability for the app to transmit it's location as well as unique identity to the server is something I am proud of. I think that the ability to record the GPS coordinates of missing persons during a natural disaster has the potential to save lives, and I think this proof of concept shows that such a system could exist.
What I learned
Before the project began I had little experience with databases or doing http requests, but I have learned a lot about both. I am also familiar with Android, however this project introduced some issues with concurrency which made things a little more interesting.
What's next for Project Vigilant
Our original design included two versions of the app, one for civilians which we finished, and another for responders. The responders version of the app would be designed for those searching the disaster zone to view the last locations of missing persons and then also broadcast a Google Nearby signal. Google Nearby is special in that in only requires that two phones have the means to connect by some network, and Nearby will work out a connection. The range is also ~100 meters or so which we figured would be reduced in disaster situations, but because GPS has an accuracy of 10-20 meters, that Nearby can bridge the gap between GPS and the actual location of an individual. Once the two phones connect, the responders could trigger a civilians phone to make a noise or a ping. This could aid in finding those survivors who have fallen unconscious but still have an active phone. We also think it is possible that with the right permissions that the app could be activated remotely through a special service or maybe even by telephone and would not require any kind of input from a civilian but would act as a kind of collective reverse 911 that enables all smartphones to become a way to keep track of survivors in a disaster scenario with out having to worry about how many people own the app or actually turn it on.