In Atlanta, there are a lot of places where passersby can be harassed by homeless people or mugged by others. Some people just don't know about these places and less bad things can happen to people if they were aware of this.
What it does
Be Wary provides a crowd-sourced map of all of the sketchy places in town, along with comments and ratings so that users can be aware of any unsafe places that they might wander into. And If they do wander around there, the app will alert them that they are heading near an unsavory area and will suggest another route to them. Users can also contribute to the effort and identify unsafe places in the app. This app gives many people the awareness that they would otherwise not have and help them avoid unfortunate things happen to them.
How I built it
I build this with my friend Luis. It's an Android app the interacts with a Parse backend. The entire project is in Java. We used Google's Maps API to render maps and their Shapes API to mark areas that are be unsafe. We followed a lot of Google's material design guidelines so that the app could look as best it could - almost all UI elements come from google's design library.
Challenges I ran into
We ran into a lot of problems with first hooking up to Google's API and wiring up the backend. In order to use Google's Location API (not maps), you need to register a client key and connect it. Figuring out this step took at least 3 hours of tinkering and hacking, but, with the help of a Facebook engineer, we were able to overcome that. We also has trouble with the backend - we tried using JDBC to connect directly to a MySQL database that sat on Microsoft's AZURE platform. We ran into problems because Android does not support JDBC, so it had scarce documentation and was very buggy. Even with the help of a Google Engineer, we had to switch platforms. We had already spent so much time setting everything up for mysql, so we had to quickly find a new platform. We settled on Parse because it was quick and we had resources to help us learn.
Accomplishments that I'm proud of
I'm very proud of the aesthetic design of the app as well as the code architecture. I feel that it is very well built, even though code for hackathon projects devolve quickly through the hackathon. Naming conventions were consistent, services were decoupled, views were separated from logic. It's better than any of my other hackathon projects. I'm also very proud of the design too. I don't consider myself a designer, but sometimes my interfaces look really good: this is one of those times. The colors and other design decisions I chose went seamlessly together and gives a very good user experience.
What's next for Be Wary
The next thing for Be Wary is adding a lot more and better animations. That will make the UX feel more complete. We also have to complete the backend - we will probably switch from Parse to our own Python API. We will look into submitting it to Code For Atlanta (the civic hacking group in Atlanta) and see if the members there would like to contribute and make the app better, faster.