Mifos X architecture in nut-shell


Mifos X is multi-tenant and RESTful architecture based financial application. Read more at https://demo.openmf.org/architecture/

Sl #ComponentsDescription


Database (mifosplatform-tenants)

This database contains the information about how many tenants are registered and each tenants basic details (name, unique identifier, TimeZone) and tenant's OLTP database connection details.

mifosplatform-tenants.tenants table contains the name, unique identifier and timezone for each of the tenants

mifosplatform-tenants.tenant_server_connections table contains tenants database connection details


   Related source code on Github

2Database (mifostenants-default)

This is the OLTP database of a tenant, this data base stores infomration related to the tenant like tenants, users, offices, clients, loans, saving and accounting related information.

You can learn more about this database schema at Mifos X Database

   Related source code on Github

3Application (war deployed on tomcat)

This software (war) is responsible for talking (getting the data and sending back the data) with Android app and user interface (it uses JSON style text) and does all business validations, security checks and manipulates the data as per functionality/business requirements and also communicates with database to get the data, update the data, delete the data and to create the data.

   Related source code on Github

4Community-App (Web UI)

This software is responsible for generating the user interface on the browser, it communicates with the server (where war is installed, using JSON style text), it get the data from server in the form of JSON and formats and beautify it to the user. Also data entered into the forms and actions done on the forms are send to server for further action.

   Related source code on Github

5JSON data over HTTPSJSON is the style of representing data. Example i want say my first name is Nayan and i work as engineer ar Conflux companyt then in JSON format you write like this {"firstName":"Nayan", "designation":"engineer","company":"Conflux"}, pretty easy right!
6Android client (Android app)

Android app is mobile app and used for accessing the application over android mobile phone

   Related source code on Github