/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

Installation

Fork, and clone the repo.

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