Working on Nessie¶
Nessie is a FastAPI server (app/) and a web app with no build step (frontend/), with Android
and iOS apps around it (mobile/). The Field Guide explains how it's put
together; start there.
A development server¶
The dev stack serves the working tree and reloads on every change, with its own database:
docker compose -f deploy/dev/compose.yaml up -d --build # start; --build again when requirements.txt changes
docker compose -f deploy/dev/compose.yaml exec nessie pytest # the tests (the browser ones run on the host)
docker compose -f deploy/dev/compose.yaml logs -f nessie
Or run it straight from a virtualenv, as in Installation → Without Docker.
deploy/README.md describes how
the dev and release stacks are run side by side, and how releases are made.
Changes¶
Work on a branch and open a pull request. A change to the UI comes with end-to-end tests in
tests/e2e (see Tests), and a change to how things work comes with the docs here
updated, the Field Guide included.
These docs¶
The site is built with Zensical from docs/ and mkdocs.yml (the
successor to Material for MkDocs, which reads the same config):
python -m venv .venv-docs && .venv-docs/bin/pip install -r requirements-docs.txt
.venv-docs/bin/zensical serve # http://localhost:8000, reloading as you edit
.venv-docs/bin/zensical build # into site/
Pushes to main publish it to getnessie.app through Cloudflare Pages.
More¶
- Project layout
- Tests
- Building the Android app, and its releases
- Building the iOS app, and TestFlight
- Bootstrap and icons