- Provide support in Apache Fineract CN for group-based financial inclusion methodologies including but not limited to Grameen-Style joint liability groups or solidarity groups, self-help groups, village banking, savings groups, etc.
Background and strategic fit
A cornerstone of most financial inclusion providers and the legacy and heritage of the original Mifos software which evolved into Apache Fineract is joint liability group lending. The original Mifos 2.x (Generation 1 software) was an MIS purpose-built for Grameen-style Joint Liability Group Lending. While Mifos X/Apache Fineract (Generation 2) was built with greater flexibility and support for individual lending but still deeply catered to group and center-based operations.
- This specification document will need to be broken out into different specifications for each methodology
- This specification should encompass the organizational, product, calendar, and accounting settings common across different group-based lending and savings methodologies
- Aim to utilize the existing knowledge and learnings from previous two generations of software in the design and architecture of this support
- Aim to utilize design and user experience/workflows from previous Mifos X UI
User interaction and design
See the current Mifos X UI on top of Apache Fineract at https://demo.openmf.org (mifos/password) which was loosely based on the web mockups at https://mifosforge.jira.com/wiki/spaces/MIFOSX/pages/34111558/Usability+and+Design. This UI was built in 2013 and then reskinned in 2016 and since has had ongoing improvements. Various other UIs have been developed by partners which can also serve as examples - such system include Musoni System, FINEM, Ez Bank, Finable, Finflux, etc.
Below is a list of questions to be addressed as a result of this requirements document:
These are previous specs, requirements, API docs, user manuals so as not to forgot the great body of knowledge we're working from:
Generation 1 - Mifos 2.x
- Group Accounts FS: http://mifosx.openmf.org/Mifos%20website/mifos.org/functional-specifications/account-management/group-accounts.html or https://mifosforge.jira.com/wiki/spaces/MIFOS/pages/73466196/Group+Accounts
- Center Accounts FS: http://mifosx.openmf.org/Mifos%20website/mifos.org/functional-specifications/account-management/center-accounts.html
- GLIM: https://mifosforge.jira.com/wiki/spaces/MIFOS/pages/4456859/GLIM+Functional+Specification and https://mifosforge.jira.com/wiki/spaces/MIFOS/pages/4456866/Group+loan+with+individual+monitoring
- Loans: https://mifosforge.jira.com/wiki/spaces/MIFOS/pages/7700948/Loans
Generation 2 - Mifos X
- Groups API: https://demo.openmf.org/api-docs/apiLive.htm#groups
- Groups & Centers User Manual: https://mifosforge.jira.com/wiki/spaces/docs/pages/52035634/Clients+Groups+and+Centers
- Loan Tracking Strategies: https://mifosforge.jira.com/wiki/spaces/MIFOSX/pages/31358990/Loan+Tracking+strategies
- Group Loan FS (early-stage): https://mifosforge.jira.com/wiki/spaces/MIFOS/pages/28213252/New+Group+Loan+Functional+Specification and https://mifosforge.jira.com/wiki/spaces/MIFOSX/pages/25821209/Group+Lending+MifosX+FS
- Self-Funded Groups: https://mifosforge.jira.com/wiki/spaces/MIFOSX/pages/113017056/Self-Funded+Groups+SHGs+Savings+Groups+VSLAs
- Savings Groups per DreamStart Labs Requirements (Design for Fineract Data Model)
Proposed Mock-ups For Group Loan Management Service
A mock-up to Manage Groups for the fims-web-app is provided below:
A mockup for Creating Groups for the fims-web-app is provided below:
Here is the database design for Group Saving Products. I was able to model this database with some ideas gotten from the deposit-account management micro-service and Fineract 1.x
Database Design for Group loans
Ruphine Kengne The idea behind the current group service is, a client of the group is treated like a member of the FI. This would cover the whole KYC portion. After the client is created as a member, you then can assign them to a group. I would suggest to keep the client to member flow as is, creating a new member in the member section, and use a type-ahead drop down list to assign the member to the group.