a summer internship report on “mifos” carried out at - idrbt

The Mifos Initiative is a 501(c)3 non-profit incorporated in Washington State. Its sole mission is to speed the elimination of poverty by enabling fin...

1 downloads 369 Views 819KB Size
A SUMMER INTERNSHIP REPORT ON “MIFOS” CARRIED OUT AT

ESTABLISHED BY “RESERVE BANK OF INDIA” SUBMITTED BY

VUPPU SAI TEJA ROLL NO: 1301CS47

INDIAN INSTITUTE OF TECHNOLOGY PATNA UNDER THE GUIDANCE OF: Shri S. LALIT MOHAN, SENIOR TECHNOLOGY MANAGER, IDRBT,HYDERABAD, MAY 5,2015 TO JULY 13,2015.

[Pick the date]

TABLE OF CONTENTS CERTIFICATE………………………4 ACKNOWLEDGEMENTS…………….5 OBJECTIVE…………………….6 INTRODUCTION……………………6 The mifos initiative……………………6 Mifos overview……………….6 Mifos X overview………..6 Design Principles………..7 Introduction………7 Mifos X Financial Service Engine……….7 Layer Diagram………….8 API Layer……………8 Service layer………….9 Data layer………….9 Architecture…………10 MIFOS X COMMUNITY-APP………..11

Source Code Directory Structure……….12 Mifos X Financial Service Engine………….12 MIFOSX…………12 API-Docs…………12 mifosng-provider……….12 Mifos X Community-app……….13

PACKAGE STRUCTURE………13

OVERVIEW OF THE PROJECT………….14 Prerequisite……..14

1

[Pick the date]

Java SDK 7……..14 GIT……….14 MYSQL…….14

Build Instructions Build Instructions Build Instructions Build Instructions…………15 Initial setup………..15 Clone the repository…………15 Configure remotes……..15 Keep up to date…………15

Build…………….16 Import project into IntelliJ IDEA………16

Run Configuration….16 Preparation……….17 Creating a Branch…..17 Pull in changes………17

Mifos Usage………….18 Configuring an Organization…….18 Clients / Groups / Centers…………18 Lending…………..18 Accounting………….18

Standard Financial Account Principles……..19 Real Accounts – related to Assets and Liabilities……..19 Personal Accounts – related to people (or legal entities)……..19 Nominal Accounts – related to profits, losses, incomes and expenses……. 19 Liabilities………19 Assets…………19 Income………..19 Expenses……19

CHEQUE FEATURES AND PROCESS:……….20 FRONT-END DEVELOPMENT PROCESS 2

[Pick the date]

WEB-STORM:…………………………………………………..25 NEW HTML & JS SCRIPTS CREATED:……………25 HTML Script:………….25 JS Script:……..25

TESTING AND RESULTS………………..28 Deploy:…………..28 Client Home Page:………….28 Cheque Deposit Form:……………28 Cheque Transfer Form:………….29 Cheque issue Form:………….29 Cheque Destroy Form:……………29

CONCLUSION:……………..29 FUTURE WORK:……………….29 REFERENCES:………………..29

3

[Pick the date]

CERTIFICATE This is to certify that Mr.VUPPU SAI TEJA, pursuing B.TECH in COMPUTER SCIENCE AND ENGINEERING at Indian Institute of Technology, PATNA has undertaken a project as an intern at IDRBT, Hyderabad from April 30, 2015 to July 10, 2015. He was assigned the project “MIFOS” under my guidance. During the course of the project he has undertaken the task of developing cheque history and cash remittance feature for Mifos and has done excellent work. I wish him all the best for all his endeavors.

Mr. Lalit Mohan S. (Project Guide) Senior Technology Manager IDRBT, Hyderabad

4

[Pick the date]

ACKNOWLEDGEMENTS

This project was quiet learning for me at each and every step, at the same time it has given me the confidence to work in the real life and professional setup. I feel the experience gained during the project would lead me to bright prospects in the future. I wish to express my profound gratitude to my Guide Mr. Lalit Mohan S. for giving me opportunity to do this project in the Institute for Development and Research in Banking Technology (IDRBT). I am also thankful to Mr. B. Shandilya for giving me valuable suggestions during the work. I would like to thank Sangamesh and Markus Geiß for providing excellent functional and technical sessions. At the end, I would like to thank the faculty of Indian Institute of Technology Patna for allowing me to do this Summer Internship Program.

5

[Pick the date]

OBJECTIVE The objective of the project is to add cheque and remittance features into Mifos X platform.

INTRODUCTION The mifos initiative The Mifos Initiative is a 501(c)3 non-profit incorporated in Washington State. Its sole mission is to speed the elimination of poverty by enabling financial service providers to more effectively and efficiently deliver responsible financial services to the world’s 2.5 billion poor and unbanked. We guide the development of the Mifos X platform, an open platform for financial inclusion with a suite of simple configurable apps hosted in the cloud. We are a community of financial service providers, technology specialists, financial services experts and open source developers working together to grow this platform. The Mifos X project spun out of the Grameen Foundation in 2011 and, thanks to generous support from Silicon Valley, The Mifos Initiative was revitalized as a U.S. based 503(c)3. Redesigned and built around an API-centric, cloud-based software architecture, the Mifos X Platform is a modern, connected core banking system for responsible financial services organizations bringing basic financial services to the poor globally.

Mifos overview Mifos is an open source information management platform developed by the Grameen Foundation's Technology Center. Mifos is a centralized web-based MIS purpose-built for the microfinance industry. Utilizing thin-client technology gives the entire organization realtime access to vital work processes and information. Management is delivered deep client insight through business analytics and social reporting, therefore increasing operational efficiencies and driving revenue generation through expanded products and reach.

6

[Pick the date]

Mifos X overview Mifos X is the next generation of Mifos, which is led by Mifos Initative. Redesigned and built around anAPI-centric, cloud-based software architecture, the Mifos X Platform is a modern, solving the challenges of core banking systems that are too expensive, too complicated or that have no local support. Mifos X can be deployed in any environment: cloud or on-premise, on or offline, mobile or PC; it’s extensible enough to support any organizational type or delivery channel, and flexible enough to support any product, service, or methodology. For any organization, big or small, it will provide client data management, loan and savings portfolio management, integrated real time accounting and social and financial reporting needed to bring digital financial services in a modern connected world. The platform is completely open via the Mozilla Public License 2.0.

Design Principles Introduction Mifos X Software Platform (simply “the Platform”) is built around a multitenant, service oriented, and tiered architecture, and can be deployed in a SaaS (Software as a Service) model or on-premises. The foundation forms a robust but flexible data model which is ready-made for extensions and customizations. An API provides access to all basic functions grouped in modules. Because the Platform needs to be accessible to users at remote locations, a browser-based solution was essential. Java was selected as a suitable high level language allowing the rapid customization of code required for each individual circumstance yet has a large number of powerful libraries available.

Mifos X Financial Service Engine The Mifos X Financial Service Engine (simply “the Engine”) is a scalable and extensible framework written in Java, and licensed under the Mozilla Public License 2.0.The main design principle of the Engine is CQRS (Command Query Responsibility Segregation), a pattern that separates commands and queries into different models and services. This approach has multiple benefits: 1) State changes (commands) are persisted, providing an audit of all changes, 2) fine grained control and extension of state changes, and 3) scalability based on consumer behavior and real system load. Based on a tiered architecture the Engine provides multiple layers to separate concerns and allow reusability. 7

[Pick the date]

Layer Diagram

API Layer The API Layer is built entirely as a RESTful Webservice, using JSON to transmit data, and utilizes standard HTTP Methods for interactions. 8

[Pick the date]

The main components of this layer are: Resources Every module is exposed via an URI (Unique Resource Identifier). Access Control Early exit if a consumer lacks authorization for a queried Resource. Data marshalling Any data transmitted to and from the API is de-/serialized using JSON. The API is exposed via HTTPS to encrypt all data and secure the communication. OAuth2 is used for authorization. Stateless by nature the API Layer can be scaled based on the actual load and even used in high availability scenarios.

Service layer The Service Layer provides module specific business logic and rules, role based access control and a xBRL compliant reporting engine. Transaction awareness and data validity is encapsulated, and extension points are available to enhance built-in workflows.

Cross concerns like Security or Transactions are part of the core framework and provided via AOP (Aspect Oriented Programming). The Service Layer has horizontal and vertical layers. Services, command, and event handlers form horizontal layers; functional modules form vertical layers.

Data layer The Data Layer provides module specific access to data stores. Data integrity is reached by using the ACID principal and well defined data relations. Write and read operations are encapsulated in different repositories to define a clean responsibility separation.

The Data Layer uses two cache strategies to cache data efficiently; database and 2nd level caching. Database caching stores records on the database level and is useful for reporting, batch jobs, and low level SQL queries. 2nd Level caching stores data objects on the application level and keeps database turnarounds on a very low level allowing fast in-memory access of frequent data. 9

[Pick the date]

Architecture

The Engine’s architecture was designed with a focus on modern, scalable and extensible technologies ready to run in the cloud. All components where selected based on their maturity, proven reliability and cost efficiency. It is our goal to provide a software that is deployable with effectively no cost that can grow with the customer need over time using well known best practices and support from a wide range of communities. 10

[Pick the date]

The basic Mifos X Financial Service Engine architecture is as follows:

Resource

Component

Application Framework

Spring Framework 4.x

Comment

Tomcat 7.x

Embedded Tomcat for development environments

Database

MySQL 5.x

Embedded MariaDB for development environments

Operating System

Linux , Windows, Mac OS

Amazon AWS image and Debian package available

Persistence Framework

Hibernate 4.x

Reporting Engine

Pentaho Reporting Engine 3.x

Runtime

Java 7.x

Test Framework

JUnit 4.x Mockito 1.x REST-assured 2.x

Application Server

MIFOS X COMMUNITY-APP Mifos X Community App (simply “the Community App”) is a browser based Single Page Application (SPA) built entirely with HTML, JavaScript and CSS. Resources are loaded dynamically and added to the page as necessary.

All user interactions, workflows, and application logic is taking place in the browser and does not create load on the Engine.Ajax is used to send data to and receive data from the Engine asynchronous, and bidirectional model binding update views automatically. Based on AngularJS the Community App is built on the MVC (Model-View-Controller) pattern and uses templates to render dynamic content. To provide a responsive and modern look and feel Bootstrap is part of the application stack. The basic Mifos X Community App components are as follows:

11

[Pick the date]

Resource

Component

Application Framework

AngularJS 1.x

Chart Library

D3 3.x

Dependency Management

Bower 1.x

Look and Feel

Bootstrap 3.x

Module Management

RequireJS 2.x

Test Framework

Jasmine 1.x

Source Code Directory Structure Mifos X Financial Service Engine 

Only main folders are covered here. All other folders are obsolete or containing out-dated information.

MIFOSX 

Project root containing license, readme, and changlog files. In addition some build scripts to run the build on Jenkins are included.

API-Docs  Source file and styles for the online API documentation.

mifosng-provider 

The main folder for the Mifos X Financial Service Engine. Gradle build scripts and project files are located here.

All sources can be found below src and the sub-folder structure follows the recommended gradle/maven approach:    

main/java contains all Java source files main/resources contains the log configuration main/resources/META-INF contains all configuration files for Hibernate and Spring main/resources/sql/migrations contains all SQL scripts used by Flyway and some additional 12

[Pick the date]





scripts to populate sample data test/java contains all JUnit source files

  

test/resource/META-INF contains unit test specific Spring configurations integrationTest/java contains all Java source files for automated test scenarios

Mifos X Community-app Community-app 

Project root containing license, readme, and changlog files. In addition some configuration for build and run time dependencies are located here.



All source files, e.g. templates, styles and scripts, can be found here.



All source files for Jasmine tests can be found here.

App

Test

PACKAGE STRUCTURE The package structure follows the domain.module.layer approach. Where domain is org.mifosplatform, module is a functional area of the software and can contain submodules, and layer is the technical function of this module. All sections of a package name are in singular. A layer can be: 

annotation All annotations for this module



api All RESTful resources for this module



data POJOs that are transmitted to the API consumer 13

[Pick the date]



domain Entities and data access classes





exception All module specific exceptions

 



handler All module specific command handlers

 

provider Factory classes



service All service classes enclosing the business logic for this module



util Helper and utility classes

Some Examples   

 

org.mifosplatform.command.api //valid org.mifosplatform.organisation.office.domain //valid using a sub-module org.mifosplatform.service.batch //invalid; module must be before the layer

OVERVIEW OF THE PROJECT Setting up Mifos X development environment

Prerequisite Java SDK 7 To compile the source code, and as a run time environment, Java SDK 7 is needed. Download and install Java from http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html.

Git Git serves as our distributed revision control system. You can find detailed information on how to install git on your system at http://gitscm.com/book/en/v2/Getting-Started-Installing-Git.

14

[Pick the date]

MySQL MySQL is the database used by the Mifos X Financial Service Engine. Download and installation instructions can be found here: http://dev.mysql.com/downloads/mysql/.

Build Instructions Initial setup If you dont have a github account already then you need to sign up and create one on on github.com (free accounts are fine). Once you have a github account, the next step is to fork https://github.com/openMF/mifosx or https://github.com/openMF/community-app.git. See https://help.github.com/articles/fork-a-repo for help on forking in github.

Clone the repository Create a directory in which you want the cloned project to exist within: e.g. in directory ~/repo git clone [fork repository url] See https://help.github.com/articles/which-remote-url-should-i-use.

Configure remotes When a repository is cloned, it has a default remote called origin that points to your fork on GitHub, not the original repository it was forked from. To keep track of the original repository, you should add another remote named upstream: The easiest way is to use the https url: git remote add upstream https://github.com/openMF/[mifosx | community-app].git or if you have ssh set up you can use that url instead: git remote add upstream [email protected]:openMF/[mifosx | community-app].git

Keep up to date There will be development changes to both repositories almost every day for the foreseeable future so its important to keep your fork of the software up to date with the latest changes. To pull in upstream changes from repository you forked: git checkout develop git fetch upstream 15

[Pick the date]

git merge upstream/develop You should not have any local changes on your master branch, if you do, use rebase! Once you have pulled all latest changes and your build was successful, push the just merged changes to the develop branch on your fork. git push origin develop

Build After setting up your environment, and downloading the source, Setup to configure your IntelliJ IDEA:

Import project into IntelliJ IDEA 1. 2. 3. 4. 5.

Open command prompt / terminal. Go to folder mifosng-provider. Fire the command ./gradlew -Penv=dev idea Once the command is done, IDEA project files will be created in the same folder. From Explorer/Finder open the file mifosng-provider.ipr

Run Configuration

16

[Pick the date]

Remove 'Make' form 'Before Launch' by selecting the value and push '-' Add a new 'Before Launch' entry '+' and select 'Gradle task'.

'-Penv=dev' is doing the trick by setting a Gradle project property that will include all needed classes and libraries to run in a development environment.

Preparation Every change to the code is tracked by an issue in JIRA; without an issue, code will not be reviewed, and without review, code will not be accepted. To avoid duplication, search for an existing issue about the change, and if none exists, file a new one. Most of the communication about code changes takes place in the issue, so be sure that the issue describes the exact problem being solved. The issue workflow is part of the Development Process. The person who is working on an issue should be the "assignee" of that issue in JIRA.

Creating a Branch Each pull request should represent a single complete change, so you should separate distinct changes into multiple pull requests. Its probably easiest if you create a new 'topic' branch on your forked repository for each unique piece of work rather than commit changes directly into master or our special develop branch. Why? It means you can work on something very specific, get it up to date and send a 'pull request', To move on to a seperate piece of work, you simply create a different branch. It might also make it easier to keep up to date with the openMF/mifosx repository as explained in next section.

git checkout -b [topic]

17

[Pick the date]

Pull in changes There will be development changes to the openMF/mifosx almost every day for the foreseeable future so its important to keep your fork of the software up to date with the latest changes.

To pull in upstream changes from repository you forked revisit the section "Keep up to date" form the build instructions. After you pulled all changes from upstream you need to rebase your topic branch with the latest code. git checkout [topic] git rebase develop If you are ready push your topic branch to your GitHub account.: git push origin [topic]

Mifos Usage I have undergone functional training session on how to use Mifos X so that the code base will start to make more sense and I will be able to understand it and able to make changes to it. Below are the some of the things I have learnt in that session.

Configuring an Organization     

     

Branches / Officers Staff Dropdown values Data tables Global Configurations Roles and Permissions

Clients / Groups / Centers 

Client Statuses

Lending        

        

Loan Products Loan Accounts - creation Loan Account Approval and Loan Disbursal Interest Calculation for Loans Repayment Strategies for Loans Deposits Savings products Savings Account Creation, Approval and Activation Interest Calculation and posting for Savings Accounts 18

[Pick the date]

Accounting      

      

Chart of Accounts Accounting Principles Journal Entries Accounting for Loans Accounting for Deposits Accounting Closures Reports

Standard Financial Account Principles Real Accounts – related to Assets and Liabilities • Debit – what comes in • Credit – what goes out

Personal Accounts – related to people (or legal entities) • Debit – the receiver • Credit – the giver

Nominal Accounts – related to profits, losses, incomes and expenses • Debit – all expenses and losses • Credit – the giver

Liabilities 

 

Capital Savings Portfolio

Assets    

    

cash Bank Fixtures and Fittings Loan Portfolio Allowance for Bad and Doubtful Debts

Income 

 

Fees and Charges Received Interest Received

Expenses 19

[Pick the date]

   

    

Electricity Charges Salaries and Wages Bad Debts Interest on Deposits Loan Write Offs

CHEQUE FEATURES AND PROCESS:  

 





There are two use case diagrams for the entire cheque flow procedure. In the first diagram the features involved are: 1) Deposit cheque 2) Destroy cheque 3) Transfer Funds In the second diagram the features are involved: 1) Issue cheque 2) Cheque history

There are three possible ways in which payee can deposit cheque in different banks. Case 1: Payee will deposit the cheque in the bank which is on the cheque and is different from the bank in which payee has an account. After the cheque is deposited, validation starts and banker will verify all the details such as signature, name, funds in the account(cheque bounce), account number, data on the cheque, validity of the cheque numbers and will reply a message as true or false. If the message is true then cash will be given.And if the message is false then bank cash will not be given. After the above procedure is completed then banker will destroy the cheque. Case 2: Payee will deposit the cheque in the bank in which he/she has an account and the name of the bank written on the cheque is different. After the cheque is deposited, validation starts and banker will verify all the details such as signature, name, funds in the account (cheque bounce), account number, data on the cheque, validity of the cheque numbers and will reply a message as true or false. If the message is true then the amount will be credited.And if the message is false then amount will not be credited. After the above procedure is completed then banker will destroy the cheque. 20

[Pick the date]

Case 3: Here in this case all the banks are same(i.e saving account bank of payee,name of the bank written on the cheque, bank in which cheque is being deposited all are same) but the branches of saving account bank of payee and bank in which cheque is being deposited are same which is different from name of the bank written on the cheque. After the cheque is deposited, validation starts and banker will verify all the details such as signature, name, funds in the account(cheque bounce), account number, data on the cheque, validity of the cheque numbers and will reply a message as true or false. If the message is true then either cash will be given or amount will be credited.And if the message is false then bank will neither cash will be given nor amount will be credited.

After the above procedure is completed then banker will destroy the cheque.

Payee may also go his own saving account bank to transfer funds. In this case validation starts and banker will verify all the details such as signature, name, funds in the account(cheque bounce), account number, data on the cheque, validity of the cheque numbers and will reply a message as true or false. If the message is true then funds will be transferred.And if the message is false then funds will not be transferred. After the above procedure is completed then banker will destroy the cheque.

Case regarding cheque history: The customer will go the bank and request for the cheque history.Banker will verify the account number and will display cheque history,print it.

Case regarding issue of cheques:

21

[Pick the date]

The customer will go to the bank and request for the cheques.Then banker will verify account details.Then banker will verify cheque issued status and if it is full cheques will not be issued.If the cheque issued status is not full then the banker will check available serial numbers.Then the banker will issue cheque to the customer from those available serial numbers.After the above procedure is done,the issued cheque numbers are removed from the database table.Then the issue cheque table will be updated.

22

[Pick the date]

23

[Pick the date]

Note: Some of the functions in the above two use case diagrams are repeated for clarity.

24

[Pick the date]

FRONT-END DEVELOPMENT PROCESS WEB-STORM: Community-app is the front-end for the mifos.All the changes in the front-end are done through the community-app.

NEW HTML & JS SCRIPTS CREATED: Instead of creating multiple pages I created just a single page handling all the functionalities and created a smooth navigation panel between them.

HTML Script: chequetransaction.html    

    

Deposit Transfer Issue cheque book Destroy Cheque history

Screenshot:

JS Script: 

ChequeTransactionController.js Screenshot:

25

[Pick the date]

Other Changes were made in the following files in order for newly created files to be recognized into the Mifos community-app mifosXComponents.js: Here we added the path of the Controller file we created: ChequeTransactionController.js so as the application starts it can access the controller file whenever needed. controllers: [ 'main/MainController', 'main/LoginFormController', 'main/TaskController', 'main/SearchController', .. .. .. .. .. .. 'cheque/ChequeTransactionController' ],

Notice the last line: where we added the path of the new controller into the ‘controllers’ var

routes.js: In the routes file we add the path to our new .html page so as when we get a URL request for the new page we can redirect the server to the exact directory where the html page resides by assigning the directory path to templateUrl path  var defineRoutes = function ($routeProvider, $locationProvider) { $routeProvider .when('/', { templateUrl: 'views/start.html' }) .when('/login', { templateUrl: 'views/login.html' })

26

[Pick the date]

.when('/chequetransaction/:id' , { templateUrl: 'views/cheque/chequetransaction.html' }) ;

clientstatus.js: Here we add the Graphical interactive buttons which will help the user to access the newly added features. The view page of MifosX displays the interactive button iteratively and thus we add the new buttons and their specified appearance into the .JSON data as shown below "Active": [ { // Button for cheque name: "label.button.cheque", href: "#/chequetransaction", icon: "icon-plus",

taskPermissionName: "CHEQUE_TRANSACTION" }, { // Button for remittance name: "label.button.remittance", href: "#/remittance", icon: "icon-plus", taskPermissionName: "REMITTANCE" },

locale-en.json: Here we have the JSON data regarding various labels which include heading, buttons, inputs etc.

"# "#--------"Cheques"....:"

-

PROPHET

----------

": "------------ " " : "------ DEV------ ",

",

"Headings" : "..", "label.heading.cheque" : "Cheque", "label.heading.deposit" : "Deposit", "label.heading.transfer" : "Transfer",

"label.heading.issuecheque" : "Issue Cheque Book", "label.heading.destroy" : "Destroy Cheque/s", "label.heading.history" : "Cheque History", "label.heading.chequedetails" : "Cheque Details", "label.heading.depositordetails" : "Depositor Details", "label.heading.single" : "Single", "label.heading.multiple" : "Multiple", "label.heading.chequehistory" : "Cheque History", "#Inputs" : "..", "label.input.date" : "Date", "label.input.payee" : "Payee", "label.input.amount" : "Amount", "label.input.ifsc" : "IFSC", "label.input.chequenum" : "Cheque No.", "label.input.cheque#" : "No. of Cheques",

"#Buttons": "..",

27

[Pick the date]

"label.button.cheque" : "NewCheque", "label.button.remittance" : "Remittance", "label.button.deposit" : "Deposit", "label.button.transfer" : "Transfer", "label.button.destroy" : "Destroy"

TESTING AND RESULTS Deploy: To deploy the community app we use the command ‘grunt serve’ on the git bash after changing directory on the community-app folder in the repository.

Client Home Page: We have added the new features for cheque and remittance in the Client Home Page for easy access.

Cheque Deposit Form: The UI of this form is created in the image of a cheque i.e. the format of the Deposit form is congruous to a physical cheque. Making it easier for any personal using this Feature for ‘deposit via cheque’ as his work is made pretty straight forward 28

[Pick the date]

Cheque Transfer Form: This form is created for a case when we need to initiate a money transfer via cheque. Similar to the Deposit form the UI of this form is made similar to the structure of a cheque and a pay-in slip. Again making the job of a personal entering the information easier.

Cheque issue Form: The Issue form is provided to cover the issuing on cheque-book with just one click. This is an entirely new feature since in the present day, issuing of cheque-book take almost a week and with this feature we can process cheque and issue them to a client in a few minutes while keeping the track of every issue made effectively

Cheque Destroy Form: Cheque is a one-time used entity and since we are implementing an electronic track of cheques we need to prevent cheque-fraud by destroying the cheque automatically after every transaction. We have even provided a separate option for destroying a cheque manually. We can destroy multiple cheques or single as per our requirements.

CONCLUSION: I would like to conclude by stating the following points:  



 

I have successfully implemented the front-end part of cheque functionality. I have started the front-end part of remittance functionality.



Provided use case diagrams so that it becomes easy to understand how and why the changes have been done in such a way.



The work done so far will help the back-end web developers to the mifosx.All the ground work has been done successfully.

FUTURE WORK: Currently I have developed the front-end part of the cheque functionality and started the front-end part of the remittance functionality.It will be easy to work for the back-end part of the above mentioned functionalities as the corresponding use case and front-end part are done.

REFERENCES: 

. Mifos x wiki – https://github.com/openMF/mifosx/wiki



Developers page – https://mifosforge.jira.com/wiki/display/MDZ/Welcome+in+the+Zone

29

[Pick the date]

   

Mifos x API documentation – https://demo.openmf.org/api-docs/apiLive.html Github Angular js http://docs.angularjs.org/guide

30