Skip to content

🔥 Diablo supports UC Berkeley's Course Capture service

License

Notifications You must be signed in to change notification settings

ets-berkeley-edu/diablo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diablo

Diablo supports UC Berkeley's Course Capture service.

A house in Georgetown, DC

Installation

  • Install Python 3.9
  • Create your virtual environment (venv)
  • Install dependencies
pip3 install -r requirements.txt [--upgrade]

Front-end dependencies

nvm use
npm install

Create Postgres user and databases

Picture of the demon Pazuzu, brother of Humbaba and son of the god Hanbi.

createuser diablo --no-createdb --no-superuser --no-createrole --pwprompt
createdb pazuzu --owner=diablo
createdb pazuzu_test --owner=diablo

# Load schema
export FLASK_APP=application.py
flask initdb

Create local configurations

If you plan to use any resources outside localhost, put your configurations in a separately encrypted area:

mkdir /Volumes/XYZ/diablo_config
export DIABLO_LOCAL_CONFIGS=/Volumes/XYZ/diablo_config

Run tests, lint the code

We use Tox for continuous integration. Under the hood, you'll find PyTest, Flake8 and ESLint. Please install NPM dependencies (see above) before running tests.

# Run all tests and linters with Tox's parallel mode:
tox -p

# Pytest
tox -e test

# Run specific test(s)
tox -e test -- tests/test_models/test_foo.py
tox -e test -- tests/test_externals/

# Linters, à la carte
tox -e lint-py
tox -e lint-vue

# Auto-fix linting errors in Vue code
tox -e lint-vue-fix

# Lint specific file(s)
tox -e lint-py -- scripts/foo.py