SlideShare une entreprise Scribd logo
1  sur  101
Télécharger pour lire hors ligne
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
ii
Declaration
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.
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.
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
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
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
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
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
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
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
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
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.
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.
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
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.
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.
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.
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’
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
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.
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).
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
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
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.
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.
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.
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
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.
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
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
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
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.
23
Figure 3.5: Class Diagram related to classes of Stakeholder Reference
Figure 3.4: Class Diagram related classes of Loan process
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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.
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
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.
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.
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
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
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
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
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
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
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
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
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
60
Figure: B: 5: Part of the Class diagram
Figure: B: 6: Part of the Class diagram
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
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
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
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
65
o Stakeholder→ Stakeholder Type
Figure C: 3: Stakeholder Details Screen
Figure C: 4: Stakeholder Type screen
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
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
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
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
70
Figure C: 10: Loan Application Screen
Figure: C: 11: Loan Appraisal Screen
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
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System
BIT (UCSC) Final Year Project - Microfinance Loan Management System

Contenu connexe

Tendances

Banking Management System Project
Banking Management System ProjectBanking Management System Project
Banking Management System ProjectChaudhry Sajid
 
documentation on bank management system
documentation on bank management systemdocumentation on bank management system
documentation on bank management systemUnsa Jawaid
 
Internet Banking PPT
Internet Banking PPTInternet Banking PPT
Internet Banking PPTayush goyal
 
Bharat bill payment system
Bharat bill payment systemBharat bill payment system
Bharat bill payment systemVijaya Bank
 
FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...
FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...
FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...South Asia Fast Track
 
Loan Management System
Loan Management SystemLoan Management System
Loan Management SystemIshita Gupta
 
Banking system (final)
Banking system (final)Banking system (final)
Banking system (final)prabhjot7777
 
The impact and role of information technology in Bank
The impact and role of information technology in BankThe impact and role of information technology in Bank
The impact and role of information technology in Bankisrael ipinmidu
 
E-Banking Services and Challenges in India
E-Banking Services and Challenges in IndiaE-Banking Services and Challenges in India
E-Banking Services and Challenges in IndiaDheeraj Kumar Tiwari
 
Bank management system
Bank management systemBank management system
Bank management systemsumanadas37
 
51955853 banking-system-documentation
51955853 banking-system-documentation51955853 banking-system-documentation
51955853 banking-system-documentationAziz Muslim
 
Project on customer awareness towards internet banking
Project on customer awareness towards internet bankingProject on customer awareness towards internet banking
Project on customer awareness towards internet bankingLakshmy TM
 
Bank management system with java
Bank management system with java Bank management system with java
Bank management system with java Neha Bhagat
 

Tendances (20)

Banking Management System Project
Banking Management System ProjectBanking Management System Project
Banking Management System Project
 
Banking java project
Banking java projectBanking java project
Banking java project
 
Project Report on e banking
Project Report on e bankingProject Report on e banking
Project Report on e banking
 
documentation on bank management system
documentation on bank management systemdocumentation on bank management system
documentation on bank management system
 
Internet Banking PPT
Internet Banking PPTInternet Banking PPT
Internet Banking PPT
 
Bharat bill payment system
Bharat bill payment systemBharat bill payment system
Bharat bill payment system
 
FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...
FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...
FINTECH: The Gamechanger - All India Management Association - www.sourajitaiy...
 
Mobile banking
Mobile bankingMobile banking
Mobile banking
 
Loan Management System
Loan Management SystemLoan Management System
Loan Management System
 
Banking system (final)
Banking system (final)Banking system (final)
Banking system (final)
 
online banking system
online banking systemonline banking system
online banking system
 
The impact and role of information technology in Bank
The impact and role of information technology in BankThe impact and role of information technology in Bank
The impact and role of information technology in Bank
 
Fintech Risks and Benefits--DR. Emmanuel Moore ABOLO
Fintech Risks  and Benefits--DR. Emmanuel Moore ABOLOFintech Risks  and Benefits--DR. Emmanuel Moore ABOLO
Fintech Risks and Benefits--DR. Emmanuel Moore ABOLO
 
E-Banking Services and Challenges in India
E-Banking Services and Challenges in IndiaE-Banking Services and Challenges in India
E-Banking Services and Challenges in India
 
Bank management system
Bank management systemBank management system
Bank management system
 
51955853 banking-system-documentation
51955853 banking-system-documentation51955853 banking-system-documentation
51955853 banking-system-documentation
 
Project on customer awareness towards internet banking
Project on customer awareness towards internet bankingProject on customer awareness towards internet banking
Project on customer awareness towards internet banking
 
BANKING SYSTEM
BANKING SYSTEMBANKING SYSTEM
BANKING SYSTEM
 
Srs for banking system
Srs for banking systemSrs for banking system
Srs for banking system
 
Bank management system with java
Bank management system with java Bank management system with java
Bank management system with java
 

Similaire à BIT (UCSC) Final Year Project - Microfinance Loan Management System

Similaire à BIT (UCSC) Final Year Project - Microfinance Loan Management System (20)

Pinkle makhijani supermarket billing system vb project
Pinkle makhijani supermarket billing system vb projectPinkle makhijani supermarket billing system vb project
Pinkle makhijani supermarket billing system vb project
 
Report docx
Report docxReport docx
Report docx
 
AMIZONER: Final Report
AMIZONER: Final ReportAMIZONER: Final Report
AMIZONER: Final Report
 
Internship Report
Internship ReportInternship Report
Internship Report
 
FYP 2 REPORT AMIRUL ARIFF
FYP 2 REPORT AMIRUL ARIFFFYP 2 REPORT AMIRUL ARIFF
FYP 2 REPORT AMIRUL ARIFF
 
A Study on E-banking Facility of Kotak Mahindra Bank
A Study on E-banking Facility of Kotak Mahindra BankA Study on E-banking Facility of Kotak Mahindra Bank
A Study on E-banking Facility of Kotak Mahindra Bank
 
Internship report
Internship reportInternship report
Internship report
 
Final Year Project
Final Year ProjectFinal Year Project
Final Year Project
 
Title
TitleTitle
Title
 
Experience at WSO2 as an Intern
Experience at WSO2 as an InternExperience at WSO2 as an Intern
Experience at WSO2 as an Intern
 
Parking Reservation Management Systems
Parking Reservation Management SystemsParking Reservation Management Systems
Parking Reservation Management Systems
 
A Project Paper On Smart Gym Management System
A Project Paper On Smart Gym Management SystemA Project Paper On Smart Gym Management System
A Project Paper On Smart Gym Management System
 
DEVOPS SEMINAR INDEX (1) (10).docx
DEVOPS SEMINAR INDEX (1) (10).docxDEVOPS SEMINAR INDEX (1) (10).docx
DEVOPS SEMINAR INDEX (1) (10).docx
 
Internship Report
Internship ReportInternship Report
Internship Report
 
online education system project report
online education system project reportonline education system project report
online education system project report
 
Hafsa 131003112307-phpapp02
Hafsa 131003112307-phpapp02Hafsa 131003112307-phpapp02
Hafsa 131003112307-phpapp02
 
Billing project
Billing projectBilling project
Billing project
 
21BIT044_DOCUMENTATION (1).docx
21BIT044_DOCUMENTATION (1).docx21BIT044_DOCUMENTATION (1).docx
21BIT044_DOCUMENTATION (1).docx
 
21BIT044_DOCUMENTATION (1).docx
21BIT044_DOCUMENTATION (1).docx21BIT044_DOCUMENTATION (1).docx
21BIT044_DOCUMENTATION (1).docx
 
MY SIWES REPORT
MY SIWES REPORTMY SIWES REPORT
MY SIWES REPORT
 

Dernier

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Dernier (20)

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 

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
  • 76. 65 o Stakeholder→ Stakeholder Type Figure C: 3: Stakeholder Details Screen Figure C: 4: Stakeholder Type 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
  • 81. 70 Figure C: 10: Loan Application Screen Figure: C: 11: Loan Appraisal Screen
  • 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