Backend Setup
Prerequisites
- Docker + Docker Compose
- AWS credentials (for S3 in production)
Local Development
Copy env file:
bashcp .env.development.example .env.development # fill in required valuesStart services:
bashdocker compose upThis brings up: Django app, MySQL, Redis, Celery worker, Celery beat.
Run migrations:
bashdocker compose run --rm django python manage.py migrateCreate a superuser:
bashdocker compose run --rm django python manage.py createsuperuserLoad fixtures (optional):
bashdocker compose run --rm django python manage.py loaddata novahomecareapi/fixtures/*.json
Settings Structure
Settings are split by environment under config/settings/:
| File | When used |
|---|---|
base.py | Shared across all envs |
local.py | Local dev (DEBUG=True, Django Debug Toolbar) |
production.py | Production (S3, strict security headers) |
test.py | pytest runs |
Select via DJANGO_SETTINGS_MODULE env var.
Running Tests
bash
docker compose run --rm django pytest
docker compose run --rm django pytest --covCode Quality
bash
# Format
docker compose run --rm django black .
# Lint
docker compose run --rm django flake8Pre-commit hooks run Black + Flake8 automatically on commit.