Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Frontend(s) layer
  • Backend layer
  • Database layer

Frontend(s)

Modularity at frontend layer is achieved by assembling (UI) components in various technology stacks:

  • web-application
  • mobile application
  • plugin of other platforms (DHIS2 app)

OpenIMIS FE core provides:

  • building blocks to address topics such as:
    • I18N
    • standard types components (like period selection, amounts,...),...
    • generic technical components (like confirmation dialog, user notification, error handling,...)
  • transversal features related to:
    • User & Security (login, profile, roles,...)
    • Menus
    • Job scheduler
    • Administration (install and configure modules,...)

Each OpenIMIS FE module is standardised to

  • expose (and register to) contribution points
  • provide components for managed entities (claim picker, claim "row" representation,...)
  • allow built-in or overloaded extensibility

Backend (api)

Modularity in backend layer is built around an (internal) bus, where modules emit and subscribe to events.

OpenIMIS BE core provides:

  • building blocks to address topics such as:
    • synchronous/asynchronous messages (events) to/from other Software components and other OpenIMIS modules

  • transversal features related to:
    • User & Security (login, profile, roles, audit,...)
    • Job scheduling, monitoring,...
    • Transaction and error management

Each OpenIMIS FE module is standardised to

  • expose (automated) REST Api (aligned to DHIS2 way of working?)
  • allow built-in or overloaded extensibility
  • implement ORM and database migrations

Database

OpenIMIS is based on a relational database, with enforced good practices:

  • instance-agnostic id (UUID)
  • managed indexes and foreign keys (even cross-modules!)

OpenIMIS is NOT

  • multi-tenant