Mifos Bringing Banking to the Poor with the help of Angular
JS
Slide 2
Agenda Introduction to Financial Inclusion and Mifos Our need
for a SPA Framework Why Angular? Demo Whats next? How you can get
Involved Q&A Inputs by Michael Vorburger, Edward Cable, Markus
Geiss and Gaurav Saini (thanks!)
Slide 3
The need for Financial Inclusion As of 2010, 2.4 billion people
(~30% of world population) live on < $2/day 2.5 Billion People
(> half the worlds adult population) do not have access to
regular Financial Services - Sourced from http://www.worldbank.org/
The Microfinance Movement : A world in which as many poor and
near-poor households as possible have permanent access to an
appropriate range of high quality financial services, including not
just credit but also savings, insurance, and fund transfers.
Slide 4
A Micro Finance operation in rural India This image was taken
during a Centre meeting conducted by Grameen Koota, one of the
larger Mifos users serving more than half a million customers. A
MFI employee would be responsible for disbursing loans and
collecting repayments during these meetings
Slide 5
Loan Disbursements at a Centre Meeting Many Organizations in
Southern Asia follow the Solidarity Groups model pioneered by
Mohammad Yunus (awarded with the Nobel Peace Prize 2006) Picture
Credits @Michael Vorburger
Slide 6
Mifos Being used in Branch offices Mifos serves as the Core
Banking system for Organizations in the financial inclusion space -
Picture Credits @Michael Vorburger
Slide 7
The Mifos Story Used by more than 70 MFIs serving more than 2.5
million customers Managed by the Mifos Initiative (a non-profit
registered in Washington) Built with love by hundreds of volunteers
spread across the world fighting poverty one line of code at a time
2004-11: Registered on Sourceforge 2006-11: Initial Mifos Product
Launch 2009: Winner of JavaOne 2009 Dukes choice award for Best
Java Technology for the Open Source Community 2013: Launch of the
new MifosX suite
Slide 8
Our Community Picture taken during our 2013 Mifos Summit held
at Jaipur India. Our next summit is scheduled to be during October
in Kampala, Uganda.
Slide 9
The Original Mifos Product Web based MIS for MFIs built with
Java (Spring MVC, Spring, Hibernate), MySQL and the Pentaho BI
suite
Slide 10
Mifos X: The next generation of Mifos Redesigned to fulfil our
long-term vision of a fully extensible platform that can scale
through multi-tenancy and rapidly be extended upon through a clean
layered architecture and full API. Platform: Encapsulates the
complexity that exists in the business and technical domains needed
for a Banking System behind a relatively simple API. This API frees
up application developers to innovate and produce apps suitable for
a variety of Financial inclusion services. Built on a
Jersey/Spring/JPA/MySQL stack Applications: A suite of applications
(mostly User Interfaces with no business Logic) built on top of
"The Platform" that cater to a variety of financial Inclusion
models
Slide 11
Slide 12
An App built by Musoni Systems The Musoni system (built on top
of the MifosX Platform) is optimized for Cashless operations and
integrated with leading Mobile Money vendors in the African
market
Slide 13
Android Client for the MifosX Platform
Slide 14
Our First Community App Some of our goals while starting
building out our first Community App towards the end of 2011 Cheap
to Modify and extend No Server Side language, no business logic
within the app Leverage on most common skills within our Community
Package (using Cordova) as a hybrid mobile app
Slide 15
Our first Community App Built with JQuery and JQuery
Templates
Slide 16
The need for a SPA Framework As the community app matured, it
became increasingly clear that the codebase would be difficult to
maintain in the long run DOM manipulation impeded parallel
development by UI designers and JS developers Large amount of
Boiler plate code for common SPA tasks like two way data Binding,
routing and tracking Browser history Decision made to rewrite our
SPA using a Mature framework which would address these issues out
of the box
Slide 17
Why Angular? Clean separation between the View and the
Controller (Parallel development, Mobile Views) Two way data
Binding Extending HTML vocabulary with Directives Server side
concepts like Dependency Injection, Modularization made sense to
our (predominantly java) Community Testability (both unit testing
and E2E testing) Basic Routing available out of the box.
https://github.com/angular-ui/ui-router provides advanced
routinghttps://github.com/angular-ui/ui-router Could provide I18
support with help from libraries likehttp://angular-
translate.github.io/ and
http://lgalfaso.github.io/angular-dynamic-locale/http://angular-
translate.github.io/http://lgalfaso.github.io/angular-dynamic-locale/
Slide 18
Why Angular continued Other factors that were taken into
account More awareness within our community when compared to
competing frameworks Decent documentation (now Excellent) IDE
support (Webstorm) and Chrome plugins like Batarang
Slide 19
Our Stack Bower: Package Management Grunt: Task runner Require
JS: JS Module Loader Angular JS Bootstrap: HTML and CSS Design
Templates D3: Data Visualization Jasmine: Unit Testing Framework
Karma: Test runner
Slide 20
Community App Demo Hosted on https://demo.openmf.org/ (login as
mifos/password)https://demo.openmf.org/
Slide 21
Benefits to our Community Faster development cycles: Volunteer
driven re-write of the Community app with AngularJS took < 3
months Greatly increased contributions from Designers / HTML &
CSS developers Simplified collaboration process, increased
volunteer satisfaction Implementation partners have found it easier
to extend/modify
Slide 22
Next Steps Use Ionic (and Cordova) for a tablet optimized
version of our Community app E2E testing using Protractor Offline
Functionality (would be made easier with the planned enhancements
in Angular 2) * Details of upcoming changes in Angular 2 can be
found at http://blog.angularjs.org/2014/03/angular-20.html
http://blog.angularjs.org/2014/03/angular-20.html
Slide 23
Interested? Get Involved Volunteer Opportunities:
http://mifos.org/take-action/volunteerhttp://mifos.org/take-action/volunteer
Learn more about Contributing to Mifos :
http://tinyurl.com/ltmzgblhttp://tinyurl.com/ltmzgbl Github Repo:
https://github.com/openMFhttps://github.com/openMF Subscribe to our
Mailing Lists: Developer List:
https://lists.sourceforge.net/lists/listinfo/mifos-developerhttps://lists.sourceforge.net/lists/listinfo/mifos-developer
User List:
https://lists.sourceforge.net/lists/listinfo/mifos-usershttps://lists.sourceforge.net/lists/listinfo/mifos-users