Skip to content

OperationCode/back-end

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ed1cd14 · Apr 2, 2021
Feb 15, 2020
Jun 13, 2020
Jun 12, 2019
Jun 13, 2020
Jun 13, 2020
May 23, 2019
Feb 15, 2020
May 30, 2019
May 12, 2019
May 21, 2019
May 31, 2019
May 31, 2019
May 16, 2019
May 26, 2019
Feb 24, 2020
Dec 17, 2020
Feb 15, 2020
Jun 13, 2020
Jun 13, 2020
Jun 3, 2019

Repository files navigation

Operation Code Logo

License: MIT Twitter Follow Code-style: black

CircleCI Maintainability Test Coverage Dependabot Status

Welcome!

This is the back-end application for OperationCode. We highly recommend joining our organization to receive an invite to our Slack team. From there, you'll want to join the #oc-python-projects and #oc-projects channels. You can get help from multiple professional developers, including people who have worked on the application since day 1!

Before contributing, please review our Contributing Guide

Maintainers

For information about the maintainers of the project, check out MAINTAINERS.md.

Quick Start

Recommended versions of tools used within the repo:

  • [email protected] or greater (in some environments, you may need to specify version of python i.e. python test.py vs python3 test.py))
  • [email protected] or greater
  • [email protected] or greater
    • Poetry is a packaging and dependency manager, similar to pip or pipenv
    • Poetry provides a custom installer that can be ran via curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
    • Alternatively, poetry can be installed via pip/pip3 with pip install --user poetry or pip3 install --user poetry
    • See https://poetry.eustace.io/docs/
# Install dependencies (ensure poetry is already installed)
# if you are encountering an error with psycopg2 during poetry installation, ensure postgreqsql is installed (macOS: brew install postgresql)
poetry install

# Create database
# By default this creates a local sqlite database and adds tables for each of the defined models
# see example.env for database configurations
poetry run python src/manage.py migrate

# Create a superuser to add to the new database
poetry run python src/manage.py createsuperuser 

# Run local development
poetry run python src/manage.py runserver

# Run testing suite
poetry run pytest

# Run formatting and linting
poetry run black .
# the next line shouldn't output anything to the terminal if it passes
poetry run flake8
poetry run isort -rc .

Running Bandit

Bandit is a tool designed to find common security issues in Python code.

From within the back-end/ directory you can run the following Bandit command:

  • bandit -r . runs all bandit tests recursively with only filters defined in the .bandit file.