Onboarding - Developer (Overview)

Onboarding - Developer (Overview)

🧑‍💻 openIMIS Technical Training Plan (Developer Tutorial)

This page provides a structured training plan for developers aiming to contribute to or customize openIMIS. It serves as a step-by-step tutorial for setting up, extending, and deploying the openIMIS system—including backend, frontend, and mobile components.


⚙️ System Prerequisites

Ensure the following components are installed before starting:

Backend Requirements

  • PostgreSQL installed and running

  • Access to PostgreSQL with administrative privileges

  • Git installed

  • Python (preferably Python 3.10)

  • Command Prompt (cmd.exe) or Terminal

Frontend Requirements

  • Git installed

  • Node.js and npm (preferably latest LTS version)

  • Command Prompt (cmd.exe) or Terminal


🎓 Minimum Knowledge Required

General Skills

  • Familiarity with Git and GitHub workflows (fork, clone, commit, pull request)

  • Basic understanding of open-source contribution practices

  • Awareness of health or social protection systems (helpful, but not mandatory)

Technical Skills

  • Intermediate Python and Django

  • Basic React (or general JavaScript framework experience)

  • SQL fundamentals and PostgreSQL familiarity

  • Understanding of Docker and containers

  • REST API and/or GraphQL basics


📦 Step-by-Step Training Modules

Each module builds on the previous one. Follow them in order unless working on a specific section.


1. 🧬 GitHub Workflow for openIMIS

  • Fork the relevant repository (backend, frontend, core, etc.) from openIMIS GitHub

  • Clone to your local environment

  • Create a new feature branch (e.g., feature/add-new-claim-form)

  • Make changes and commit with clear messages

  • Push to your fork

  • Submit a Pull Request (PR) to the upstream repo

  • Follow openIMIS contribution and coding standards


2. 🛠️ Setting Up the Development Environment

Generic Setup (Without Docker)

Use the following guides for local installation:


3. 🌐 Understanding the openIMIS Architecture

  • Modular architecture (backend, frontend, mobile...)

  • Separation between core and country customizations

  • GraphQL as the primary interface

  • ***Integration with external systems (e.g., health registries)


4. 🔁 Backend Development

Introduction to Backend Modules

  • Module structure: models, GraphQL, signals

  • Django ORM in openIMIS context

Installing Custom Local Modules

  • Mount modules into backend container

  • Adjust settings.py accordingly

Creating a New Module

  • Define models using Django

  • Register GraphQL queries and mutations

  • Write migrations and initial data loaders

Customizing an Existing Module

  • Extend models and schemas

  • Modify signals and validations


5. 🎨 Frontend Development

Introduction to Frontend Modules

  • Built on React + TypeScript

  • Uses Material UI

  • State managed with Redux

Installing and Testing Modules

  • Use openimis-fe-devtools

  • Link local modules via yarn or npm

Creating a New Frontend Module

  • Entry point, routing, and store setup

  • UI components and GraphQL integration

Customizing Existing UI

  • Modify forms, labels, and tables

  • Add filters or custom validations


6. 📱 Mobile App Development

Overview

  • Based on React Native

  • Supports claims, enrolment, and verification

Building and Customizing

  • Set up Node, Android Studio, etc.

  • Link mobile to backend GraphQL API

  • Modify workflows, screens, and themes


7. 🚀 Deployment to Production

  • Build production containers

  • Secure PostgreSQL and environment configs

  • Use Nginx as reverse proxy

  • Set up SSL and HTTPS

  • Implement monitoring and backups


8. 🧩 Solution Biuilding

Solutions for use cases in health and social protection:

  • Social Health Insurance

  • Employment Injury Insurance

  • Voucher Scheme

  • Social Cash Transfer

  • Benificiary Management


📚 Additional Resources


Topic

Target group

Mode

Duration

Language

Latest update

No. participants

Topic

Target group

Mode

Duration

Language

Latest update

No. participants

Onboarding - Developer (Overview)

Developer

online (resources)

 

EN

continuous

 

Did you encounter a problem or do you have a suggestion?

Please contact our Service Desk



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/