As Berkeley students, safety is our number one concern when walking back to our dorms late at night. Numerous students utilize tools such as BearWalk or call public transport to their location. However, many students still face issues from individuals on the street through forms of harassment, assault, robbery, and general suspicion. We wanted to create a service that enables students to report incidents on campus by marking the location of where it happened, making routes safer for future students to take.
What it does
We took the old proverb "prevention is better than cure" to the streets of San Francisco as we developed SafeRoutes, an iOS application that utilizes open source crime information from DataSF alongside crowd-sourced reports from individuals to create better, safer routes from one destination to another. Users who witness an incident can quickly report the location and category of the incident through 4 generalized situations: Harassment, Assault, Robbery and General Suspicion. Users can also view a list of the most recent incidents reported to understand what's going around them. Through Google Autocomplete, users can select a destination to get a route generated to. Once the better, safer route has been generated from our backend, the iOS renders the polyline on the map interface for users to follow.
How we built it
SafeRoutes is a front-end iOS Application with a Flask/Python backend utilizing Firebase as our database. We implemented the Google Maps SDK and Google Places SDK in our iOS Application, as well as custom polylines for the user to follow. Taking data from SFData, we parsed through 170,000 data points of crimes in SF creating a heatmap of likely conflict areas in the city. Similarly from SFData, we parsed through every possible street intersection of San Francisco, creating a graph of all the nodes and their connecting intersections. We ultimately ran Djikstra's algorithm on this graph going from the user's current location to their destination, utilizing both SFData crimes and user-generated incidents to impact the cost of each node in the algorithm. We also implemented a web interface with ESRI to demonstrate the working of the algorithm and the result of the SFData we parsed.