In openIMIS, (nearly) everything is a module: even "low level" (and mandatory) features follow this principle.
In other words, even the following features are implemented as (interchangeable) modules:
Login (authentication)
Beyond these low-level modules, several modules will be dedicated to configuration/administration:
User & Roles management
The real business needs will be implemented in dedicated modules:
Payers
Medical Services and Items
Medical Services and Items Price Lists
Insurance Products
Policies (under Beneficiary Enrollment)
Contributions (under Beneficiary Enrollment)
Reports
In addition, the following modules are used for integrating openIMIS with external systems:
Tests cases for the various modules are documented in a separate wiki page.
Plugins (can) provide several types of archetypes, dedicated to the various openIMIS layers: openIMIS Mobile FE, openIMIS Web FE, openIMIS Online BE, openIMIS Batch BE,...
openIMIS can be deployed with an extra layer dedicated to implement a FHIR API, based on openIMIS core (base) modules.
Today the FHIR API is a unique module, but there is an open point on splitting it into separate modules (per FHIR resource?):
Code (static) analysis, as well as unit tests coverage metrics of each module, is automated via travis-ci and codeclimate. You can log into these tools via your GitHub login. If you are registered in openIMIS GitHub, you'll have access to openIMIS build job and code quality metrics.
Detailed module documentation: