Skip to content

Backend Setup

Prerequisites

  • Docker + Docker Compose
  • AWS credentials (for S3 in production)

Local Development

  1. Copy env file:

    bash
    cp .env.development.example .env.development
    # fill in required values
  2. Start services:

    bash
    docker compose up

    This brings up: Django app, MySQL, Redis, Celery worker, Celery beat.

  3. Run migrations:

    bash
    docker compose run --rm django python manage.py migrate
  4. Create a superuser:

    bash
    docker compose run --rm django python manage.py createsuperuser
  5. Load fixtures (optional):

    bash
    docker compose run --rm django python manage.py loaddata novahomecareapi/fixtures/*.json

Settings Structure

Settings are split by environment under config/settings/:

FileWhen used
base.pyShared across all envs
local.pyLocal dev (DEBUG=True, Django Debug Toolbar)
production.pyProduction (S3, strict security headers)
test.pypytest runs

Select via DJANGO_SETTINGS_MODULE env var.

Running Tests

bash
docker compose run --rm django pytest
docker compose run --rm django pytest --cov

Code Quality

bash
# Format
docker compose run --rm django black .

# Lint
docker compose run --rm django flake8

Pre-commit hooks run Black + Flake8 automatically on commit.

Nova Home Care — Internal Developer Docs