Development

This section covers development workflows, building images locally, and contributing to PATH DRC EMR.

Overview

PATH DRC EMR is an open-source project built on OpenMRS. This guide will help you set up a development environment and contribute effectively.

What’s in This Section

Local Development

Set up your development environment, configure Maven, run locally.

Building Images

Build Docker images locally for base or site-specific distributions.

CI/CD

GitHub Actions workflows, automated builds, release process.

Contributing

Code style guidelines, pull request process, documentation requirements.

Testing

Test locally, validate metadata changes, test Docker builds.


Quick Start for Developers

Prerequisites

  • Git, Docker 20.10+, Docker Compose 2.0+
  • Maven 3.6+ (for local builds)
  • Java JDK 8 (for backend development)
  • GitHub Personal Access Token

Clone and Build

git clone https://github.com/path-drc/path-drc-emr.git
cd path-drc-emr

# Build base distribution
docker compose build

# Or build site-specific
TAG=latest-libikisi docker compose build \
  --build-arg BUILD_TYPE=site \
  --build-arg MVN_PROJECT=libikisi

Run Locally

docker compose up -d

# View logs
docker compose logs -f backend

Access the Application

  • OpenMRS 3.0: http://localhost/openmrs/spa
  • Legacy UI: http://localhost/openmrs
  • Credentials: admin / Admin123

Repository Structure

path-drc-emr/
├── .github/workflows/     # CI/CD
├── distro/               # Base distribution config
├── sites/                # Site-specific configs
├── frontend/             # Frontend configuration
├── gateway/              # Gateway nginx config
├── Dockerfile            # Main Dockerfile
├── docker-compose.yml    # Service orchestration
└── pom.xml              # Root Maven POM

Table of contents