Throughout the weekend, follow all the progress on this and other featured Mifos problems on our Mifos-RHoK HackPad.
Keep in touch in our chatroom at #mifos on IRC.
RHoK Dublin is making good progress with two different apps in the works - https://hackpad.com/3bxn5h0PhBC#RHoK-Mifos:-Mobile-App-for-Mifos-X
Pioneered by Muhammad Yunus, microfinance and access to financial services, while not a cure for poverty, has proven itself to be a powerful and essential tool to allow the poor to create a more dignified life for themselves and their families. Currently several thousand microfinance institutions work tirelessly across the world to provide financial services and other livelihood enablement to the poor. They reach somewhere just under 200 million individuals - yet more than 3 billion people still lack access to financial services.
This is where The Community for Open Source Microfinance and Mifos comes in. Mifos is the software powering an MFI. It is a web-based management information system (MIS) used to manage clients, process transactions, organize groups, and track loans and savings accounts. Field staff enter client and loan data into Mifos while management reviews the information generated in reports to make operational decisions, measure social and financial performance, and report back to funders. MFIs often operate in remote environments with intermittent power, no connectivity, and little support so Mifos has been built to be flexible and adaptable to these environments.
The current Mifos software is in use by more than 40 institutions serving a million clients. However we've seen that it's not flexible and adaptable enough to these challenging conditions for microfinance - this past year, we have launched Mifos X, rewriting our software from scratch - making it a truly open platform that is API-driven and capable of sustaining the rapid evolution of financial services to the poor. Now we need to make it mobile - this is where you can help.
Two of our featured problems are centered on creating a mobile version of Mifos X.
Mobile Enabled Processes: To make loan-officer driven processes and information flows that can currently only be conducted on a PC, accessible via mobile. The first is to create a mobile app whose primary user will be the field/loan officer who travels out to the clients. They will use a mobile app to register new clients, view/enter/process real-time client and transaction data and repayment, among other things; a mobile app with that has offline access would provide a viable solution for common low connectivity situations.
Each MFI operates like a bank, but with a much more hands-on relationship with each client, to facilitate the group formation, training, and peer solidarity that make microfinance such a powerful tool for empowering the poor. Some of these MFIs are large, serving hundreds of thousands of clients but many are small and are still using spreadsheets or pen and paper to operate. Because of this high transaction volume and high touch relationship, technology is an even more critical enabler for the microfinance sector. For MFIs to scale and have greater impact on the poor, they must be more efficient and have a broader reach.
Think of an MFI as a bank that comes directly to the customer - daily, MFI field staff hop on their motorbikes and bounce along dirt roads bringing financial services directly to the poor.
Benefits of Mobile
Within the scope of mobile-enabled processes there too is a broad spectrum of usage. A mobile Mifos X application could be either the primary or secondary device the keeps field officers or even an entire branch connected remotely. For most MFIs, this mobile app will be a secondary way to access Mifos allowing loan officers to be better informed and more efficient while serving customers in rural areas. For some in areas of limited or no connectivity at their branch offices, this could be the primary way to access Mifos, with mobile devices serving as thin clients. With Mifos installed in the cloud, they could perform all their day to day operations in offline mode on their mobile and then sync with the cloud when they have connectivity.
The primary user of a mobile Mifos application will be the field/loan officer who travels out to the clients to repayments, disburse loans, hold meetings, etc.
This weekend, our first goal will be to create a mobile app that is available offline and supports the creation of clients - https://mifosforge.jira.com/browse/MIFOSX-143. This simple starting point will be the foundation for the other processes we must support.
Mifos is a web-based application. Many MFIs have branch offices that operate with intermittent or no connectivity. A mobile application that has offline access would provide a viable solution for these low connectivity situations. MFIs could load the application with the data they intend to capture, record these transactions and client data while offline, and then sync with Mifos when they have a data connection.
To reduce the paperwork and data entry, MFIs would like to register new clients directly in the field through their mobile devices. The mobile interface should allow the creation of a new client and entry of all the corresponding details and/or client photographs.
Viewing Real-Time Client Data
While out in the field, loan officers often need to view information regarding individual clients and their accounts. Real-time view of their client information. Through the mobile interface, the loan officer should be able to directly drill down to each client and retrieve and view details about the clients, their accounts, and transaction history. See current Android client for more details.
Capturing Client Data & Surveys
MFI management make important business decisions based on the financial and social analysis from their client data. Mifos provides the mechanism to centralize and report on all this data, you can help create a mobile interface to capture this information. This information might take the form of general demographic data, surveys about their businesses, social performance measurement surveys like the PPI, photos for identification, photos of collateral, etc. Smartphones and tablets (especially in low-connectivity situations) provide a great tool for capturing this data and eliminating the redundancy of capturing it on paper and inputting it at the head office.
Inputting Repayment Data.
Entering and processing transaction data in real-time is a central use case for a mobile interface. Currently these transactions are logged on a paper collection sheet or ledger, taken back to the office, and keyed in by a data entry person or the field staff. Capturing this repayment data immediately in real-time lowers overhead and reduces the likelihood of data error and potential for fraud. Inputting the transaction data in real time also offers greater security for the client - as soon as the client conducts their transaction (repayment, deposit, disbursement, withdrawal) - Mobile Mifos X could generate an SMS receipt or a physical receipt printed from a mobile thermal printer. Transactions could immediately get posted to the database or could have an intermediate layer and follow a maker/checker concept in which amounts must get approved back at the office.
Out of Scope for Current Version of Mifos X
Mifos X currently supports individual lending - once group lending support is added in, the following processes and tasks will be supported.
Bulk Entry of Repayment Data
Task Lists and Upcoming Meeting Reminders
MFIs operating in both urban and rural regions, must deal with the challenges of poor infrastructure. At branch offices, power is sometimes limited and generators, UPS, car batteries, and more are a must. Data connectivity can be intermittent or non-existent but is quickly expanding with the growth of cellular networks. As a web-based software, these challenging conditions make accessibility via mobile devices all the more imperative.
This weekend we’ll focus our efforts around designing an interface that is accessible via smartphones and tablets. As the costs of the devices and corresponding data plans come down, this is what she should design for.
It is important to note that for some MFIs,smartphones/tablets are still not an option:
Feature phones are still very prevalent and we do need a mobile-optimized interface for them
Likewise, an SMS interface to send transaction data in via SMS is also a promising solution for those MFIs that
MFI staff vary in their technical skillset - while some have a high level of IT capacity, many are using computers for the first time so we must design to their needs.
Voice recognition capabilities would be a nice to have feature as part of the mobile app. MFIs have requested the ability to input data via voice recognition. Voice recognition helps to overcome the challenges of having staff with low literacy levels.
Getting Started with Mifos X
- Where to Get Code/Set up Environment
- View README on bottom of page: https://github.com/keithwoodlock/mifosx
- Points to geting started page @: https://github.com/keithwoodlock/mifosx/wiki
- Remember there are two repositories: one for platform, one for client apps -
- API Documentation
- Technologies/Languages Involved
- see needed skillsets below
- Mifos X Project Issue Tracker: https://mifosforge.jira.com/browse/MIFOSX
- Relevant Issues: https://mifosforge.jira.com/browse/MIFOSX-22
- Mifos X Wiki: https://mifosforge.jira.com/wiki/display/MIFOSX/Mifos+X+Home
- Mifos X Demo Server: https://demo.openmf.org (mifos/password)
- Mifos: www.mifos.org | Community for Open Source Microfinance Website: www.openmf.org
- Notes on Mobile Requirements: https://mifosforge.jira.com/wiki/display/MIFOSX/Going+Mobile
- Mifos Video: http://www.youtube.com/watch?v=STQpP2GhK8k
Two categories of developers are sought after to tackle solutions on Mifos X platform. For this mobile project, experience with offline apps and mobile interface development are highly desired.
API & platform development skills:
On Mifos X we have implemented our API and platform in the following way:
- RESTful API through Jersey (http://jersey.java.net/)
- RESTful API accepts requests and returns response in JSON only using google-gson to help with this.
- Platform supports multi-tenant ability and secured through Spring Security
- Platform uses Spring Framework heavily for IOC
- Platform splits command and query side of requests in CQRS-like fashion
- Platform uses Spring Data JPA heavily for DAO/Repository access and OO model side. Hibernate is the JPA implementation used.
- Platform uses Spring-JDBC and SQL heavily for reading data from Relational database (MySQL)
Client application development skills:
On Mifos X we have implemented a reference app built on top of the mifosx platform as follows
- Web based application
- jQuery ajax to call and consume platform API
- jsRender to bind returned data with templates for render on html page
- jQuery UI for using common UI widgets such as tabs/calendar etc
- CSS for styling
We are interested in:
- Developers with experience in these web app related technologies for given devices (desktop, mobile, tablet)
- for offline support probably have to go with native Android / Ipad/Iphone solutions with a preference for Android (or some framework like PhoneGap that will build for multiple platforms)
- User Interface & Usability Experts.
We are also interested in people who are experienced at managing/enabling ‘product development’
- Product Managers
Existing Work on Mobile Mifos
Mobile work has been mostly conducted on Mifos:
A set of volunteers from Expedia earlier this year did a days work on a mobile client for Mifos X:
- source code @: https://github.com/expcaring/mifos-mobile
- demo deployment @: http://mifos-mobile.pagodabox.com
The current version of Mifos has an Android mobile client as well as a mobile-optmized interface for feature phones. This Android client provides a good example of the workflows and processes that need to mobile-enabled on the new Mifos X platform.
- You can view a demo video and read an overview at: http://mifos.org/community/news/mifos-android-client-closer-look
- Download it from Google Play store: https://play.google.com/store/apps/details?id=org.mifos.androidclient&hl=en
- Source Code: https://github.com/mifos/android-client
- JIRA Project: https://mifosforge.jira.com/browse/MIFOSAC
- User Manual: http://www.flossmanuals.net/mifos-android-client/
Background on all mobile projects related to Mifos to date (contains very important design considerations): https://mifosforge.jira.com/wiki/display/projects/Mifos+Mobile+Applicatio
SMS technologies we have looked to integrate with - FrontlineSMS, RapidSMS.
The Community for Open Source Microfinance and its Mifos project are partnering with SocialCoding4Good and HP to ensure the sustainability of this project beyond the global RHoK event. Several teams of volunteers at HP will continue contributing and in its role as a RHoK Sustainability Partner, SocialCoding4Good will steward this engagement.
These mobile applications are fundamental to the success of the Mifos platform. This will form the primary mobile application for our platform that will be maintained by our core committers and extended by our global community. As functionality in our the platform is expanded, this will be added into the mobile client as well. Participants are laying the foundation of the mobile infrastructure of our entire project. We will continue to circulate user stories and business requirements from MFIs using Mifos in the field. Our local Mifos Specialists (third party implementation and support providers) and volunteers will be the primary individual responding to these needs and extending the mobile application.