Giter Club home page Giter Club logo

philadelphia-shootings-app's Introduction

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.

Launch instructions

  • 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

App #1 Dashboard

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

Launch instructions

  • 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/

App #2 Dashboard App #2 Dashboard

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. Log in to heroku on the command line by running heroku login. This should prompt you to open a browser and you can log in with your credentials.

  2. Add a "runtime.txt" file that has the name of the Python version you wish to use. To match the Python version used in this class, add a single line with the text "python-3.8.10".

  3. 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.

  4. 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
  1. Visit the app at app-name.herokuapp.com

philadelphia-shootings-app's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.