Workflow Support System for managing video shooting, filming and live-streaming requests of Budavári Schönherz Stúdió.
The project is a monorepo made up of two deployable applications backed by PostgreSQL and Redis:
| Component | Stack | Description |
|---|---|---|
backend |
Django, Django REST Framework, Celery, PostgreSQL | REST API, business logic, admin panel and async workers. |
frontend |
React, TypeScript, Tailwind CSS, shadcn/ui, PrimeReact, TanStack Query | Public site where users submit and follow up requests, and the admin dashboard for staff. |
The frontend is a static build served by the backend in production (through WhiteNoise). Authentication is handled via OAuth2 (AuthSCH, BSS Login, Google, Microsoft) with a session cookie.
flowchart TD
frontend["frontend<br/>(public site + admin)"] -->|REST · session| backend
backend["backend<br/>(Django + Celery)"] --> postgres[("PostgreSQL")]
backend --> redis[("Redis")]
.
├── backend/ Django REST API, Celery workers, admin panel
├── frontend/ Public site and admin dashboard (Vite, TypeScript)
├── .devcontainer/ VS Code dev container (Python + Node + uv)
├── docker-compose.dev.yaml PostgreSQL + Redis for local development
└── docker-compose.yaml Full production-like stack
The fastest way to get a complete toolchain is the dev container, which provisions Python, Node and uv and starts PostgreSQL + Redis automatically.
- Install Docker Desktop and the VS Code Dev Containers extension.
- Open the repository in VS Code and run Dev Containers: Reopen in Container.
- Once the post-create step finishes, the
.envfiles exist and the database is migrated and filled with test data. Run the apps, then log in as the test admin withuv run python manage.py dev_session admin.aladarinbackend/(see Test data).
Windows + WSL: if the container fails to start with a
distro-services/<distro>.sock: no such fileerror, enable Docker Desktop → Settings → Resources → WSL Integration for your distro (e.g.Debian).
Start the infrastructure, then follow each component's README:
docker compose -f docker-compose.dev.yaml up -d --wait # PostgreSQL + RedisThe backend setup ends with seed_dev_data, which fills the database with test data.
Prerequisites for manual setup: uv and Node.js, plus Docker for PostgreSQL + Redis. uv installs the Python version pinned in backend/.python-version; the Node.js version is pinned in frontend/.nvmrc.
This repository uses pre-commit for formatting and linting (Black, isort, flake8, Prettier, ESLint and more). Install the hooks at once from the repository root:
uv tool install pre-commit
pre-commit installRun all checks manually with pre-commit run --all-files.
Node and Python versions are pinned in a single place each and kept up to date by Renovate:
- Node.js —
frontend/.nvmrc - Python —
backend/.python-version
Publishing a GitHub release with a vX.Y.Z tag builds the Docker image tagged X.Y.Z, X.Y and latest, and creates the Sentry release request-manager@X.Y.Z with its commits. The backend and the frontend report that release with their errors; images built from main report the commit hash instead. The workflow needs the SENTRY_AUTH_TOKEN repository secret, a Sentry organization token, to create the release and upload the frontend's source maps.
Distributed under the GNU General Public License v3.0. See LICENSE.
