Development

Setup

git clone https://github.com/pyobs/pyobs-web-admin.git
cd pyobs-web-admin
uv sync
uv run python manage.py runserver

See Installation for the full development setup, and Configuration for local_settings.py.

Tests

uv run python manage.py test modules

Tests live in modules/tests.py using plain unittest.TestCase, not Django’s TestCase – this app has no database to wrap in transactions (sessions are signed cookies, see Architecture), so the extra machinery Django’s test case provides doesn’t apply here.

Design docs

Non-trivial features get a short design document at the repository root before implementation (DEV_ACL_MATRIX.md, DEV_EJABBERD_INTEGRATION.md, DEV_EJABBERD_USER_MANAGEMENT.md, DEV_JOURNALD_LOGS.md), each following the same shape: Status, Motivation, Current state, Design, Open questions, Work Plan. DEVELOPMENT.md is the index pointing at each one plus a running list of not-yet-designed ideas. These are implementation journals aimed at whoever picks the feature back up, not end-user documentation – the Features pages in this manual (Dashboard and module detail onward) are the distilled, current-state version of what shipped from each of them.