Krill is a Django application for managing biological sample storage, tracking, and reporting.
krill/: Django project and apps (person, sample, storage, reports, transaction)templates/: top-level template overrides (admin UI)tests/: anonymized test data, fixtures, scripts,run_tests.pyscripts/: utility scripts (e.g.,clean_whitespace.py)config/: configuration filesDockerfile,docker-compose.yml,build.sh,Makefile: build and runtime tooling
- Python 3.10+, pip, and (recommended) a virtual environment.
- Install dependencies:
pip install -r requirements.txt
- Database defaults to SQLite; for PostgreSQL set env vars from
env.exampleorenv.production. manage.pylives underkrill/:- From repo root:
python krill/manage.py <command> - Or
cd krillthenpython manage.py <command>
- From repo root:
- Run server:
make server - Migrations:
make migrate - Create superuser:
make createsuperuser - Django tests:
make test-local - Test data scripts:
make test-data - Lint/whitespace cleanup:
make lint - Docker tests:
make test-dockeror./build.sh test
- Anonymized fixtures live in
tests/fixtures/sample_fixtures.json. - Regenerating anonymized data requires the original
ln2_cane4_export.csvin the repo root (not committed). make setup-testloads fixtures and creates a test superuser (admin/admin).
- Add or update tests for custom business logic.
- Keep docs in sync when changing setup, env vars, or tooling.
- Never commit secrets; use env files or platform secret stores.