mifosx (oscon 2014) : bringing banking to the poor with the help of angularjs

24
Mifos Bringing Banking to the Poor with the help of Angular JS

Upload: vishwas-babu

Post on 30-Apr-2015

160 views

Category:

Government & Nonprofit


0 download

DESCRIPTION

Slide used for our Talk at OSCON-2014

TRANSCRIPT

Page 1: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Mifos Bringing Banking to the Poor with the help of Angular JS

Page 2: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Agenda Introduction to Financial Inclusion and Mifos Our need for a SPA Framework Why Angular? Demo What’s next? How you can get Involved Q&A

Inputs by Michael Vorburger, Edward Cable, Markus Geiss and Gaurav Saini (thanks!)

Page 3: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

The need for Financial InclusionAs of 2010, 2.4 billion people (~30% of world population) live on < $2/day2.5 Billion People (> half the world’s 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.

Page 4: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

A Micro Finance operation in rural IndiaThis 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

Page 5: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Loan Disbursements at a Centre MeetingMany Organizations in Southern Asia follow the “Solidarity Groups” model pioneered by Mohammad Yunus (awarded with the Nobel Peace Prize 2006) – Picture Credits @Michael Vorburger

Page 6: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Mifos Being used in Branch officesMifos serves as the Core Banking system for Organizations in the financial inclusion space - – Picture Credits @Michael Vorburger

Page 7: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

The Mifos StoryUsed by more than 70 MFI’s 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 Sourceforge2006-11: Initial Mifos Product Launch2009: Winner of JavaOne 2009 Duke’s choice award for Best Java Technology for the Open Source Community2013: Launch of the new “MifosX” suite

Page 8: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Our CommunityPicture taken during our 2013 Mifos Summit held at Jaipur India. Our next summit is scheduled to be during October in Kampala, Uganda.

Page 9: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

The Original Mifos ProductWeb based MIS for MFI’s built with Java (Spring MVC, Spring, Hibernate), MySQL and the Pentaho BI suite

Page 10: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

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

Page 11: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS
Page 12: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

An App built by Musoni SystemsThe 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

Page 13: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Android Client for the MifosX Platform

Page 14: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Our First Community AppSome 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

Page 15: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Our first “Community App”Built with JQuery and JQuery Templates

Page 16: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

The need for a SPA FrameworkAs the community app matured, it became increasingly clear that the codebase would be difficult to maintain in the long runDOM manipulation impeded parallel development by UI designers and JS developersLarge 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

Page 17: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

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 routing

• Could provide I18 support with help from libraries likehttp://angular-translate.github.io/ and http://lgalfaso.github.io/angular-dynamic-locale/

Page 18: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Why Angular continued…Other factors that were taken into accountMore awareness within our community when compared to competing frameworksDecent documentation (now Excellent)IDE support (Webstorm) and Chrome plugins like Batarang

Page 19: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

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

Page 20: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Community App DemoHosted on https://demo.openmf.org/ (login as mifos/password)

Page 21: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

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

Page 22: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Next StepsUse Ionic (and Cordova) for a tablet optimized version of our Community appE2E testing using ProtractorOffline 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

Page 23: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Interested? Get Involved Volunteer Opportunities: http://mifos.org/take-action/volunteer

Learn more about Contributing to Mifos : http://tinyurl.com/ltmzgbl

Github Repo: https://github.com/openMF

Subscribe to our Mailing Lists:

•Developer List: https://lists.sourceforge.net/lists/listinfo/mifos-developer

•User List: https://lists.sourceforge.net/lists/listinfo/mifos-users

Page 24: MifosX (OSCON 2014) : Bringing Banking to the poor with the help of AngularJS

Question & Answers