Inspiration
The time it takes from the moment a crime is happening to the moment the public is aware of it, usually ranges from 5-10 minutes. We believe that in the 20th century, this is an exorbitant amount of time, and we can do better. We want to cut the middle-man out between a crime happening, and other people knowing about it. Regardless of the crime being large (like robbery, murder, amber alert), or small (like suspicious activity, groping), we want people to know and be updated and know about these crimes when they're happening. There are currently some open and available applications that let you query public crime data, but they don't provide good visualizations and heat maps. Our goal is to solve these problems and create an application in which users can provide evidence of a crime happening when it's happening, and other users are able to interact within seconds.
What it does
When you open up the application, you're presented with a screen that shows you the latest updates of crime on the left side of the screen, and a map of the recent crimes that have been documented by using the data from dataGNV, which is a public dataset of crimes in the Gainesville region. With this view, you're able to see where recent crimes have been committed in real-time by the heat map, and also a list of the crimes so that you're able to filter through them. In addition, you're also able to report a crime, and your location, time, and description of the crime is immediately uploaded and displayed to the public.
How we built it
The Front End of the App is built using React TypeScript Components. We used the Google Maps API to render a map view based on user location and implemented visual markers to pinpoint coordinates of incident data. A side panel shows details about the selected incident.
The Back End was implemented via Node.js and Express.js. We used Google Cloud Firestore for storing the crowd-sourced incident report data. We designed the controller, routes architecture of the application and queried the criminal records from dataGNV (https://data.cityofgainesville.org/)
Challenges we ran into
The first major challenge was finding a reliable dataset of the criminal records in Gainesville. We found a couple of sources, but they were private and we had to pay for the data. Additionally, at times we got stuck on implementing proper React workflows within our components, especially when stitching together detail cards and map markers. We also ran into trouble while trying to implement the Google Cloud architecture, but we managed to make sure that the project is able to sync up to it. We also weren't able to get the discount code working for domain.com but we registered www.gethellaupdatesontheswamp.com Another feature we really wanted to implement was incident related image uploading, but we ran into time and tech constraints and instead used relevant icons to represent the data. In terms of non-technical challenges, we first struggled to narrow the scope of the project, and we couldn't find a niche. We didn't really know what to do apart from just visualizing open data, so we decided to work on the crowd-sourced aspect of the crime information. Another non-technical challenge was just staying up.
Accomplishments that we're proud of
The largest accomplishment is that we have a functioning application that achieves the goal we started with. We are immensely pleased we were able to complete the base features of the application, which were focused around showing a visual representation of crime and issues around a user's location.
What we learned
We learned how to work better as a team, split tasks up, write clean code, stay up, and learned how to improvise when things turn out to be more difficult. We also learned how to interact with custom components on Google API, using Firestore for data operations and using React Hooks.
What's next for SwampAlert
We would like to expand it to other cities and places outside of Gainesville as well. We would also like to make sure that the application is converted to a PWA (progressive web app) so that it's easier to use on mobile phones. Additionally, adding an upVote and downVote feature would help make sure the platform isn't abused (such as targeting innocent minorities)

Log in or sign up for Devpost to join the conversation.