Inspiration
The recent string of laptop thefts at Duncan College motivated our team to provide students a window into the incidents reported on campus, since the current RUPD incident log can be hard to interpret and contextualize. As a result, we wanted to develop an app that could increase the accessibility and transparency of the RUPD log while helping people make informed decisions regarding their safety and personal belongings.
What it does
Our incident visualizer allows users to view a heat map of all reported incidents on campus and filter by various criteria. We also provide a variety of useful charts and information to help contextualize when and where incidents occur.
How we built it
Our app uses a Django backend and HTML, CSS, JavaScript, and Bootstrap for the frontend. For scraping data we made use of Python's built-in request library and Pandas to interpret the data. The Google Maps API was used to embed a heat map. For data visualization we made use of the seaborn library for Python.
Challenges we ran into
One of our biggest challenges was on the frontend regarding embedding and customizing the heat map in our webpage; none of our team had worked with the Google Maps API before, so setting it up was a struggle. Getting our Python data parsing functions to produce filters usable in the JavaScript API files was difficult as well.
Accomplishments that we're proud of
We're proud of successfully utilizing Python data science tools to manipulate the Google Maps JavaScript API through the Django framework.
What we learned
We learned how to use the Google Maps API, Django, Pandas more effectively. We also gained an improved understanding of data visualization techniques and web scraping.
What's next for RUPD Incident Visualizer
The biggest strength of our project is its versatility: not only it is easily extendible to work for other universities that have similar incident data available, it can also be used for different kinds of datasets, such as foot traffic across campus, which can then be interpreted in various ways (e.g. when and where live events are, best servery options, etc.). There is also untapped potential regarding much more specific criteria for heat map filters; for instance, we plan to add improved filtering as well as dynamic time ranges.
Log in or sign up for Devpost to join the conversation.