Skip to content

Getting Started

This guide gets your full local development environment running — backend API, frontend SPA, and docs site.

Prerequisites

  • Docker 24+ and Docker Compose v2
  • Git with SSH key configured for GitLab
  • Node 20+ and pnpm 9+ (for frontend / testing work outside Docker)

Clone the Monorepo

bash
git clone --recurse-submodules git@gitlab.com:nova-hc/mwe/v2/pod-portals.git
cd pod-portals

If you already cloned without --recurse-submodules:

bash
git submodule update --init --recursive

Starting All Services

From the pod-portals root:

bash
# 1. First-time only — copies .env files and builds images
make build

# 2. Bring everything up
make up

# 3. First-time only — load seed fixtures (migrations run automatically via start.sh)
docker compose run --rm django bash -c "python manage.py loaddata novahomecareapi/fixtures/*.json"
ServiceURL
Django APIhttp://localhost:8000
Portals SPAhttp://localhost:3000
Docshttp://localhost:4173
Django Adminhttp://localhost:8000/admin/
API Schema (Swagger)http://localhost:8000/api/schema/swagger-ui/

Individual Services

bash
docker compose up django            # backend only
docker compose up portals           # frontend only
docker compose up docs              # docs only

Updating Submodules

bash
git submodule update --remote --merge

Daily Workflow

  1. Pull latest in the parent repo: git pull
  2. Update submodules: git submodule update --remote --merge
  3. Start services: docker compose up
  4. Work in the relevant submodule directory
  5. Commit inside the submodule, then update the parent's pointer: git add <submodule-dir> && git commit

Nova Home Care — Internal Developer Docs