Skip to content

Development setup

For a hot-reloading environment (see system requirements for prerequisites):

git clone https://github.com/bioedca/Yeliztli.git
cd Yeliztli
pip install -e ".[dev]"
cd frontend && npm install && cd ..
make dev

make dev starts three processes together:

  • the backend (FastAPI with auto-reload) on port 8000,
  • the frontend (Vite dev server with hot-module reload) on port 5173,
  • the Huey background worker.

Open http://localhost:5173 — the Vite dev server proxies API requests to the backend on 8000.

Useful make targets

Target What it does
make dev Backend + frontend + worker, with reload
make run-api Backend only
make run-frontend Vite dev server only
make run-huey Background worker only
make build-frontend Production frontend build
make test All tests (excluding E2E)
make lint / make format Ruff lint / format
make install / make uninstall Native service install/uninstall

Code quality

  • Python is linted and formatted with Ruff (pinned for deterministic ruff format --check); type-checked with mypy.
  • Frontend is linted with ESLint and type-checked by the TypeScript compiler during build.

Run make lint and make format before pushing — CI runs the same checks. See testing for the test commands, and contributing for the assertion conventions.