BIT (UCSC) Final Year Project - Microfinance Loan Management System
1. M-FIN
MICROFINANCE LOAN MANAGEMENT
SYSTEM
T. A. MAKUMBURAGE
BIT Registration No: R081300
Index No: 0813001
Supervisor: Mrs. G. H. Malawara Arachchi
November 2012
This dissertation is submitted in partial fulfillment of the requirement of the
Degree of Bachelor of Information Technology (External) of the University of
Colombo School of Computing
BIT
3. iii
Abstract
Microfinance offers basic financial services mainly to the poor people who have lack
of access to banking and related services. ‘SEEDS’ (Sarvodaya Economic Enterprise
Development Services) is a leading microfinance institute in Sri Lanka, which has
more than 75 branches and divisions. ’SEEDS’ is the economic arm of ‘Sarvoda ya’,
which is established to eliminate poverty through the economic empowerment of rural
people for sustainable livelihoods.
Currently SEEDS is using a manual system for loan processing. They are facing many
difficulties because of the lack of efficiency and productivity of the manual system.
Loan officers often get stressed due to the workload which they have to carry out
manually. So SEEDS is badly in need of a software solution for overcome these
problems. This software solution, ‘M-Fin’ will cater those problems and requirements
of SEEDS and help them to be productive and efficient in their field to gain
competitive advantage over others.
‘M-Fin’ is a web based microfinance loan management system, which would automate
the loan processing system of SEEDS. It also facilitates stakeholder details
management, general ledger, loan trial calculation, management information, reports,
facility follow-up, closure and day-end process.
‘M-Fin’ is designed and developed according to the requirements of the SEEDS using
object oriented methodologies. Almost all the technologies used to develop the system
are open-source. J2EE is chosen as the main programming language for ‘M-Fin’. Also
highly productive frameworks such as ‘Struts’, ‘Spring’ and ‘Hibernate’ have been
used for this system to preserve its basic needs as a financial system, such as
reliability, security and efficiency. ’M-fin’ is built on ‘MyEclipse’ IDE and running on
‘Apache Tomcat’ application server.
4. iv
Acknowledgements
Apart from the efforts of mine, the success of any project depends largely on the
encouragement and guidence of many others. I take this opportunity to express my
gratitude to the people who have been instrumental in the successful completion of this
project.
I’m highly grateful to Sarvodaya Economic Enterprise Development Services Limited,
specially Mr. Shantha Siriwardhana, Mrs. Nadeesha and Mr. Thushara Pathirana who
gave immense support and guidance on behalf of the client of this project. I would like
to thank Mrs. Chamila, the branch manager of the SEEDS Borella branch, who helped
me to gather requirements properly.
I would like to show my greatest appreciation to my project supervisor Mrs G. H
Malawara Arachchi for guiding me and providing me with all the business and
technical insights throughout this project. Without her encouragement and guidance
this project would not have materialized.
Then I would like to appreciate all the help and support given by my parents and sister
throughout the project to make this a successful one.
I would like to acknowledge the lecturers of OpenArc School of Business and
Technology, who gave the knowledge and guidance throughout the BIT digree
programme.
Also I would like to thank Miss. U.V. Vandebona and my friends who have been with
me and supported me to complete this project
Finally I would be gratefull to University of Colombo School of Computing (UCSC)
and coordinators of the Bachelor of Information Technology (BIT) degree program to
giving me this opportunity to apply the knowledge which I have gained through the
degree program.
5. v
Table of Contents
Declaration.........................................................................................................................ii
Abstract............................................................................................................................iii
Acknowledgements ...........................................................................................................iv
Table of Contents ...............................................................................................................v
List of Figures.................................................................................................................viii
List of Tables .....................................................................................................................x
List of Acronyms...............................................................................................................xi
Chapter 01 – Introduction....................................................................................................1
1.1 Motivation for project ..........................................................................................1
1.2 Background.........................................................................................................1
1.3 Objectives and Importance ...................................................................................2
1.3.1 Objectives....................................................................................................2
1.3.2 Importance...................................................................................................2
1.4 Scope..................................................................................................................3
1.5 Selected Process Model........................................................................................4
1.5.1 Feasibility Study...........................................................................................4
1.5.2 Requirement Analysis...................................................................................4
1.5.3 Design .........................................................................................................5
1.5.4 Coding.........................................................................................................5
1.5.5 Testing.........................................................................................................5
1.5.6 Maintenance.................................................................................................5
1.6 Dissertation Overview..........................................................................................6
Chapter 02 - Analysis..........................................................................................................7
2.1 Requirements Gathering.......................................................................................7
2.2 Similar Solutions .................................................................................................7
2.3 Current Business Process....................................................................................10
2.4 Problems Exist in the Current System..................................................................11
2.5 Functional Requirements....................................................................................11
2.5.1 User Authentication & Authorization...........................................................13
2.5.2 Maintain Client Database............................................................................13
2.5.3 Maintain Reference Data.............................................................................13
2.5.4 Loan Calculation ........................................................................................14
6. vi
2.5.5 Loan Approval ...........................................................................................14
2.5.6 Print Loan Documents ................................................................................14
2.5.7 Loan Information........................................................................................14
2.5.8 Day-End process........................................................................................14
2.6 Non-Functional Requirements ............................................................................15
2.7 Benefits of the System........................................................................................15
Chapter 03 – Design .........................................................................................................17
3.1 Alternative Solutions & Justification...................................................................17
3.2 Systems Design Methodology.............................................................................18
3.3 Systems Design .................................................................................................18
3.4 Systems Structuring ...........................................................................................19
3.5 Deliverables ......................................................................................................19
3.5.1 Data Model................................................................................................20
3.5.2 Process Model............................................................................................24
3.5.3 User Interface Design .................................................................................27
3.5.4 User Interface Standards.............................................................................29
Chapter 04 – Implementation.............................................................................................33
4.1 Development Environment .................................................................................33
4.2 Hardware and Software Requirements.................................................................34
4.2.1 Server Side.................................................................................................34
4.2.2 Client Side .................................................................................................35
4.3 Development Tools............................................................................................35
4.4 Coding Structure & Standards.............................................................................37
4.4.1 Folder Structure..........................................................................................37
4.4.2 Package Structure.......................................................................................37
4.5 Open Source Frameworks Used..........................................................................39
4.5.1 Apache Struts.............................................................................................39
4.5.2 Spring........................................................................................................40
4.5.3 Hibernate ...................................................................................................41
4.6 Third Party Components Used............................................................................42
4.6.1 Active Widgets Grid ...................................................................................42
4.6.2 Date Picker................................................................................................42
4.6.3 dTree.........................................................................................................42
4.6.4 iText..........................................................................................................43
7. vii
4.6.5 jExcel ........................................................................................................43
Chapter 05 – Evaluation....................................................................................................44
5.1 Testing Method..................................................................................................44
5.2 Test Cases.........................................................................................................44
5.3 Integration Testing.............................................................................................47
5.4 System Testing ..................................................................................................47
5.5 Acceptance Testing............................................................................................48
5.6 Feedback...........................................................................................................48
Chapter 06 – Conclusion ...................................................................................................49
6.1 Critical Assessment of Project............................................................................49
6.2 Problems Encountered........................................................................................50
6.3 Lessons Learnt...................................................................................................50
6.4 Future Work......................................................................................................50
References.......................................................................................................................51
Appendix A- System Documentation .................................................................................52
Appendix B- Design Documentation..................................................................................56
Appendix C- User Documentation .....................................................................................63
Appendix D- Management Reports....................................................................................75
Appendix E – Test Results ................................................................................................77
Appendix F – Code Listing ...............................................................................................80
Appendix G – Client Certificate.........................................................................................88
Glossary & Index..............................................................................................................89
8. viii
List of Figures
Figure 1.1: Iterative Waterfall Model...................................................................................4
Figure 2.1: Interface of Mifos..............................................................................................8
Figure 2.2: Interface of ‘The Banker’...................................................................................8
Figure 2.3: Interface of 'Loan Performer'..............................................................................9
Figure 2.3: Interface of Octopus ..........................................................................................9
Figure 2:4: Actors of the System........................................................................................12
Figure 2:5: System Boundry for Loan WorkFlow ...............................................................13
Figure 3.1: Enterprise Architecture Tool ............................................................................19
Figure 3.2: System Structure .............................................................................................19
Figure 3.3: ER Diagram ....................................................................................................20
Figure 3.4: Class Diagram related classes of Loan process...................................................23
Figure 3.5: Class Diagram related to classes of Stakeholder Reference.................................23
Figure 3.6: Part of the Use Case Diagram...........................................................................24
Figure 3.7: Activity Diagram.............................................................................................25
Figure 3.8: Sequence Diagram...........................................................................................26
Figure 3.9: Home Page......................................................................................................27
Figure 3.10: Main Screen..................................................................................................28
Figure 3.11: Input Forms...................................................................................................29
Figure 3.12: Validations....................................................................................................30
Figure 3.13: Data Tables...................................................................................................30
Figure 3:14: Message from the System...............................................................................31
Figure 3:15: Date Field and Date Picker.............................................................................31
Figure 3:16: Common Browser..........................................................................................32
Figure 4:1: Technical Infastructure of the M-Fin system......................................................33
Figure 4:2: Source Folder Struture .....................................................................................37
Figure 4:3: Java Package Structure ....................................................................................38
Figure 4:4: Struts Framework Components.........................................................................39
Figure 4:5: Spring Framework Components .......................................................................40
Figure 4:6: Hibernate Framework Components...................................................................41
Figure 4:7: ‘Active Widgets’ Data Grid..............................................................................42
Figure 4:8: ‘Moo Tools’ Date Picker..................................................................................42
Figure 4:9: 'dTree' JavaScript Grid Component...................................................................43
Figure 5:1: User Feedback Form........................................................................................48
9. ix
Figure A: 1 Features of Java Installation.............................................................................52
Figure A: 2: Environmental Variables................................................................................53
Figure A: 3: Setting 'JAVA_HOME' Variable.....................................................................53
Figure A: 4: Apache Tomcat Configuration Options ...........................................................54
Figure A: 5: MySQL Networking Options..........................................................................55
Figure B: 1: Usecase diagram for 'Officer' actor..................................................................56
Figure B: 2: Usecase diagram for 'Manager' actor...............................................................56
Figure B: 3: Usecase diagram for 'Loan Administrator' actor...............................................57
Figure B: 2: Usecase diagram for 'System Administrator' actor............................................57
Figure: B: 3: Part of the Class diagram...............................................................................59
Figure: B: 4: Part of the Class diagram...............................................................................59
Figure: B: 5: Part of the Class diagram...............................................................................60
Figure: B: 6: Part of the Class diagram...............................................................................60
Figure: B: 8: Activity Diagram for Create Application ........................................................61
Figure: B: 7: Part of the Class diagram...............................................................................61
Figure: B: 6: Sequence Diagram for Login to the system.....................................................62
Figure: B: 7: Sequence Diagram for Application Approval..................................................62
Figure: C: 1: Branch Details Screen...................................................................................63
Figure: C: 2: Branch Officer Screen...................................................................................64
Figure C: 3: Stakeholder Details Screen.............................................................................65
Figure C: 4: Stakeholder Type screen.................................................................................65
Figure C: 5: Approval Groups Creation..............................................................................66
Figure: C: 6: Approval Group Members Screen..................................................................67
Figure: C: 7: Loan Type Screen.........................................................................................67
Figure: C: 8: Loan Calculation Screen................................................................................68
Figure: C: 9: Application Maintenace.................................................................................69
Figure C: 10: Loan Application Screen ..............................................................................70
Figure: C: 11: Loan Appraisal Screen.................................................................................70
Figure C: 12: Application Approval...................................................................................71
Figure C: 13: Loan Documents Screen...............................................................................71
Figure C: 14: Assignment of Loans....................................................................................72
Figure C: 15: Loan Inquiry Screen.....................................................................................73
Figure C: 16: Access Rights Screen...................................................................................73
Figure C: 17: Login Details Screen....................................................................................74
10. x
List of Tables
Table 3.1: Table Structure – Stakeholder............................................................................22
Table 3.2: Table Structure – System Program.....................................................................22
Table 3.3: Usecase Narrative – Input Client Details ............................................................25
Table 3.4: Usecase Narrative – Login to the system ............................................................25
Table 3.5: Usecase Narrative – Approve Loans...................................................................25
Table 5: 1: Test Case: Stakeholder Type.............................................................................45
Table 5: 2: Test Case: Assignment of Loans.......................................................................46
Table 5: 3: Test Case: Access Rights..................................................................................47
Table B: 1: Table Structure: Stakeholder Type....................................................................58
Table B: 2: Table Structure: Stakeholder Program..............................................................58
Table D: 1: Branch Summary Report .................................................................................75
Table D: 2: Client Details Report.......................................................................................76
Table D: 3: Loan Disbursement Report ..............................................................................76
Table E: 1: Test Case: Loan Type ......................................................................................78
Table E: 2: Test Case: Approval Group..............................................................................79
11. xi
List of Acronyms
SEEDS - Sarvodaya Economic Enterprise Development Services
J2EE - Java Enterprise Edition
OOD - Object Oriented Design
IT - Information Technology
MIS - Management Information System
UML - Unified Modeling Language
MFI - MicroFinance Institute
HTML - Hyper Text Markup Language
CSS - Cascading Style Sheets
JSP - Java Server Pages
JSTL - JavaServer Pages Standard Tag Library
SDK - Software Development Kit
AJAX - Asynchronous JavaScript and XML
MVC - Model View Controller
XML - Extensible Markup Language
IDE - Integrated Development Environment
WYSIWYG - What You See Is What You Get
PDF - Portable Document Format
SMS - Short Message Service
RAM - Rando m Access Memory
12. 1
Chapter 01 – Introduction
As an immerging sector of Sri Lanka, Microfinance industry has grown its leaps and
bounds to help the poor and poorest of the country. After the end of the war
microfinance institutions has many opportunities to provide loan facilities to the people
in need. Because of the close relationship maintained by microfinance institutions with
people, they are more towards micro loan facilities rather than banking loans. Thus, to
maintain that close relationship, microfinance institutions need lot of details about its
clients and also more resources to manage loan processes. From reducing the cost
and time spent, IT can provide better solution for fact gathering and loan management
in microfinance institutions.
1.1 Motivation for project
As the economic arm of Sarvodaya and a leading microfinance institute, SEEDS
(Sarvodaya Economic Enterprise Development Services) has provided thousands of
loan facilities to the poor people in Sri Lanka. Its main objective is to alleviate poverty
by promoting economic empowerment of rural people for a sustainable livelihood.
They don’t have proper systematic software to fulfill their needs. This software is
presented as the solution for those requirements of the SEEDS to improve the
productivity of their business.
From this project will provide a web based software solution, mainly for the loan
management purposes of the SEEDS. This system will reduce the paper work and
automate the loan processing system with more management facilities. This project
would help to gather more domain knowledge about the microfinance industry, much
more about software development and project management.
1.2 Background
Currently SEEDS is using a manual system for loan processing. They are facing many
difficulties because of the lack of efficiency and productivity of the manual system.
They have to maintain a manual file for each client, and that has become a huge
overhead for loan officers. Also they tend to suffer financially because there is no
notification system to see the loan installments due on a specific day. Reporting has
13. 2
become a mess for them because they are using a spreadsheet called ‘loan sheet’ to
extract all the reports. Also there is a big risk involving paper work because there is no
procedure for backing-up hard copies of loan documents. If one is misplaced or lost,
there is no replacement.
1.3 Objectives and Importance
1.3.1 Objectives
The main objective of the microfinance loan management system is to improve the
efficiency of loan management processes and functions of the client (SEEDS) and
provide a secure, reliable, platform independent and effective web-based software
solution.
Since this is a finance system, implement more security concerns and store client data
securely in proper manner.
1.3.2 Importance
The major backbone of a microfinance organization is its client base. They need to
capture the client data and keep them in a secure place to further reference. With this
system the loan officers can enter, organize and securely store the client information
and relevant data and maintain the client database up-to-date.
In the microfinance industry, loan officers must visit the clients to fill applications,
collect installments, grant loans, and many other loan follow-up purposes. In this
microfinance system the most of the loan processing workflow is automated, it will
reduce the cost and time spent on paper work and also field work of client’s loan
officers.
The system will help managerial decision making by providing accurate and relevant
data monitoring screens. It supports easy to understand, real-time user interfaces,
showing a graphical presentation of the current status (snapshot) and historical trends
of the organization’s Key Performance Indicators (KPIs) to enable immediate
decisions to be made at a glance.
14. 3
1.4 Scope
• Loan Processing
• Automates the loan processing s ystem and reduces the manual work.
• Provides a trial calculation facility to users which will apply the loan
calculation and forecasts the loan schedule.
• Work flow sequence for loan processing is automatically checked and
controlled.
• Client Data Handling
• Creates a better stakeholder details base which will facilitate SEEDS to
manage and expand their business strategies.
• Transaction Handling
• Create receipts to capture rental payments for loans.
• Manage ment Information Handling
• Integrated and powerful management information system with decision
supported dash-boards with graphical representations.
• Report Center
• Equipped with a report center which enable management to monitor and
analyze company performance.
• Day End Handling
• Provides day-end facility to process all the transactions which should
occur at the end of the day.
• Closure of Facilities
• Provides closures to close facilities manually after completion of the
installment schedule.
15. 4
1.5 Selected Process Model
Among many software development process models Iterative Waterfall Model is
selected for this project. Derived from the classic Waterfall Model, Iterative Waterfall
Mode l has the advantage of its namesake, iterativeness. In the classic Waterfall Model
assumes that no defects are introduces during any development activity. But in reality
defects do get introduces in almost every phase of the life cycle. Thus we need
feedback paths which included in the Iterative Waterfall Model.
Figure 1.1: Iterative Waterfall Model
1.5.1 Feasibility Study
Main aim of the feasibility study is to determine whether developing the project is
financially and technically feasible. During this phase project manager gets an overall
understanding of the problem. Then a best solution will be formulated by a cost/benefit
analysis and after examining alternate strategies.
1.5.2 Requirement Analysis
This phase consists of two main activities, requirement gathering and requirement
analysis. Target of Requirement gathering is to collect relevant data from the customer.
Then the collected data will be analyzed to clearly understand what the customer
wants. The goal of requirement analysis activity is to find out any inconsistencies and
resolve all incomplete requirements. It is important to avoid ambiguities and
contradictions of requirements in this phase.
Feasibility Study
Requirement Analysis
Design
Coding
Testing
Maintenance
16. 5
1.5.3 Design
Design phase transforms requirements specification in to suitable implementation in
some programming language. During this phase software architecture is derived from
the software requirements. There are two approaches to the design phase, Structured
and Object Oriented. Object Oriented Design (OOD) is selected for this project. OOD
has many advantages against the structured approach. OOD will first identify various
objects (real world entities) occurred in the problem and then identify the relationships
among those objects.
1.5.4 Coding
Coding phase will translate software design into source code in a decided
programming language. For this project Java is the selected programming language.
For an agreed design, the aim of this phase is to implement the design in the best
possible manner. The coding phase affects both testing and maintenance phases
directly. A well written code reduces the testing and maintenance effort significantly.
1.5.5 Testing
Many testing levels are performed on the source code. Unit Testing, Integration
Testing, System Testing and User Acceptance Testing are the most common. Unit
Testing is done by the developers to make sure their code is work with different
environments, conditions and logics. Integration Testing is performed when the two
modules of the system are connecting with each other. System Testing is performed on
the whole system and the User Acceptance Testing is done at the client site by the
customers to give their approval of the final system.
1.5.6 Maintenance
Maintaining most of the software products requires much effort than the effort to
develop the product itself. There are three types of maintenance, Corrective, Perfective
and Adaptive. Correcting errors which were not discovered during the product
development phase is Corrective maintenance. Enhance the functionalities of the
system is Perfective maintenance. Adaptive maintenance is to port software product in
to new environment.
17. 6
1.6 Dissertation Overview
The first chapter, Introduction describes the motivation for the project with scope,
objectives and illustrate about the contents in the dissertation. Then the Analysis
Chapter describes the business procedure along with problems existing with the
manual system, requirements and how they gathered and the details of the proposed
system. Third chapter consists of design techniques used for this project. In this
chapter mainly focuses on UML diagrams that used to design the application. Software
and hardware environments used for develop the system are discussed in the
Implementation chapter. Also it describes the source folder structure of the project and
used third party components and frameworks. The followed testing approaches along
with test results are given in detail in the Evaluation Chapter. Also it contains how the
client feedback was regard to their expectations. The final chapter which is the
Conclusion Chapter includes achievements gained from the project, problems
encountered and how it solved, lessons learnt and the information about further
development of the system.
At the end of the main chapters a reference section for all the materials referred to
write the dissertation are given. After that In appendices; System Documentation,
Design Documentation, User Documentation, Management Reports, Test Results,
Code Listing and the Client Certificate are shown. At the end, a glossary of terms and
a general index is provided.
18. 7
Chapter 02 - Analysis
This phase divided in to two main activities, Requirement gathering and Requirement
analysis. Main goal of this phase is to clearly gather customer requirements, avoid
ambiguities and finalize the project scope.
2.1 Requirements Gathering
Requirement gathering is a crucial part of a software solution. If the requirements are
crystal clear, chances are to be success is higher. But most commonly requirements
might be ambiguous as well as not complete. To define the project scope clear and
complete, customer requirements needed. Hence many requirement gathering
techniques were used to complete the task.
• From Interviews
An interview is a conversation with stakeholders to elicit or validate needs and
requirements. It is the most common technique has been used for requirement
gathering. For this project, branch manager, IT manager, loan officers were
interviewed for detailed requirements.
• From Company website
SEEDS has their own website hosted in http://www.seeds.lk. The website supplies
many details about the company such as its vision and mission, contact details,
division details, case studies, enterprise services and training details.
• From documents and books published by the company
After interviewing the stakeholders it will be better to study company documents and
remove unnecessary ambiguity from the requirements.
2.2 Similar Solutions
Similar software solutions have been studied to find other approaches to meet the
requirements. Thus understanding existing solutions will be an advantage to make M-
Fin a better software solution.
19. 8
• Mifos [WWW3]
Mifos is a web based microfinance software. It is an open source software which
charges only for support services and maintenance. The community version of the
software can be downloaded from the website. It has facility to create client groups,
centers and manage loan details. It is also acting as a collaborative platform to share
knowledge and experience between micro finance institutions.
Evaluation of similar solutions(IMPORTANT)
Why u ddnt reccmnd this www.mifos.org’ software. What is lacking from it.
Why ur system is so much better than this
• The Banker [WWW5]
This is a Sri Lankan software product with multi-user, multi-currency and multi-
lingual capabilities. This product is developed by Senova Multi Systems Ltd.
Figure 2.1: Interface of Mifos
Figure 2.2: Interface of ‘The Banker’
20. 9
• Loan Performer [WWW4]
Loan performer is a Multi-User MIS application for microfinance, developed by
Crystal Clear Software Ltd in Uganda. It is developed using Microsoft Visual FoxPro
and VB.Net technology. It combines basic Client data with Shares, Savings and Loan
transactions.
• Octopus [WWW6]
Octopus is another microfinance MIS developed in France. There are three editions of
Octopus software, Octopus Community, Professional and Online. Octopus software
supports many sectors in microfinance.
Figure 2.3: Interface of 'Loan Performer'
Figure 2.3: Interface of Octopus
21. 10
There are many microfinance software created by many companies around worldwide.
Since microfinance industry has no legalized act in Sri Lanka, business processes of
Microfinance Institutions are much different to each other compared to banks. So most
of the business of MFI’s revolves around the software product they buy. And the
customization charges of such products are so high that they cannot afford to do those
changes. So the M-Fin system provides fully customizable solution for SEEDS. It is
providing all the necessary facilities to automate the loan process while implementing
security and authorization they need.
2.3 Current Business Process
The current business process of SEEDS is divided into following categories.
• Client Registration Process
When a customer asks for a loan he or she has to fill an application provided by the
SEEDS. The document also contains the loan details, loan agreement, promissory
notes, etc.Then loan officer opens a client file and keep the application manually.
• Application Approval Process
After the completion of the loan application, assigned field officer does an appraisal
for the loan. After the appraisal, branch assistant manager visits the client to make sure
everything is in order. Then the loan application is forwarded to the loan manager for
the approval. Each approval authorities have given loan limits for approval. Depending
on the loan amount the approval authority might be vary.
• Loan Disbursement Process
After loan approval loan agreement must be signed by both parties. Then the client file
will be updated and documents will hand over to the client. Every client who has
granted a loan must create a savings account with SEEDS. The loan executive will
disburse the loan amount to client’s savings account.
• Installment Collection Process
The installments must be paid by the clients on or before due dates through their
savings accounts. Loan cards of clients will be updated by the loan officers manually.
22. 11
• Facility Follow-up Process
SEEDS keeping a loan sheet which includes all the details about loan facilities. It is
being manually updated according to the day-to-day transactions. All the reports are
taken based on the loan sheet. When a client didn’t pay the installments SEEDS will
post reminder letters. After 3 months of arrears, the facility will be classified as non-
performing and treated accordingly.
2.4 Problems Exist in the Current System
SEEDS doesn’t have a proper automated loan processing system. They do most of the
work manually. Spread-sheets are the only electronic media has been used by the loan
officers.
• For each client, SEEDS maintains a client file and keeps all hard copies of
documents. If any information needed about the client they have to manually
search the file and go through it for the relevant information.
• When a loan installment is been paid by the client, loan officers has to manually
upda te the loan card and the loan sheet.
• All the transaction details are maintained manually in the ledger books.
• Loan officers couldn’t view the loan installments which due on a specific date.
• The loan sheet which contains all the detail about the loans can be only used by a
single user at a time. This has severely reduced the efficiency and the productivity
of the loan officers.
• All the reports are extracted from the loan sheet, which takes lots of time.
• The manual system is less productive and less efficient; it will take weeks to grant
a loan facility.
2.5 Functional Requirements
Functional requirement defines the function of a system component. These
components added up to build the module, and integrated modules complete a whole
system. Usually functional requirements are captured in use cases which is a part of
Unified Modeling Language (UML).
23. 12
Figure 2:4 shows the main actors of the M-Fin system. Following are the use cases of
the actors.
• Manager :
o Approve / reject loan applications
o Inquire facility details
o Loan closure
• Loan Administrator :
o Maintain reference data
o Assign loan officers
o View transaction data
• Officer :
o Do loan calculations
o Follow-up loan facilities
o Login to the system
o Create receipts
• System Administrator :
o Grant / revoke access to users
o Run dayend process
Figure 2:4: Actors of the System
24. 13
2.5.1 User Authentication & Authorization
All the officers of the SEEDS should have a username and a password to login in to
the system. The system administrator should create new usernames and passwords for
new users of the system. Also they should have access to the relevant branches which
are created in the system. And the system administrator should grant the access rights
to the programs of the system, to each stakeholder type.
2.5.2 Maintain Client Database
For a microfinance institution client database is one of their most important assets.
Client database should include most of the details about client, their family details,
occupation, earnings, education and many more other important details. When a new
client requests for a loan his or her details should be feed in to the system for future
use.
2.5.3 Maintain Reference Data
When using software system, there are many reference data to be maintained. Such as
branch details, stakeholder types, loan types, approval groups, branch details, etc.
Figure 2:5: System Boundry for Loan WorkFlow
25. 14
Officers should be assigned to maintain these data in the system. And have to make
sure any modification to these data could be done by proper authorization level.
2.5.4 Loan Calculation
SEEDS have predefined loan schemes. For each loan type there are maximum and
minimum loan amounts, loan period, and interest rates. But when a customer asks for
different loan amount or different repayment period or interest rate, loan officer can
change those parameters and do a trial calculation. Then the system should show the
net installment amount for the loan. Also system should give a facility to print the
repayment schedule as a quotation.
2.5.5 Loan Approval
After creating the trial calculation, loan application must be created. All the relevant
data to the purpose of the loan is filled in the application. The approval groups are
defined in according to the loan amounts. A member of relevant approval group can
approve or reject a loan with responsibility.
2.5.6 Print Loan Documents
There are mandatory documents listed for each approved loan. Loan Agreement,
Promissory Note, Guarantor Document are some of them. Relevant client and
application data should be filled automatically in the pre-printed document and should
have a facility to print them.
2.5.7 Loan Information
Information about approved loans should be viewed through a single interface.
Repayment schedule, Payment receipts details, performing non-performing status of
the loan, and amount in arrears, no of loans of a client are the critical MIS information.
2.5.8 Day-End process
Day-end process should be run by system administrator after the loan processes are
finished at the branches. Day-end process should process the loan installments due on
following day, change performing /non-performing status of loan facilities on the
given parameters.
26. 15
2.6 Non-Functional Requirements
• Platform Independency
System will be capable of working flawlessly irrespective of the operating system used
in the user computer. Since this is a web solution only need a web browser to run the
system.
• Reliability
Reliability is the ability of a system to perform its intended functions under stated
conditions. ‘M-fin’ is a financial system. If a financial system becomes not functional
even for a single day, it might be a huge damage for the organization. So reliability is a
crucial factor of the non-functional requirements.
• Usability
Usability means the ease of use. Simply it is the user-friendliness of the system.
System interfaces, processes and many other things user interact with should be
designed and developed to lean and understand by users easily. User interfaces should
be less complicated and responses should be given in a timely manner.
• Maintainability
Maintainability is the capability of a system that can be maintained. Maintenance will
include error correction, new developments, change environments, etc. The system
should be maintained with minimum effort and time.
2.7 Benefits of the System
Regarding the above functional and non-functional requirements, following benifits
have been provided by the ‘M-Fin’ software solution.
• All system users have a login area of the home screen to log in to their specific
branches. The login process will be secured with ‘https’ protocol and passwords
will save to database as hash values using one-way hash functions.
• System provides a registration form for capture all the stakeholder details, such as
family details, residence details, education details, health details and experience.
• Access rights screen provided to grant or revoke access rights from the system
users.
27. 16
• Loan calculation screen to calculate loan installment and schedule according to
the parameters such as loan amount, period, interest rate, etc…
• There is a screen to capture loan application details.
• System facilitates to print loan documents in the loan workflow screen.
• There is a program to maintain approval authority details. Approval authorities are
validated based on this data when authorizing a loan application.
• Dual-authorization provided to relevant reference data maintenance programs.
• A closure screen provided to do facility closures such as early settlement and
normal closure.
• A SMS will be generated to the approval authorities when an application is
forwarded for their approval.
• System Administrator can view active users of the system and logout any user if
required.
28. 17
Chapter 03 – Design
3.1 Alternative Solutions & Justification
Several alternative solutions were compared to find the most suitable method to solve
the problem domain and de velop t he system.
• Standalone Application
According to the given requirement M-Fin system should be able to run by many
SEEDS branches in the different locations throughout the country. The system must
run in the network infrastructure which already connected all the branches. If a
standalone solution is developed, every user has to install the system in their computer
to acces the system. Also standalone applications are platform dependent. Standalone
app lications also have high maintenance cost.
• Mobile Solution
When using mobile solution, system will be available to access from anywhere.
However it is incorporated with some problems: Users of the system required to have
web accessible phones such as smart phones to access the system. Currently SEEDS
couldn’t afford such high cost.
• Web Based Solution
Web based systems run through the web browser of a computer. It can be easily
accessible by many users connected to a network. Web based systems have central
application server and database. Thus it can be easily maintained. Since every
operating system has a web browser, the application will be system independent.
Justification
According to the above pros and cons the best solution would be a web based solution.
There are there main technologies to develop web based application, PHP, .Net and
Java. Since Microsoft offers an easy to learn development toolkit, a system can be
developed in a short time period. But the price of a development IDE’s such as
Microsoft Visual Studio is relatively so high. When comparing two open source
solutions, Java has the most of the framework support, platform independency and
29. 18
robustness. It also has free IDEs for the development purposes. Thus J2EE is chosen as
the development language for the M-Fin loan management system.
3.2 Systems Design Methodology
The Design phase transforms requirements to suitable implementation in selected
design model or technique. There are two approaches to the design phase, Structured
and Object Oriented. Object Oriented Design (OOD) is selected for this project,
Because OOD has many advantages against the structured approach. It will leads to a
clear design with flexibility, scalability. Also the software can be reused and easily
maintained. OOD will first identify various objects (real world entities) occurred in the
prob lem and then identify the relationships among those objects. OOD aims to model
the problem domain, the problem we want to solve by developing an object oriented
system. Unified Model language (UML) is selected as the modeling language of the
system. UML is a collection of graphical symbols for expressing model of the system.
UML provides a very robust set of notations which grows from analysis to design.
3.3 Systems Design
Systems design is the process of defining the architecture of the software solution to
meet the specified requirements. Object oriented methodologies are used in the system
design and UML notations are used to illustrate the designs. A best system design
makes the software solution more efficient.
• Systems Design Tools
There are many tools for system design such as ‘Smart Draw’,’ Rational Rose’, etc.
Also there are plug-ins for many popular IDEs such as Eclipse and NetBeans. But
some of them don’t facilitate the required needs and some are using non-standard
notations. ‘Enterprise Architect 7.0’ from Sparx Systems is used as the system design
tool because it provides facilities to draw all the diagrams which needed and it uses
more standardized representation of UML notations. Use-case diagrams, Entity-
relationship diagrams, Class diagrams, Activity diagrams and Sequence diagrams
which are drawn using this tool.
30. 19
3.4 Systems Structuring
The software solution is divided into following modules to reduce the complexity of
the design.
3.5 Deliverables
The following diagrams will give information about the deliverables in the system
design stage.
M-Fin
Loan
Processing
Information
Center
General
Ledger
System
Administration
Reference
Data
Figure 3.1: Enterprise Architecture Tool
Figure 3.2: System Structure
31. 20
3.5.1 Data Model
Data model is an abstract model which shows specifically how the data is stored and
accessed in the system.
• Entity Relationship Diagram
Entity Relationship diagrams are abstract and conceptual representation of data which
produce a type of conceptual schema. It shows the relationships between entities in a
database. The following digram is the ERD for ‘M-fin’ software solution which is
drawn by using the Enterprise Architect tool.
.
Figure 3.3: ER Diagram
32. 21
• Table Structures
The following is sample table structures for the table Stakeholder & System Program
in M-fin system.
System : Microfinance Loan Management System
E : Entity
D : Derive
R : Reference
Entity Code : STH
Entity Name : Stakeholder
Table Name : stakeholder
Table ID : tbl_01
Description : Stakeholder
Indexes :
Description Attribute Name Type
Lengt
h
Decim
al
Ke
y
E / D /
R
Stakeholder Id STAKEHOLDERID Numeric 7 PK E
Stakeholder Type Id
STAKEHOLDERTY
PEID Numeric 7 FK R
Title TITLE Varchar 10 E
Initials INITIALS Varchar 20 E
First Name FNAME Varchar 20 E
Last Name LNAME Varchar 30 E
Full Name FULLNAME Varchar 100 E
Date Of Birth DATEOFBIRTH Date E
Gender GENDER Varchar 1 E
Marial Status MARITALSTATUS Varchar 1 E
NIC/Passport No NICPASSPORTNO Varchar 20 E
Account No ACCOUNTNO Varchar 20 E
Address Line 1 ADDRESSLINE1 Varchar 100 E
Address Line 2 ADDRESSLINE2 Varchar 100 E
Address Line 3 ADDRESSLINE3 Varchar 100 E
Address Line 4 ADDRESSLINE4 Varchar 100 E
Telephone No TELEPHONENO Varchar 20 E
Fax No FAXNO Varchar 20 E
Mobile No MOBILENO Varchar 20 E
Email EMAIL Varchar 20 E
System User ID SYSUSERID Numeric 7 E
Created Date CREATEDDATE Date E
33. 22
Table 3.1: Table Structure – Stakeholder
Entity Code : SYP
Entity Name : System Program
Table Name : system Program
Table ID : tbl_05
Description : System Program
Indexes :
Description Attribute Name Type
Len
gth
Decim
al
Ke
y
E / D /
R
System Program Id
SYSTEMERPROGRAM
ID Numeric 7 PK E
System Program
Code
SYSTEMPROGRAMCO
DE Varchar 4 E
Description DESCRIPTION Varchar 20 E
Parent ID PARENTID Numeric 7
Reference URL REFERENCEURL Varchar 100
System User ID SYSUSERID Numeric 7 E
Created Date CREATEDDATE Date E
Table 3.2: Table Structure – SystemProgram
• Class Diagram
Class diagram is the main building block of the object oriented modeling. They
describe the static structure of a system. A class is a representation of an object and, in
many ways; it is simply a template from which objects are created. The classes in a
class diagram represent the main attributes and their interactions. In the class diagram
these classes are represented with boxes which contain three parts. In the upper part
there is the class name. Middle part contains the attributes of the class. Bottom part is
for the methods or the operations of the class. A part of the class diagram is displayed
below which is drawn using the Enterprise Architect tool.
34. 23
Figure 3.5: Class Diagram related to classes of Stakeholder Reference
Figure 3.4: Class Diagram related classes of Loan process
35. 24
3.5.2 Process Model
• Use Case Diagram
Use case diagrams are graphically model the functionality of the system using actors
and use cases. Use case diagrams are used to specify requirements on a subject,
required usage of a system. An organization, a person or an external system can be
represented as actors and their interactions with the system represented in use cases.
When drawing a use case diagram system boundaries are marked in rectangle. Use
cases are drawn using ovals. Label with the ovals with verbs that represent system’s
functions. Actor stereotype is used to draw actors in the use case. Associations
between actors and use cases are indicated in use case diagrams by solid lines. An
association exists whenever an actor is involved with an interaction described by a use
case. A sample use case diagram of M-Fin system display below, which drew for the
officer actor. Compelete usecase diagrams are included in the appendix.
The following are the usecase narratives of the Mfin system.
Use case No : U1
Use case : Input Client Details
Description : Create Stakeholder in the M-Fin system
Actors : Officer
Preconditions : Stakeholder Type should be exists in the system
Main Flow of Events :
1. Enter the NIC number and check for existing users
2. Enter general stakeholder details
3. Enter communication details of the Stakeholder
4. Fill other stakeholder details
Alternative Flows 1. If NIC already exists don't allow to create stakeholder
Post Conditions : Show the genarated Stakeholder number
Figure 3.6: Part of the Use Case Diagram
36. 25
Table 3.3: Usecase Narrative – Input Client Details
Use case No : U2
Use case : Login to the system
Description : Allow system users to login to the M-Fin system
Actors : Officer, Manager, Loan Administrator, System Administrator
Preconditions : User must have a username and password
Main Flow of Events
:
1. Run the M-Fin system in the web browser
2. Select the branch user login into
3. Enter the username
4. Enter the password
5. Click login button
Alternative Flows 1. If username or password is incorrect, display an error message
Post Conditions :
Open the main window of the M-Fin system.
Dislay the name of the user in the home screen
Table 3.4: Usecase Narrative – Login to the system
Use case No : U3
Use case : Approve Loans
Description : Approve or reject submitted loan applications
Actors : Loan Administrator
Preconditions : Application must be created in the system
Main Flow of Events
:
1. Go to the application maintenance screen
2. Search and select the application
3. Click on the approve button
Alternative Flows
1. If user click on the reject button, change application status to
Cancel
Post Conditions : Change application status to Approved
Table 3.5: Usecase Narrative – Approve Loans
• Activity Diagram
Figure 3.7: Activity Diagram
37. 26
Activity diagram is another important diagram in UML to describe dynamic aspects of
the system. They are typically used for business process modeling. It uses for model
the logic captured by a single use case or usage scenario, or for model the detailed
logic of a business rule. Activity diagrams show the workflow from a start point to the
finish point detailing the many decision paths that exist in the progression of events
contained in the activity. This flow can be sequential, branched or concurrent. The
following diagram is an activity diagram which is drawn using Enterprise Architect
tool to depict loan approval workflow of the M-Fin system.
• Sequence Diagram
The sequence diagram is another UML diagram used primarily to show the
interactions between objects in the sequential order that those interactions occur.
It enables both to documentation and validation your logic, and commonly used for
both analysis and design purposes. Sequence diagram shows object interactions
arranged in time sequence. It depicts the objects and classes involved in the scenario
and the sequence of messages exchanged between the objects needed to carry out the
functionality of the scenario. Time is represented in the vertical direction showing the
sequence of interactions of the header elements, which are displayed horizontally at the
top of the diagram. The following sequence diagram is display the sequence of Login
to the M-fin system activity. It is also drawn using Enterprise Architect tool.
Figure 3.8: Sequence Diagram
38. 27
3.5.3 User Interface Design
User interfaces are the components of the system which users will interact with. User
interface design is the part where designers focus on user interaction and experience.
The goal of user interface design is to make the user's interaction as simple and
efficient as possible while accomplishing business need.
• Home Page
The following figure shows the homepage of the M-Fin loan management system.
Since M-Fin is not a website, there are no animated items available in the page. The
screen is developed with professional look and feel, to assure a user can easily navigate
through. It facilitates user to select the branch; then enter the user name and password
for login. As an additional facility user could click on one of the modules he/she wants
to login to. There is a small description below the modules, to educate user what
contains in the modules.
Figure 3.9: Home Page
39. 28
• Main Screen
The following figure is the main screen of the M-fin system. It will load as a separate
window to the home page. It is mainly divided into four sections. First one is the
header section; it includes the title of the system and it displays the login branch and
the system date. Second one is the navigation section, which includes a tree structure
to display system modules and programs of the M-Fin system. The system tree is
divided into five modules to navigate through easily. If a user select a module from
home screen when login, the main screen will load with expanded tree of the selected
module. A user can jump to another program by selecting it from the tree without
closing the current program. That is the main reason to display navigation menu
throughout the whole session. The third section is where the program screen is displays
according to the selected tree node. And the forth section is the toolbar section below.
For some programs the system uses a common toolbar. Which includes add, modify,
delete, authorize and inquiry options. The common toolbar loads according to the
requirements of the programs and the given access rights for each user.
Figure 3.10: Main Screen
40. 29
3.5.4 User Interface Standards
HyperText Markup Language (HTML) is used to develop the interfaces and Cascading
Style Sheets (CSS) is used as the style sheet language. JavaScript is used as the client
side scripting language. Common interface standard set is developed using above
languages and use to standardize all the user interfaces of the M-fin microfinance
system.
• Input Forms
Input forms contain three sections, input fields, common toolbar and action buttons.
Input fields allow data to be enterd or display data selected in the grid. Display input
fields will be set to readonly. Date input fileds have a button to trigger the date picker
component and display the date selected by the date picker. Also there are reference
input fields which also have a button to trigger the reference browser.
Figure 3.11: Input Forms
41. 30
• Validations
Mandatory fields of the input forms are marked in red colour asterix. Optional fields
are marked in blue colour asterix. If a user violates a validation condition, the error
will display in the division filed below the element.
• Data Tables
Data Grids display records which already saved in the database. Each column of the
grid can be sorted acending or decending. The records can be selected column wise or
row wise as well.
Figure 3.12: Validations
Figure 3.13: Data Tables
42. 31
• Dialog Boxes & Messages
M-Fin system uses default browser dialog boxes and messages for alerts. These
messages are simple and descriptive to avoid confusion.
• Date Picker
Date Picker is used to pick the dates in date fields of M-Fin system. A user can go over
years and moths of the calendar easily because of its well thoughout design. It is very
much user friendly and able to enter a date within seconds.
Figure 3:14: Message fromthe System
Figure 3:15: Date Field and Date Picker
43. 32
• Reference Data Browsers
Common browser windows help user to browse and select the already defined
reference data. It facilitates to search data by criteria, and display data in a grid.
Button toolbar will contain an OK button for input the selected record value to the
parent screen and Cancel button for simply close the popup without inputting any
record. Also double clicking a row will execute the function of the OK button.
• System Prints
The reports of the system generated in Excel fromat and the reference data inquiries
are generated in PDF format. Excel reports can be directly open by MS Excel
app lication or saved to the local computer. PDF files created by the system open in
popup window and can be sent to the printer or be saved in the local computer.
Figure 3:16: Common Browser
44. 33
Chapter 04 – Implementation
The main activity of the implementation phase is to translate the agreed design to
source code using selected programming language in the best possible manner.
4.1 Development Environment
Java Enterprise Edition (J2EE) is used as the main programming language of the ‘M-
Fin’ software solution. The system used the n-tier architecture displayed as the
following figure. HTML, Jsp/Servlets, JavaScript, JSTL and Ajax technologies are
used in the Presentation Layer of the system. Struts MVC framework is used for
request processing and validations as the Presentation Logic Layer. Spring framework
is used as the Business Delegation Layer for dependency injection and aspect oriented
programming; Hibernate framework is used as Data Access Layer and MySql is used
as the database. All technologies mentioned above are open source. Combination of
these frameworks gives many benefits such as validation, transaction rollback,
database independency with the robustness of the java.
Java Enterprise Edition
Presentation
Layer
•JSP/ Servlet
•Javascript
•Ajax
Presentation
Logic Layer
•Struts
Business
Delegation
Layer
•Spring
DataAccess
Layer
•Hibernate
Data Source
•MySql
Data Flow
Figure 4:1: Technical Infastructure of the M-Fin system
45. 34
• Software and Hardware Used
o Software
Microsoft Windows 7
Enterprise Architect 7
MyEclipse 8.6
MySQL Server 5.1
MySQL GUI Tools
Java Development Kit 1.6
Apache Tomcat Sever 6
Flex Builder 3
Web Browser with Flash and PDF reader plug-in and firebug
add-one
Microsoft Office package
Struts, Spring and Hibernate jar files
Adobe Photoshop CS4
o Hardware
Desktop computer with 2.9 GHz Core2Duo processor
4GB RAM
1TB Hard disk
Keyboard and Mouse
Internet Connection
4.2 Hardware and Software Requirements
4.2.1 Server Side
• Minimum Hardware Requirements
o Server computer with 64bit architecture
o 3.0 Core2Duo Processor
o 4GB RAM
o 40GB Hard disk space
• Minimum Software Requirements
46. 35
o Operating system which supports 64bit architecture (Windows or
Linux)
o Apache Tomcat Server 6 (64bit)- Windows or Linux version
(Depending on the ope rating s ystem used)
o MySQL server 5.1
o Java SE 1.6 runtime environment
4.2.2 Client Side
• Minimum Hardware Requirements
o Computer with 2.0 GHz processor
o 512MB RAM
o Network Connection
• Minimum Software Requirements
o Windows XP or higher operating system
o Browser with Flash and PDF plug-in
4.3 Development Tools
When developing an enterprise scale application, third party tools are become more
useful to save the time and effort of the developers. Because of that reason many
development tools have been used to develop M-Fin loan management system to make
it a successful one.
• MyEclipse 8.6
MyEclipse is a commercially available Integrated Development Environment (IDE) for
Java Enterprise Edition. It is built upon famous Eclipse platform and integrates
proprietary and open source plug-ins to the development environment. It has support
for JSP/XML visual designing, code debugging, code auto generation, direct control
and deployment of Apache Tomcat server, adding Struts, Spring and Hibernate
capabilities, refactoring, hot deployment and many other features which have been
very useful for development of the project.
47. 36
• MySQL GUI Too ls
MySQL GUI tools are a free toolkit which consists of MySQL Administrator, MySQL
Query Browser, MySQL Migration Toolkit and MySQL System Tray Monitor. Using
MySQL Administrator databases can be created, deleted and maintained. It also
provides backup and restore facilities for MySQL server. Users can create tables, drop
tables and view tables structures of existing tables. Main function of MySQL Query
Browser is executing SQL queries. It is also used to view and modify data of tables.
MySQL Migration Toolkit is used to migrate existing databases from various vendors
to MySQL databases. MySQL System Tray Monitor monitors the status of the MySQL
database service and provides options to start-up, shutdown or configure the instance.
• Adobe Photoshop CS4
Throughout the project development Adobe Photoshop CS4 is used as the image
processing software; to create images, edit pictures, and create logos and buttons
which required for the project.
• Adobe Flex Builder 3
Adobe Flex Builder is also an IDE built upon Eclipse platform to support Adobe Flex
development. It supports WYSWUG editing of Adobe Flex application interfaces. Flex
Builder 3 supports only up to Flex SDK 3.0. The newer version of the Flex Builder
renamed as Adobe Flash Builder. Adobe Flex Builder is used to develop the dashboard
of the M-Fin project.
• Firebug
Firebug is a free and famous web development tool comes as an add-on to the Mozilla
Firefox web browser. It has a console and a network monitor with the support for the
HTML, CSS and JavaScript languages. Firebug is really helpful for the developers
because they can monitor HTTP Requests and responds with the parameters and
headers. Also a developer can inspect HTML elements through firebug add-on.
48. 37
4.4 Coding Structure & Standards
4.4.1 Folder Structure
Following figure shows the structure of the source code where Java classes, libraries,
CSS files, images, JavaScript files, JSP files and configuration files included.
4.4.2 Package Structure
Java source files are contained in the ‘src’ folder of the file structure. Inside src folder,
there is a package named ‘mfin’ and rest of its sub packages are named according to
the design patterns and tasks they used to perform.
Java Classes
Libraries
CSS Files
Images
JavaScript Files
Struts Configuration File
Struts TagLibs DTD Files
Validation Files
Deployment Descriptor File
JSP Files
Root Folder
Figure 4:2: Source Folder Struture
49. 38
• Struts Action Classes
An Action class in M-Fin system extends the ‘Dispatch Action’ class of the Struts
framework. Action classes transfer data from view layer to specific buiness process
and return data from business process to view layer.
• Business Deligate Classes
Contains Business Delegate layer interface classes.
• Business Deligate Implementation Classes
Contains classes which implements Business Detagate interface methods.
• Spring Configuration XML Files
Contains applicationContext.xml file and extended spring configuration XML files
such as spring_action.xml, spring_dao.xml, spring_service.xml and spring_global.xml.
• Data Access Object Interfaces
Contains interfaces of Data Access Object layer.
• Data Access Object Layer Implementation Classes
Contains classes which implements Data Access Object interface methods.
• Domain C lasses
Contains domain classses of the project. Domain classes contain the property
mappings with database tables.
Struts Action Classes
Business Delegate Interfaces
Business Delegate Implementation Classes
Spring Configuration XML
Data Access Object Interfaces
Data Access Object Implementation Classes
Struts Property Files
Utility Classes
Domain C lasses
Figure 4:3: Java Package Structure
50. 39
• Struts Property Files
Contains Buttons, Errors, Lables and Messages property files.
• Utility Classes
Contains Utility classes of the M-Fin project.
4.5 Open Source Frameworks Used
Frameworks are collection of interfaces and classes that designed to work together to
handle a particular type of problem. Following frameworks are used in the M-Fin loan
management system development.
4.5.1 Apache Struts
Apache Struts is an open source framework for developing Java Enterprise web
applications. It implies the Front Controller design pattern. The main goal of the Struts
framework is to separate the Model from the View and the Controller in the traditional
MVC architecture.
• Key Components of the Struts framework
o Action Servlet
Action Servlet is a built-in class that comes with the Struts libraries. It is the controller
component of the application. Only need one Action Servlet class per web application.
In M-Fin application the process method of Action Servlet get extended to check the
session for each HTTP request.
Request
Struts-config.xml
Form Bean
Action
object
Action
Servlet
s
Model
View
Figure 4:4: Struts Framework Components
51. 40
o Form Beans
Form Beans are same as Java bean classes. The Action Servlet calls the setters of form
beans to populate them from form data. Form validation is another main usage of form
beans.
o Action Object
After a request is received, The Action Servlet instantiate the relevant Action class
according to the Struts mapping. This action objects usually map to user actions. It has
a call-back like method named execute() which will be called by the Action Servlet.
o Struts-config.xml
Struts-config.xml is a Struts specific deployment descriptor file. It contains mapping of
request URLs to Actions, Actions to From Beans and Action to JSP pages.
4.5.2 Spring
Spring is an open source application framework which implements inversion of
control. Inversion of Control (IoC) is an object orient programming practise where
object coupling is bound at runtime not at compile time. Spring framework made it
possible by object interactions being defined through abstractions. The binding of
object properties is achieved through Dependency Injection. Dependency Injection is
also a design pattern which allows a choice of property to be made at runtime.
IoC
J2EE
------
EJB
WEB
------
Struts
JSP
AOP
DAO
------
JDBC
ORM
------
Hibernate
Figure 4:5: Spring Framework Components
52. 41
The default Spring configuration file name is applicationContext.xml. In M-Fin system
this file is extended by four other configuration files. Those are spring_action.xml
which is for Action classes mapping, spring_dao.xml which is for map DAO classes,
spring_service.xml for map service classes and spring_global.xml for global bean
classes.
4.5.3 Hibernate
Hibernate is also an open source technology which uses for object-relational mapp ing
(ORM) in Java language. Hibernate provides a framework for mapping an object
oriented domain model to relational databases. It maps the Java classes to database
tables. This mapping can be accomplished through a configuration file or by using
Java Annotations. It also provides data querying and retrieval facilities that
significantly reduces the development time. Hibernate 3.0 which used in M-Fin system
provides three fully-featured query facilities. Hibernate Query Language, Hibernate
Criteria API and Native SQL.
Normally we use hibernate.hbm file to do the Hibernate mapping. But since we are
using Hibernate with Spring framework in M-Fin application, Hibernate property
mappings are written in spring_global.xml file.
Hibernate
Application
Persistent Objects
Hibernate Properties XML Mapping
Database
Figure 4:6: Hibernate Framework Components
53. 42
4.6 Third Party Components Used
4.6.1 Active Widgets Grid
Active widgets Grid is a freely available cross-browser scrolling data grid control
which builts on JavaScript. It allows developers to create data grids dynamically at the
client-side with JavaScript/DHTML. This highly customizable data grid provides
professional look-and-feel and high interactivity.
4.6.2 Date Picker
Moo Tools Date Picker is used to pick the dates in date fields of M-Fin system. It is
smoothly animating and configurable JavaScript component. It is also supports time-
picking.
4.6.3 dTree
dTree is a simple and free JavaScript tree menu component. The tree nodes don’t need
to be in an order within the code as you can re-order them. So it is ideal for generating
a tree structure from a database. It is also very customizable and easy to use.
Figure 4:7: ‘Active Widgets’ Data Grid
Figure 4:8: ‘Moo Tools’ Date Picker
54. 43
4.6.4 iText
iText is a free and open source library for creating and manipulating PDF files in Java.
It generates dynamic documents and Serve PDF to a browser. So the content can be
customized or personalized; for instance, the name of the end user can be stamped on
the pages. Also data can be presented with real time database information. Any further
people do not need to create PDF manually dealing with massive volume in content
and can be produced in unattended mode.
4.6.5 jExcel
jExcel is a free and open source Java API created to read, write and modify Excel
spreadsheets. It supports many font formatting and cell formatting options. The API
can be used to read data from many Excel formats. In M-Fin project jExcel API is used
for generate reports in Excel format.
Figure 4:9: 'dTree' JavaScript Grid Component
55. 44
Chapter 05 – Evaluation
In the software development life cycle, testing phase is a critical point as it is the stage
that the software being verify and validate to work as expect. It will check whether the
software meets specified requirements and satisfies the needs of stakeholders. So the
following approach takes part to make this phase a success.
5.1 Testing Method
• At the design phase, test cases were prepared to test the system with sample
data. It includes expected outputs, interface standards which will later
compared with the actuals.
• After implementing a system program, it must go through unit testing. Unit
testing is done by executing white-box testing on the program according to
a test case.
• When finish implementing modules, perform integration testing to check
whether communications between the modules are functioning properly.
• After all the modules integrated properly, system testing is done to test the
non-functional requirements of the system.
• Then the system is implemented in the client site and the client performs
user acceptance testing.
5.2 Test Cases
Test case is a testing artifact which should be designed at the test development stage.
So the following test cases were designed and they were executed at each testing level
as to identify defects. Several test rounds were carried on until the test case being
passed.
The following are the test cases used to execute the unit testing. First one is for the
Stakeholder Type program.
Test Case 01 Stakeholder Type Reference Program
No Description Input Expected Output
Pass/Fa
il
A
1
Entering Stakeholder
Type Code
a <less than 2
characters>
Display Error Message
P
aaa <more than 2
characters>
Display Error Message
P
56. 45
LN <relevant> P
blank<not relevant> Display Error Message P
A
2
Entering Description
aaaaaa<relevant> P
blank<not relevant> Display Error Message P
B
1
If select 'Add' Option Clear and enable inputs P
If enter valid data, click 'Submit' -> click
'Ok'
Create Pending record P
If enter invalid data, Err. Msgs P
click 'Cancel Back to state P
B
2
If select 'Modify'
Option
Display Active Records
grid P
select record Display selected record P
Disabled code P
Enabled description P
If enter valid data, click 'Submit' -> click
'Ok'
Create Pending record P
If enter invalid data, Err. Msgs P
click 'Cancel Back to state P
B
3
If select 'Delete'
Option
Display Active Records
grid P
select record Display selected record P
Disabled code,
description P
if select non used
record click 'Submit' -> click
'Ok'
Create Pending record
P
if select used record Integrity Err. Msgs P
click 'Cancel Back to state P
B
4
If select 'Authorize'
Option
Display Pending Records
grid P
select record Display selected record P
Disabled code,
description P
click 'Authorize' -> click
'Ok'
Make record as ''Active"
Record' P
click 'Cancel Back to state P
click 'Reject' -> click
'Ok'
Delete 'Pending' record
P
click 'Cancel Back to state P
Table 5: 1: Test Case: Stakeholder Type
The following testcase is for the Assignment of loans program in the Loan processing
module.
Test
Case 02 Loan Processing Module - Assignment of Loans
No Description Input Expected Output
Pass/
Fail
1 Screan Load Click tree node
Display Officer not
assigned loans in the grid P
57. 46
Display Loan Officers in the
select P
2
Check/uncheck
checkboxes
Tick 'Select All'
option
Tick all checkboxes in
select column P
Untick 'Select All'
option
Untick all checkboxes in
select column P
Click on a unchecked
checkbox cell Tick the checkbox in cell P
Click on a checked
checkbox cell Untick the checkbox in cell P
3
If no grid checkbox
ticked
Click 'Assign'
Err. message P
If no officer
selected Err. message P
If both officer is
selected and at
least 1 grid check
box is ticked
Display the name of the
officer in the ticked row
P
4
If Loan officer
column is blank
Click 'Submit'
Err. message P
If at least 1 Loan
officer column cell
is filled
Click 'Submit' ->
click 'OK'
Create officer assigned
records P
Click 'Submit' ->
click 'Cancel' Back to state P
5 Clear Click 'Clear'
Untick checkboxes P
Unselect officer P
Clear officer column P
Table 5: 2: Test Case: Assignment of Loans
The following testcase is for the Access Rights program in the System Administration
Module.
Test
Case
03 System Administration Module - Access Rights
No Description Input Expected Output
Pass
/Fail
1 Screan Load
Click tree
node
Display all the Programs on left
side unchecked P
2.1
Entering Stakeholder
Type
AAA<not
relevent>
Err. Msgs P
Expected Output at No 1 P
2.2
ADM<relev
ent>
Display Stakeholder Type
Description P
Display all the access given
programs in the right side
unchecked P
Ticked all the access given
programs in the left side P
2.3 Blank Expected Output at No 1 P
58. 47
2.4
Click browse
button Load Reference Browser P
Pick a
Record
Display Stakeholder Type Code P
Expected Output at No 2.2 P
3
Give/Remove
Accessrights
Tick
checkbox
rightside
remove the nodes below level and
upper level accordingly P
Untick
checkbox
leftside
Untick the below level and upper
level checkboxes accordingly P
Click left
button
create a tree in rightside with
ticked left side checkbox nodes P
Tick
checkbox
leftside
Tick checkboxes in upper level
and below level accordingly P
4
If no stakeholder type
Click
'Submit'
Err. Msgs P
If no rightside tree and
new user group Err. Msgs P
If no rightside tree and
access given user group
Remove the previously given
access rights P
If have rightside tree
Remove the previously given
access rights for removed nodes P
Give access rights for added rows P
5 Clear Click 'Clear' Expected Output at No 1 P
Table 5: 3: Test Case: Access Rights
5.3 Integration Testing
The purpose of Integration testing was to expose the defects in the interface
interactions between integrated components. Bottom-up Integration testing approach
was used in this testing level. So the bottom level units were tested first and move into
upper level units step by step. After test closure once the test meets the exit criteria, the
integrated system was ready to system testing.
5.4 System Testing
System testing is carried out using the completely integrated system. As this is the last
testing level before showing the system to the users, this testing need to be thoroughly
executed. So in this phase, evaluated the system’s compliance with the specified
requirements is verified.
59. 48
5.5 Acceptance Testing
Acceptance testing was performed by the client organization in their working
environment. This was used to define acceptability of the system as they were
expected and to be prepared for the delivery. A representative of each identified user
groups was participated in the acceptance testing and at the end of final test round a
feedback form was given to evaluate the success of the project.
5.6 Feedback
At the User Acceptance Testing a feedback form was given to the system users to get
their feedback about many aspects of the system. The user evaluation form shown
below was distributed among the various types of users covering all the functional
areas of the system in order to get their satisfactory level of the system for evaluating
the system by letting them to answer defined questionnaire.
The feedbacks for the project were very good and received average overall rating of
4.7 out of 5.
Figure 5:1: User Feedback Form
60. 49
Chapter 06 – Conclusion
6.1 Critical Assessment of Project
Since microfinance industry is a rapid developing business, there were many many
international and local alternative software solutions available. Most of them are
standalone and highly customized for the client requirements, thus they are not easy to
maintain. So M-fin is developed as a web based software solution with the aims of
easy maintenance. M-Fin has facility for In-depth access rights management which
was not available in other competitive systems. When comparing with other systems,
M-Fin has another advantage, a customizable automated approval system. Users can
define approval levels and the system will automatically filter the approval groups
based on the loan amount.
M-Fin also have a SMS notification engine which other systems not possess. It
generates notification SMS when a loan is assigned to an officer, when a loan is
approved and when the loan is disbursed. M-fin has many other interesting MIS
facilities such as interactive dashboards, manager screens to make it better than the
other existing software solutions.
Final output of this project is higly reliable, user friendly, web based loan management
system for Sarvodaya Economic Enterprise Development Services Limited. The
system was developed according to the requirements of the client and achieved almost
all the objectives of the project. The requirements of the SEEDS are carefully analyzed
and transformed in to a design architecture and impelented into an executable source
code using Java language. Then the system is gone through Unit Testing, Integration
Testing, System Testing and User Accepatance Testing for functional and non-
functional requirements. After that, system was deployed at the client site to begin its
operations.
61. 50
6.2 Problems Encountered
There were several problems encountered during this project design and
implementation.
• Since the microfinance business has no act or governing rules by the
government, SEEDS business was more complicated. Had to expend
many site visits and more time to clearly identify the requirements.
• Time factor become a main problem because the commitments with the
job.
• Had to do research and development for SMS handling and Flex
development.
6.3 Lessons Learnt
• Very important practical and industrial knowledge was gathered from
this project.
• Documentation and time management was very important to
successfully complete the project.
• Gained the experience of working with a corporate client and how to
make effective communication with them.
• Gatherd new knowledge in a different domain area which will be
helpful for further development of my carrier.
6.4 Future Work
Almost all of the system was developed in open source technology to support platform
independency and scalability of the system. Any inprovements to those technologies
can be easily incorporated in to the M-Fin system. Apart from that following are the
expected work to be done.
• Connect the M-Fin system to a SMS payment gateway to give
customers an easier opportunity to make payments.
• Improve flex dashboards with more features like forcasting and data
minng options.
• Incorporate Google maps to mark locations of customer homes.
• Implement full General Ledger features.
62. 51
References
[WWW1] – Wikipedia Website
http://www.wikipedia.org/ [2012.01.12]
[WWW2] – Website of Sarvodaya Economic Enterprise Development Services
(SEEDS)
http://www.seeds.lk/ [2012.01.14]
[WWW3] – Another microfinance software website
http://mifos.org/ [2012.01.16]
[WWW4] – Another microfinance software website
http://www.loanperformer.com [2012.01.16]
[WWW5] – Another microfinance software website
http://www.senova.lk [2012.01.18]
[WWW6] – Another microfinance software website
http://www.octopusnetwork.org [2012.01.17]
[WWW7] – Tutorial for configuring Apache Tomcat to run on HTTPS protocol.
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
63. 52
Appendix A- System Documentation
Following list of software should be installed before using M-Fin system.
• Java Development Kit (JDK) 1.6
• Apache Tomcat 6.0
• MySQL server 5.1
• Installing and Configuring Java
o Java Development Kit (JDK) can be downloaded
from http://www.java.com for free. Download and save it to your local
computer.
o Double click the java setup to start the installation.
o Click next on the following screen.
o Select the install location from the following screen and click next. The
wizard will install the JDK to the specified location.
o After that it will prompt for the installation for JRE automatically.
Choose the install location for JRE and click next. The wizard will
finish the installation.
Figure A: 1 Features of Java Installation
64. 53
o Next step is to configure the environmental variables for java. For that
go to My Computer -> Properties -> Advance System Settings ->
Environment Variables.
o Create a new variable named JAVA_HOME under system variables.
Set the path of the JDK installation directory as the value.
• Installing and Configuring Apache Tomcat Server
o Apache Tomcat server can be freely downloaded from following
URL. http://tomcat.apache.org/download-60.cgi/ .Download it and save
to the local computer.
Figure A: 2: Environmental Variables
Figure A: 3: Setting 'JAVA_HOME' Variable
65. 54
o Double click the Tomcat 6 setup and start the installation.
o Click next on the following screen.
o Accept the License Agreement.
o Choose the features of Apache Tomcat you want to install from the next
screen and click next.
o Fill-in the basic configuration from the following screen and click next.
o Select the path of the installed JRE of the system and click next.
o Select the install location from the following screen.
o Click finish and finish the installation wizard from the next screen.
o Set JAVA_OPTS environment variable to manage maximum and
minimum memory allocated to Apache Tomcat server.
Ex: -Xms512M –Xmx2048M –XX:PermSize=256M –
XX:MaxPermSize=2048M
• Installing and Configuring MySQL Server
o My SQL server 5.1 can be downloaded from following
URL http://dev.mysql.com/downloads/mysql/5.1.html.
o Download it and save to the local computer.
o Double click the setup file to start the installation.
o Click next on following screen to proceed.
Figure A: 4: Apache Tomcat Configuration Options
66. 55
o Select the program features you want to install from the next screen and
click next.
o Click install button to install the program. And click finish from the
next window.
o Now start the MySQL server instance configuration wizard.
o Select detailed configuration from the next screen and click next.
o Select developer machine option from the following screen.
o Select multifunctional database option from the following screen.
o Select manual setting option from the next screen and enter the no of
concurrent connections.
o Add the networking options as follows.
o Select default character set.
o Enter security options and click next to finish the wizard.
Figure A: 5: MySQL Networking Options
67. 56
Appendix B- Design Documentation
Following are the designed usecase diagrams of the M-Fin loan management system.
Use Case Diagram
The following use case diagram displays the use cases of actor ‘Officer’.
The following use case diagram displays the use cases of actor ‘Manager’.
Figure B: 1: Usecase diagramfor 'Officer' actor
Figure B: 2: Usecase diagramfor 'Manager' actor
68. 57
The following use case diagram displays the use cases of actor ‘Loan Administrator’.
The following use case diagram displays the use cases of actor ‘System
Administrator’.
Figure B: 3: Usecase diagramfor 'Loan Administrator' actor
Figure B: 2: Usecase diagramfor 'SystemAdministrator' actor
69. 58
Table Structures
Table Structures designed for Stakeholder Type and Stakeholder Program are
displayed below. All other table structures are followed that format.
Entity Code STT
Entity Name Stakeholder Type
Table Name stakeholderType
Table ID tbl_02
Description Stakeholder Type
Indexes :
Description Attribute Name Type
Lengt
h
Decima
l
Ke
y
E / D /
R
Stakeholder Type Id STAKEHOLDERTYPEID
Numeri
c 7. PK E
Stakeholder Type
Code
STAKEHOLDERTYPECO
DE Varchar 3. E
Description DESCRIPTION Varchar 20. E
SystemUser ID SYSUSERID
Numeri
c 7. E
Created Date CREATEDDATE Date E
Entity Code STP
Entity Name Stakeholder Program
Table Name stakeholderProgram
Table ID tbl_03
Description Stakeholder Program
Indexes :
Description Attribute Name Type
Lengt
h
Decim
al
E / D /
R
Stakeholder
Program ID
STAKEHOLDERPROGR
AMID
Numeric 7.
P
K
E
System Program ID SYSTEMPROGRAMID Numeric 7.
F
K
E
Stakeholder Type ID
STAKEHOLDERTYPEI
D
Numeric 7.
F
K
R
System User ID SYSUSERID Numeric 7. E
Created Date CREATEDDATE Date E
Table B: 2: Table Structure: Stakeholder Program
Table B: 1: Table Structure: Stakeholder Type
70. 59
Class Diagrams
The following are the parts of the class diagram designed for M-Fin loan management
system.
Figure: B: 3: Part of the Class diagram
Figure: B: 4: Part of the Class diagram
71. 60
Figure: B: 5: Part of the Class diagram
Figure: B: 6: Part of the Class diagram
72. 61
Activity Diagrams
The following is a activity diagram, ‘create application’ is drawn for the M-Fin loan
management system.
Figure: B: 8: Activity Diagram for Create Application
Figure: B: 7: Part of the Class diagram
73. 62
Sequence Diagrams
The following are sequence diagrams drawn for the M-Fin loan management system.
Figure: B: 6: Sequence Diagram for Login to the system
Figure: B: 7: Sequence Diagram for Application Approval
74. 63
Appendix C- User Documentation
Users can login to the system by selecting their branch and entering the username and
password. After they login there is a system tree in the left side, which displays the
links to programs user have access. The user access will be defined on the stakeholder
type, which they were mapped in the system.
The system is divided in to five modules. Such as,
• Reference Data
• Loan Processing
• Information Center
• General Leger
• System Administration
• Reference Data Module
To create a new loan facility, there are some reference data to be maintained in the
system related to Branch, Stakeholder and Application categories.
o Branch→ Branch Details
Figure: C: 1: Branch Details Screen
75. 64
Branch Details screen is used to create Branches for the SEEDS organization. The
screen also has options to modify branch details, delete branch details and inquiry
already created branche details. Except inquiry, other ope rations needed authorization
of another system user.
o Branch→ Branch Officers
The purpose of the branch details screen is to map officers to their respective branches.
From the top of the screen you can select or enter the officer name. Then in the left
cage displays the branches added in the system, in the rightcage displays the branches
already assigned to the officer. User can select a branch from the left cage and input
the expiration date, add it to the right cage and click submit button to grant the access
to the selected officer to the selected branch.
o Stakeholder→ Stakeholder Details
New user for the system can be created from the following screen. There are
mandatory and opt ional fields in the screen.
Figure: C: 2: Branch Officer Screen
77. 66
Stakeholder Types for the system users can be created from this screen.There are
modify, delete and inquiry functions also avaiable. Same as other reference data
screens, Stakeholder Type also needs dual authorization.
o Application → Approval Groups
For approval of loans there are different approval levels. These approval levels are are
created as Approval Groups in the system.
o Application → Approval Group Members
Approval authorities of SEEDS such as managers, senior managers, and loan
administrators need to be assigned to relevant Approval Groups in the system. For that
purpose there is Approval Group Members screen. From the top of the screen you need
to select the Approval Group then select the Branch where the officer you are going to
assign is mapped in the system. Then select the officer, input expiration date and move
it to the right cage. The right cage contains the group members of the selected
Approval Group.
Figure C: 5: Approval Groups Creation
78. 67
o Loan Type
Loan Types for the M-Fin system can be created, modified and deleted from the above
screen.
Figure: C: 6: Approval Group Members Screen
Figure: C: 7: Loan Type Screen
79. 68
• Loan Processing Module
o Loan Processing→ Loan Calculation
When creating a loan in the system, first loan calculation needed to be created. In the
Loan Calculation screen, first you have to enter the loan type. Loan Type defines the
value ranges for the loan amount, interest rate and loan period, then the client for the
loan and loan amount. If you enter the effective rate the system will calculate the flat
rate, vise-versa is also possible. Rental frequency can be selected from the options of
the combo box. Loan period can be enterd in the no of rentals field. If there are down
payments, advance payment or pre payment, it can be entered through this screen.
There are fields for enter the stamp duty or other charges from the client when creating
Loan calculation.
After entering above parameters, click calculate button. System will calculate the net
rental amount, total interest and total gross rental amount and display in the screen. It
will also show the installment schedule of the loan in the bottom part of the screen.
You can print the loan schedule as quotation and give it to the client. The print comes
in a PDF format.
Figure: C: 8: Loan Calculation Screen
80. 69
o Loan Processing→ Application Maintenance
When a user click the Application maintenance node system will show a screen to
search a created application. Application can be searched by application no, loan type,
application status and application created date.
After selecting an application from the search screen, click ok button to proceed.
System will load the loan workflow screen next. Loan workflow includes the Loan
Application, Appraisal, Approval, Documents, CheckList and Disbursement.
In the loan application screen (Figure C: 10) stakeholder details of the application will
be displayed.
Then Loan Appraisal (Figure C: 11) need to be completed. In the appraisal you can
upload user image, map of the residence, scanned copy of NIC or any required images.
Also system will display the details of any previous loans client got from the SEEDS.
Loan officer can include any comment about the client and the applied loan in the
appraisal screen.
Figure: C: 9: Application Maintenace
82. 71
Following is the Loan Approval screen of the M-Fin system. According to the loan
amount, Approval Groups are created in the system. Then the system will automaticaly
generated the approval path of the appication and display in the Application Approval
screen.
Figure C: 12: Application Approval
Figure C: 13: Loan Documents Screen