Lightweight R&D coordination: lead plans and reports; members query tasks and update progress.
cd app
uv sync
pnpm installpnpm dev- Web (Vite HMR): http://127.0.0.1:5173
- API (Uvicorn reload): http://127.0.0.1:8765 (not 8000 - Windows often blocks 8000 with
WinError 10013) - OpenAPI: http://127.0.0.1:8765/docs
After changing API routes, regenerate the web client types:
pnpm generateEnsure the API is running when you run pnpm generate (or use a saved openapi.json).
Default development: SQLite at app/pplops.db.
cd app
uv run alembic upgrade head
uv run python -m api.seedapp- FastAPI, SQLAlchemy, Alembic (authoritative API) + Typer CLI + shared schemasweb- React, Vite, TanStack Queryapp/api- HTTP API (FastAPI)app/cli- CLI commands (Typer)app/schemas- shared enums and Pydantic schemas
External tools or automation should call the HTTP API (/docs, OpenAPI).
set PPLOPS_TOKEN=<jwt>
cd app
uv run pplops req-list
uv run pplops export-md -o snapshot.md