# scene_analysis - `tl/` — the lumet frontend (ClojureScript / reagent / re-frame). See `tl/`. - Django backend (this folder) — users, admin, and persistence of OTIO + the timeline scene. ## Backend The backend stores one `Project` per editing session: the uploaded **OTIO** source file, the playback **fps**, and the live **scene** (the `{:tracks :groups}` mark-group map the frontend keeps in app-db) as a JSON dump. ### Run ```bash python -m venv .venv && .venv/bin/pip install -r requirements.txt .venv/bin/python manage.py migrate DJANGO_SUPERUSER_PASSWORD=admin .venv/bin/python manage.py createsuperuser --noinput --username admin --email admin@example.com .venv/bin/python manage.py seed_demo # demo project from tl/.../one_two_three.otio .venv/bin/python manage.py runserver ``` Admin: (admin / admin). Upload OTIO and inspect the scene JSON there. ### API (session auth; 401 if not logged in) | Method | Path | Purpose | | --- | --- | --- | | GET | `/api/projects/` | the current user's projects | | GET | `/api/projects//scene/` | `{fps, scene}` | | PUT | `/api/projects//scene/` | replace `scene` and/or `fps` (JSON body) | | GET | `/api/projects//otio/` | serve the uploaded OTIO file | The frontend currently loads `/one_two_three.otio` and persists annotations to localStorage; pointing it at `/api/projects//otio/` and the scene endpoints is the next wiring step (CORS/credentials needed across the dev ports).