Skip to content

MUSA-620-Fall-2019/philadelphia-shootings-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exploring Recent Shootings in Philadelphia

This repository includes two example dashboards exploring recent shootings in Philadelphia, using the City of Philadelphia's open data on shooting victims.

Each dashboard includes a slider widget that allows the user to specify how many days into the past to display.

Example #1

This dashboard includes:

  • an Altair bar chart showing the top 20 neighborhoods with the most shootings
  • a choropleth map (made with hvplot) that shows the number of shootings per neighborhood.

The app can be launched on Binder using the "Launch Binder App" button below. The notebook can be viewed on Binder using the "Launch Binder Notebook" button.

badge badge

Example #2

This dashboard includes:

  • an Altair bar chart showing a histogram of the age of shooting victims, colored by fatal vs. non-fatal shootings
  • a Folium heatmap of the shootings across the city
  • an hvplot line chart showing the daily number of shootings, which can be filtered to view data for a specific time period

The app can be launched on Binder using the "Launch Binder App" button below. The notebook can be viewed on Binder using the "Launch Binder Notebook" button.

badge badge

The app has also been deployed on Heroku: https://philadelphia-shootings.herokuapp.com/

dashboard screenshot

Deploying this app on Heroku

Heroku makes deployment of arbitrary apps including Panel apps and dashboards very easy and provides a free tier to get you started. This makes it a great starting point for users not too familiar with web development and deployment.

To get started working with Heroku signup for a free account and download and install the CLI. Once you are set up follow the instructions to log into the CLI.

  1. Add a "requirements.txt" file to your dashboard's repository that includes all of the requirements for your project. These will be installed using pip on Heroku.

  2. Add a Procfile file to your repository, which declares which command Heroku should run to serve the app. In this repository, the following command serves the app2.ipynb example and the websocket origin should match the name of the app on Heroku app-name.herokuapp.com which you will declare in the next step:

web: panel serve --address="0.0.0.0" --port=$PORT app2.ipynb --allow-websocket-origin=app-name.herokuapp.com

In this repository, I have specified "app-name" as "philadelphia-shootings" but you should replace your "app-name" with whatever you want yours to be.

  1. Create a heroku app using the CLI ensuring that the name matches the URL we declared in the previous step:
heroku create app-name

Again, "app-name" should be whatever you chose in the last step.

  1. Push the app to heroku and wait until it is deployed. From the main folder of your repository, run the following command from the command line:
git push heroku master
  1. Visit the app at app-name.herokuapp.com

Releases

No releases published

Packages

No packages published