# Repository Guidelines ## Stack Snapshot - DMS monorepo with FastAPI API + RQ worker (`backend/`) and React + Vite + TypeScript frontend (`frontend/`). - Services in `docker-compose.yml`: `api`, `worker`, `frontend`, `db` (Postgres), `redis`, `typesense`. - Runtime persistence uses Docker named volumes (`db-data`, `redis-data`, `dcm-storage`, `typesense-data`). ## Project Layout - Backend app code: `backend/app/` (`api/`, `services/`, `db/`, `models/`, `schemas/`, `worker/`). - Backend dependencies: `backend/requirements.txt`. - Frontend app code: `frontend/src/` (`components/`, `lib/api.ts`, `types.ts`, styles). - Technical docs live in `doc/` with `doc/README.md` as the index. ## Working Commands ### Docker If required to run the docker image, follow these steps: - Init VM: `multipass shell dcm-dev` - Move to VM WD: `cd ~/dcm` - Start full stack: `docker compose up --build -d` - Stop stack: `docker compose down` - Tail logs: `docker compose logs -f` ### Local NPM Build - Frontend dev only: `cd frontend && npm run dev` - Frontend production build: `cd frontend && npm run build` ## Validation - No automated test suite is currently committed. - Manual checks for code changes inside VM: `GET /api/v1/health`, upload + processing flow, search, document preview/download, and clean `docker compose logs -f` output for `api` and `worker`. ## If You Add Tests - Backend: place near changed module, use `test_*.py`. - Frontend: use `*.test.tsx`.