Simple inconveniences like power outages and road blocks should not be a burden to any of us. A few days ago, there was a power outage near our houses. Because of the lack of communication to Cupertino's residents, we had no idea when, or even if, the power would return. This inspired us to create a more efficient, quick way of sending out messages and answering questions that would better inform the community we live in.
What it does
Our Project is composed of three parts:
Facebook Chat Bot - Users can send problems they see in the city (i.e There is a fallen cell phone tower on a street they were driving on) to the Chat Bot, as well as receive updates about the city. They can also ask questions about the city through the bot.
Cupertino Admin Panel - Cupertino officials can view all the information that users have sent from the facebook bot on the web panel. After confirming the existence of reported problems, admins can push emergency notifications as well as answer users' questions, all this information will be pushed to the iOS App.
iOS App - Cupertino residents can view the curated information from the Cupertino admin panel in an easy-to-read feed. They can also view all the locations that have reported dangers or threats in the map view and click on map markers for more information. Users will be alerted if they move closer towards a marker on the map, so users do not need to constantly check their phone to see how close they are to a potentially dangerous location. Another tab on the app has answers to common users' questions compiled from the chat bot.
How we built it
We used Node.js and the facebook chat API to build the chat bot, and create the system that pushes users' information and questions to a firebase. The webpage uses jQuery to pull the data from the firebase and display it for the city officials to view. We also used jQuery for the officials to push notifications and answers back to the firebase for the ios platform to pull from. We used the Google Maps SDK, Xcode, and Swift to create the iOS app.
Challenges we ran into
We had trouble dealing with GeoLocations and the autofill feature for the Google Maps Web API. We also spent a lot of time figuring out how to alert the user if they came close to a marker on the map.
Accomplishments that we're proud of
Our entire iOS app and chatbot update almost immediately after the web panel pushes. This includes the maps on our graph, meaning that residents will get extremely fast updates, making more residents aware of the situation as soon as possible. We also are proud of being able to figure out the various location features in Google Maps, and fixing the many errors that came with them.
What we learned
We learned the various features of the Google Maps SDK as well as the Google Maps API for the web. We also learned how to integrate Firebase across multiple platforms, including our web panel, iOS App, and Facebook Chat Bot.
What's next for Cupertino InstantAlert
We want to expand this product to the entirety of the Cupertino area, so that everyone in our community is well-connected and is aware of the potential dangers and threats in the city. This way everyone can be safe and plan accordingly with the information that they will acquire through our app.