Wednesday, October 15, 2014

Falling in love with MifosX

I've been a Free and Open Source Software(FOSS) enthusiast and programmer for several years now. Recently I got the opportunity to work on my dream project: MifosX, the world's leading FOSS platform for financial inclusion. Being excited about the scope of the work is one thing, the fact that what you do helps transform lives of so many people, giving them hope and a future. That's what this is all about - using software as a means to help MicroFinance Institutions (MFIs) scale up to reach many more poor with minimal increase in their organizational cost. In case you're new to Mifos, here's a video that demonstrates the power of this platform with a case study of how it can help a MFI:

I had worked on Mifos earlier too, and was surprised to see that the old application I had contributed to had given way to a completely new rewrite as an SPA (single page application) written in AngularJS with a neatly separated REST backend provider application. While it was a considerable change for me, coming from the old application, I feel very excited because the new architecture makes it possible to have different kind of front-end application or module talk to the backend app. It is therefore much easier to build tools which can talk to Mifos backend and leverage the comprehensive API with functionality for an incredibly wide array of functionality covering a host of financial and supporting services. Another new development in MifosX which I'm very excited about is the Webhooks functionality using which an independent web service can be notified when different kinds of financial transactions, etc are recorded. This makes it possible to integrate with Mifos X, systems that can perform actions in real time when financial transactions are recorded.

A classic application of this webhooks functionality is to send automatic SMS to clients when financial transactions are recorded. In a normal software application, one would need to modify the backend application itself to do anything like this, but with Mifos X webhooks, an independent application can be used for this purpose. Since I had previous experience writing application for webhooks for github repository, I started the MifosX Messenger project to integrate a couple of Indian Bulk SMS providers to send automatic SMS using their services. MifosX Messenger can work with multiple SMS providers and can be extended very easily to add more providers, by just adding a new subclass for the provider.

Therefore, MifosX has facilitated development of application in any platform enabling a heterogeneous system with components in different technologies working in unison using the web requests to communicate effectively. This gives rise to endless possibilities.