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
ornpm
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 |
---|---|---|---|---|---|---|
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/