Skip to content
Snippets Groups Projects

AURA Steering: Program Scheduler

AURA Steering is the scheduling module, where the actual program schedule of the whole station is stored as well as all infos regarding single shows and emissions.

It also acts as an OpenID Connect provider for dashboard and tank.

Installation

Follow the instructions to deploy AURA Web from the Docker Compose Installation

If you just want to try steering locally, use the provided compose setup and be sure to add:

AURA_PROTO=http

to the .env file.

A better development setup for steering, that pulls the docker images for dashboard, dashboard-clock and tank from Docker Hub, builds the image for steering locally and exposes the ports can be achieved with docker-compose.steering.yml by adding this lines to the end of the .env file:

STEERING_VERSION=local
TANK_VERSION=unstable
DASHBOARD_VERSION=unstable
DASHBOARD_CLOCK_VERSION=unstable
COMPOSE_FILE=docker-compose.yml:docker-compose.steering.yml

Testing

If you want to run the test suite, you can run pytest in the container:

$ docker compose run steering poetry run pytest

Installation and execution with Poetry

If you really don't want to use Docker, you can install and run steering using Poetry using SQLite.

Refer to the documentation on how to install Poetry.

First, install all the dependencies for the project:

$ poetry install --no-root

Then, you can set up the database:

$ poetry run ./manage.py migrate

And, load the fixtures:

$ poetry run ./manage.py loaddata fixtures/*/*.json

Then, you can create an RSA Key and the clients for dashboard and tank:

$ poetry run ./manage.py creatersakey
$ poetry run ./manage.py create_oidc_client dashboard public -r "id_token token" -u http://localhost:8080/oidc_callback.html -u http://localhost:8080/oidc_callback_silentRenew.html -p http://localhost:8080/
$ poetry run ./manage.py create_oidc_client tank confidential -r "code" -u http://localhost:8040/auth/oidc/callback

Finally, you can start the development server:

$ poetry run ./manage.py runserver

Data Model

A visualization of the data model can be generated using the Graph Models Django Extensions

The following command will generate an image out of the models:

docker compose steering run poetry run ./manage.py graph_models --pydot -g -o steering_data_model.png program profile