FastAPI API and responsive React web client for the Kyelendar assignment manager.
- Backend development workflow
- Implementation roadmap
- Common API response and exception contract
- Authentication contract
- Assignment API and data contract
- Photo assignment extraction contract
- Web client and API connection
- Developer handoff and current issues
- Local setup for a new developer
- Agent development rules
- Python 3.14 available as
python3.14 - Node.js 22 and npm
- Docker with Docker Compose
- GNU Make
For a clean machine, follow the complete local setup guide.
make venv
make db-up
make check
make devThe API documentation is available at http://127.0.0.1:8000/docs.
In another terminal, start the web client:
make web-install
make web-devOpen http://127.0.0.1:5173. Vite proxies /api to the local FastAPI server,
so local development does not require CORS configuration.
Use make db-down to stop PostgreSQL. Local settings can be overridden in a
git-ignored .env copied from .env.example.
GET /health/livechecks that the API process is running.GET /health/readychecks that PostgreSQL accepts a query.
POST /auth/signup,POST /auth/login,GET /users/mePOST /assignments,GET /assignments,GET /assignments/{assignment_id}PATCH /assignments/{assignment_id},PUT /assignments/{assignment_id}/completionDELETE /assignments/{assignment_id},GET /dashboardPOST /assignment-extractions
Assignment requests require the bearer access token returned by login. See the assignment contract for request fields and date rules. Photo extraction is disabled by default and requires the settings documented in the extraction contract.
make migrate
make migration name=create_users
make lint
make format
make test
make web-check