diff --git a/CONTRIB.md b/CONTRIB.md index 31604185a..95f0270b3 100644 --- a/CONTRIB.md +++ b/CONTRIB.md @@ -29,8 +29,11 @@ with the password `terriblepassword`. For the webapp, the credentials for the testing/development environment are expected to be in a file `$PGPASS`, so set that up: `echo "localhost:5432:openoversight-dev:openoversight:terriblepassword" >> ~/.pgpass` + `echo "export PGPASS=~/.pgpass" >> ~/.bashrc` +`source ~/.bashrc` + In the `/vagrant/OpenOversight` directory, there is a script to create the database: `python create_db.py` @@ -59,4 +62,4 @@ If you e.g. add a new column or table, you'll need to migrate the database. You `python migrate_db.py` to do this. -`python upgrade_db.py` and `python downgrade_db.py` can also be used as necessary. Note that I followed [this tutorial](http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database) to set this up. \ No newline at end of file +`python upgrade_db.py` and `python downgrade_db.py` can also be used as necessary. Note that I followed [this tutorial](http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database) to set this up. diff --git a/DEPLOY.md b/DEPLOY.md index a2474f191..60db06097 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -75,7 +75,8 @@ SECRET_KEY = 'changemeplzorelsehax' # Systemd -You can write a simple systemd unit file to launch OpenOversight on boot. We defined ours in `/etc/systemd/system/openoversight.service`. You should create the proper usernames and groups that are defined in the unit file since this allows you to drop privileges on boot. This unit file was adopted from this [DigitalOcean guide](https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-centos-7). +You can write a simple systemd unit file to launch OpenOversight on boot. We defined ours in `/etc/systemd/system/openoversight.service`. You should create the proper usernames and groups that are defined in the unit file since this allows you to drop privileges on boot. This unit file was adopted from this [DigitalOcean guide](https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-centos-7). We define a static environment variable called `PGPASS` which is loaded by systemd before it drops priviledges for ngingx. More details can be found in `CONTRIB.md`. + ``` [Unit] Description=Gunicorn instance to serve OpenOversight @@ -84,9 +85,10 @@ After=network.target [Service] User=nginx Group=nginx -WorkingDirectory= /home/nginx/oovirtenv/OpenOversight/OpenOversight +WorkingDirectory=/home/nginx/oovirtenv/OpenOversight/OpenOversight Environment="PATH=/home/nginx/oovirtenv/bin" -ExecStart=/usr/local/bin/gunicorn -w 4 -b 127.0.0.1:4000 app:app & +Environment="PGPASS=~/.pgpass" +ExecStart=/usr/local/bin/gunicorn -w 4 -b 127.0.0.1:4000 app:app [Install] WantedBy=multi-user.target diff --git a/OpenOversight/app/static/images/placeholder.png b/OpenOversight/app/static/images/placeholder.png new file mode 100644 index 000000000..aab979448 Binary files /dev/null and b/OpenOversight/app/static/images/placeholder.png differ diff --git a/OpenOversight/app/static/images/twitterfavicon.ico b/OpenOversight/app/static/images/twitterfavicon.ico new file mode 100644 index 000000000..b6dbef465 Binary files /dev/null and b/OpenOversight/app/static/images/twitterfavicon.ico differ diff --git a/OpenOversight/app/static/theme.css b/OpenOversight/app/static/theme.css index 25c15dfcf..8c4961811 100644 --- a/OpenOversight/app/static/theme.css +++ b/OpenOversight/app/static/theme.css @@ -17,3 +17,6 @@ body { width: auto; } +.glyphicon { + font-size: 30px; +} \ No newline at end of file diff --git a/OpenOversight/app/templates/about.html b/OpenOversight/app/templates/about.html index 1e872a895..2eaef31db 100644 --- a/OpenOversight/app/templates/about.html +++ b/OpenOversight/app/templates/about.html @@ -3,13 +3,14 @@

About OpenOversight

-

OpenOversight is an accountability platform for helping the public identify police officers for the purpose of filing complaints. We rely on crowdsourced and public data to build a database of police officers in a city, allowing the public to filter through the dataset to find the name and badge number of the offending officer.

- +
+

In support of demands for greater police accountability in Chicago and nationwide, Illinois nonprofit The Lucy Parsons Labs launched OpenOversight an interactive web tool that makes it easier for Chicago residents to file complaints against police officers. OpenOversight is an accountability platform for helping the public identify police officers for the purpose of filing complaints. We rely on crowdsourced and public data to build a database of police officers in a city, allowing the public to filter through the dataset to find the name and badge number of the offending officer.

+

Using OpenOversight, members of the public can search for the names and badge numbers of Chicago police they have negative interactions with based on where that interaction took place and the officer's estimated age, race and gender. Using this information, the OpenOversight web application returns a digital gallery of potential matches and, when possible, includes pictures of officers in uniform to assist in identification. "The deck is stacked against people harmed by Chicago police," says Jennifer Helsby, CTO of the Lucy Parsons Labs and lead developer on the OpenOversight project. "Despite a long history of proven abuses, including torture, Chicago police are almost never held accountable for misconduct or crimes they commit. To file a misconduct complaint, the burden is on the public to provide as much detailed data about the officer as possible. OpenOversight aims to empower Chicagoans with tools that make it easier to identify officers and hold them accountable."


Facts and Figures about Chicago Police Department:

@@ -28,6 +29,8 @@

About OpenOversight

To review, an image is one that we have collected or have been given that may contain police officers - it could contain many police officers. A “tag” is what we call when a volunteer looks at that image, can read the badge number(s) or name(s) in that image and and thus can associate an officer in the database (name and badge number) with a face in the image. There may be many tags for a given image if there are many officers in the image.

+

OpenOversight is the first project of its kind in the United States and is a direct response to the failure of Chicago's leaders to take proactive steps that allow the public to identify and report problem police officers. OpenOversight is released as free and open source software so others can launch similar police accountability projects in their own cities. The software is available for download on GitHub. +

{% endblock %} diff --git a/OpenOversight/app/templates/base.html b/OpenOversight/app/templates/base.html index a8e615ed1..b08f4faa0 100644 --- a/OpenOversight/app/templates/base.html +++ b/OpenOversight/app/templates/base.html @@ -75,11 +75,24 @@