/recordexpungPDX

A project to automate expunging qualifying criminal records. This project is done in conjunction with the Multnomah County Public Defender's Office.

Primary LanguagePython

recordexpungPDX

A project to automate expunging qualifying criminal records. This project is done in conjunction with the Multnomah County Public Defender's Office.

Waffle.io - Columns and their card count

Build Status

Installation

Fork, and clone the repo.

to install the latest version of python on mac run:

brew install python3

note: this will pull the latest version of python, so when python 3.8 or greater is released it will install that version,

to install python3.7 on ubuntu 18.04 just run the command:

sudo apt-get install python3.7 -y 

to install python3.7 on ubuntu 16.04 follow the instructions here

Install Pipenv

  • Install the pipenv package manager which also automatically creates and manages virtual environments.

A Makefile controls installing dependencies, running the Flask app, and removing build artifacts:

  • Install dependencies:

Running:

$ make install

will read Pipfile and install listed Python packages into a Pipenv virtualenv.

  • Run Flask app (also installs dependencies):

Running:

$ make run

will run the Flask app inside a Pipenv virtualenv.

  • Clean:

Running:

$ make clean

will remove build artifacts.

Testing

Currently using pytest for testing.
Run all tests with the following command:

$ make test

Project Layout

.flaskenv: Environment variables read by flask command-line interface via python-dotenv

Makefile: GNU Makefile controlling installing dependencies and running the application

Pipfile: Pipenv file listing project dependencies

config: Project configuration files

doc: Developer-generated documentation

settings.py: python-dotenv configuration file

src: Source dir

src/backend/expungeservice/app.py: Flask application `

Contributing

  1. Fork the repo on GitHub
  2. Clone the project to your own machine. Replacing YOUR-USERNAME with your github username.
 $ git clone https://github.com/YOUR-USERNAME/recordexpungPDX.git
  1. cd into recordexpungPDX
 $ cd recordexpungPDX
  1. Configure upstream to sync with your fork
 $ git remote add upstream https://github.com/CodeForPortland/recordexpungPDX.git
  1. Create a branch to work on. Replacing BRANCH_NAME with a descriptive name of the work planned such as update_contributing_doc
  $ git checkout -b BRANCH_NAME
  1. Commit changes to your branch (never to master)
  2. Push your work back up to your fork
  $ git push
  • NOTE: The first time you do git push on your branch it will error with:
 fatal: The current branch BRANCH_NAME has no upstream branch.
 To push the current branch and set the remote as upstream, use

     git push --set-upstream origin BRANCH_NAME
  • Copy the output and run it. Then afterwords simply push more commits by running git push.
  1. Submit a Pull request
  • NOTE: For future contributions be sure to sync master with upstream
  $ git checkout master
  $ git pull upstream master
  $ git checkout -b BRANCH_NAME

License

TODO: Add license