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 three 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, Material UI, Vite | Public site where users submit and follow up requests. |
frontend-admin |
React, PrimeReact, TanStack Query, TypeScript | Admin dashboard for staff to manage requests. |
Both frontends are static builds served by the backend in production (through WhiteNoise). Authentication is handled via OAuth2 (AuthSCH, BSS Login, Google, Microsoft) with JWT tokens.
flowchart TD
frontend["frontend"] -->|REST · JWT| backend
admin["frontend-admin"] -->|REST · JWT| backend
backend["backend<br/>(Django + Celery)"] --> postgres[("PostgreSQL")]
backend --> redis[("Redis")]
.
├── backend/ Django REST API, Celery workers, admin panel
├── frontend/ Public React app (Vite)
├── frontend-admin/ Admin dashboard React app (Vite, TypeScript)
├── .devcontainer/ VS Code dev container (Python + Node + Poetry)
├── 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 Poetry 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, create the
.envfiles (see each component's README) and run the apps.
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 # PostgreSQL + RedisPrerequisites for manual setup: Python + Poetry
and Node.js — the exact versions are pinned in backend/.python-version and the
.nvmrc files — plus Docker for PostgreSQL + Redis.
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:
pipx install pre-commit # or: pip 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/.nvmrcandfrontend-admin/.nvmrc - Python —
backend/.python-version
frontend-admin/index.html is a symlink. To check it out correctly on Windows,
enable Developer Mode (Settings → For developers → Developer Mode) and turn on
symlink support in Git:
git config --get core.symlinks
git config --replace-all core.symlinks trueThen re-checkout the file: git checkout -- frontend-admin/index.html.
Distributed under the GNU General Public License v3.0. See LICENSE.
