Anda di halaman 1dari 246

Micro Credits

Management
System for ABS
Credits
[Project Name Here]

Name: S.W. Nishan Pradeep


Membership No: 990585027
S.W. Nishan Pradeep - 990585027

Abstract

ABS credits is one of leading lending companies in Sri Lanka which

provides micro loan packages to customers. Since it is opened it used the

traditional file-based system. When the customer base of the company increase

with the time passed company faces problem with handling massive amounts

of data in a comprehensive manner. Always faced troubles such as searching

for customers who has loans, getting a list of customers who still did not pay

the loan amount in due days, getting information about daily transactions,

monthly transaction, details of pending loans and etc. As the company had a

competition with other micro credit companies with latest technologies who

provides high efficiency to the customer they decided to shift the file based

system into a computer based information system in order to satisfy customer

requirements as well as company vision.

After considering the above scenario the Micro Credits Management

system is developed to fulfil company requirements by overcoming problems faced

with traditional file-based system. The ability of accessing the new system remotely

has made a big impact on managing the entire company from one place as newly

implemented system is web base system. Physically absence of top level

management in the company is no longer a problem for managing company

because of this system. From any place in the world if the internet facilities are

present they can access to the system to view reports such as ledger report,

income and expense, collection summary, underpayment, active loans, payment

history, centre summary, branch summary, loan officer, pending amount.

Furthermore according to granted permissions by

ii
S.W. Nishan Pradeep - 990585027

administrator various users can access to customer management, user

management, location management, loan package management, loan

management, payment management, cash management subsystems in

different ways. New system has full featured user management system which

helps to restrict unwanted users log into system and also helped to increase

system security.

The password based logging system is help to keep away unauthorized

access to the system. If passwords forget it can only be resolved by contacting

Admin. This feature is added to system as requested by the client in order to

maintain system security as this system details mostly deals with money.

As the Micro Credits Management System is a web based system client

side and server side developed as two projects separately to maintain client server

architecture. For client side (front end) development HTML, CSS, PHP,

JavaScript used as languages while AngularJs and Bootstrap used as

framework. For server side (back end) java language is used with spring and

hibernate. Spring is used to manage client requests in server side with optimal

usage and hibernate is used to manage database with maximum utilization. For

the success of coding object oriented programming concepts, MVC (model

view controller), standard coding and naming patterns were used. Jetty is used

to run the sever project and LAMP sever is used to get service of phpMyAdmin

in order to run client project locally for testing purposes. And MYSQL is used

as database to manipulate data without crashing.

To complete the project I have selected Unified process method which

have 4 stages such as inception, elaboration, construction, transition which

iii
S.W. Nishan Pradeep - 990585027

comes with 9 UP (unified process) disciplines such as business modelling,

requirements, design, implementation, testing, deployment, configuration,

project management and environment. So in this documentation explains how

work carried out during project related with unified process steps mentioned

above.

iv
S.W. Nishan Pradeep - 990585027

Acknowledgement
My sincerely thanks to my project authenticator Mr. Viraj Pinto for his

guidance and continuous supervision in completing the project.

I would like to thank Mr.Dewmal Nilanka and my colleagues for helping me

by sharing knowledge, latest technologies and tools related to the project.

And I would like to express my gratitude to parents for encourage me always

to do the project well and take part in BCS education successfully.

I would like to express my special thanks to ABS Credits Company for their

kind cooperation and providing me information needed to complete the

system. And I also thank to Ms. Himashi Rodrigo for help me in the

preparation of the documentation.

I would like to thank BCS for giving this valuable opportunity to implement a

project for BSC PGD level.

Finally, my thanks and appreciation goes to all the open source developers for

their tools and codes which I used in my project.

v
S.W. Nishan Pradeep - 990585027

Table of Content
Abstract .......................................................................................................... ii
Acknowledgement ......................................................................................... v
Table of Content ........................................................................................... vi

CHAPTER 1 INTRODUCTION ........................................................................ 1


1. Introduction ..................................................................................................... 2
1.1. Introduction to the Project ......................................................................... 2
1.2. Business Case.......................................................................................... 2
1.2.1. Organization Background................................................................... 2
1.2.2. Organizational Hierarchy.................................................................... 4
1.3. Current System ......................................................................................... 5
1.4. Introduction to software project with Unified Process ............................... 6
1.4.1. Introduction ........................................................................................ 6
1.4.2. Unified Process Life Cycle ................................................................. 6
1.4.3. Time Line with unified process ........................................................... 8
1.5. System Vision ........................................................................................... 8
1.6. System Objectives .................................................................................... 8
1.7. Business Benefits ..................................................................................... 9
1.8. System Capabilities .................................................................................. 9
1.9. System Scope ........................................................................................ 10
1.10. Summary .............................................................................................. 12

CHAPTER 2 INCEPTION PHASE ................................................................ 13


2. Inception Phase ............................................................................................ 14
2.1. Introduction ............................................................................................. 14
2.2. Feasibility Analysis ................................................................................. 14
2.2.1. Determining organizational and cultural feasibility ........................... 15
2.2.2. Evaluating the technological feasibility ............................................. 16
2.2.3. Determining the schedule feasibility ................................................. 16
2.2.4. Accessing he resource feasibility ..................................................... 17
2.3. Requirement Gathering and Analysis ..................................................... 17
2.3.1. Requirement Gathering Techniques ................................................ 17
2.4. Similar Micro Credits Management Systems .......................................... 19

vi
S.W. Nishan Pradeep - 990585027

2.5. System Requirements ............................................................................ 21


2.5.1. Functional Requirements ................................................................. 22
2.5.2. Non-functional Requirements ........................................................... 25
2.5.2.2. Performance requirements ........................................................ 26
2.5.2.3. Usability requirements ............................................................... 26
2.5.2.4. Security requirements................................................................ 26
2.6. Requirements Analysis ........................................................................... 28
2.6.1. Use Case Diagrams ......................................................................... 28
2.6.2. Event table ....................................................................................... 34
2.7. Summary ................................................................................................ 46

CHAPTER 3 ELABORATION PHASE .......................................................... 47


3. Elaboration Phase ......................................................................................... 48
3.1. Introduction ............................................................................................. 48
3.2. Considered types of software ................................................................. 48
3.3. Three Tier Architecture ........................................................................... 49
3.4. Software process models ....................................................................... 50
3.4.1. Waterfall Model ................................................................................ 50
3.4.2. Prototyping ....................................................................................... 52
3.4.2.1. Throw-away Prototyping ............................................................ 52
3.4.2.2. Evolutionary Prototyping ............................................................ 54
3.4.2.3. Incremental Prototyping............................................................. 55
3.4.3. Rapid Application Development (RAD) ............................................ 56
3.4.4. Spiral lifecycle model ....................................................................... 58
3.4.5. OOP design using unified process ................................................... 59
3.5. Why unified process selected for software development? ...................... 60
3.6. Models Used for System Designing ........................................................ 62
3.6.1. Class Diagram ................................................................................. 62
3.6.2. Activity diagram ................................................................................ 62
3.6.3. Sequence Diagram .......................................................................... 63
3.7. Tools Used for Designing ....................................................................... 64
3.8. System designing ................................................................................... 65
3.8.1. Techniques used in system designing ............................................. 65
3.8.2. Database Designing ......................................................................... 66
3.8.3. Entity Relationship Diagram(ERD) ................................................... 67

vii
S.W. Nishan Pradeep - 990585027

3.9. User Interface Designing ........................................................................ 67


3.9.1. Physical Aspects of the user interface ............................................. 67
3.9.2. Perceptual Aspects of the user interface.......................................... 68
3.9.3. Conceptual Aspects of the user interface ......................................... 68
3.10. Summary .............................................................................................. 70

CHAPTER 4 CONSTRUCTION PHASE ....................................................... 71


4. Construction Phase ....................................................................................... 72
4.1. Introduction ............................................................................................. 72
4.2. Implementation ....................................................................................... 72
4.2.1. Hardware specification of the implementation environment ............. 72
4.2.2. Software specification of the implementation environment .............. 73
4.2.3. Client Side(Front end) Development ................................................ 73
4.2.4. Server Side Development ................................................................ 77
4.3. Module Structure and important codes ................................................... 78
4.3.1. Module Structure .............................................................................. 78
4.3.1.1. Client Side ................................................................................. 78
4.3.1.2. Server Side ................................................................................ 79
4.3.3. Id Auto Generating Code(Server Side) ............................................ 81
4.3.4. User permissions handling code(Client side) ................................... 82
4.4. Object Oriented Programming (OOP) ..................................................... 83
4.4.1. Usage of Inheritance Concept .......................................................... 83
4.4.2. Usage of Abstraction Concept ......................................................... 84
4.4.3. Usage of Polymorphism Concept ..................................................... 85
4.4.4. Usage of Encapsulation Concept ..................................................... 85
4.5. Model View Controller ............................................................................ 87
4.6. Designing Controls and Security ............................................................ 92
4.6.1. Designing integrity control ................................................................ 92
4.6.2. Designing Security control ............................................................... 92
4.7. Testing .................................................................................................... 93
4.7.1. Black Box Testing ............................................................................ 93
4.7.2. White Box Testing ............................................................................ 94
4.7.3. Grey Box Testing ............................................................................. 95
4.8. Testing Strategy and Sequence ............................................................. 95
4.8.1. Unit Testing ...................................................................................... 96

viii
S.W. Nishan Pradeep - 990585027

4.8.2. Usability Testing ............................................................................... 97


4.8.3. Integration Testing ........................................................................... 97
4.8.4. System Testing ................................................................................ 99
4.8.5. Build and Smoke Testing ............................................................... 100
4.9. Test Cases Designing .......................................................................... 101
4.10. Quality of Code ................................................................................... 102
4.11. System Acceptance ............................................................................ 103
4.11.1. Alpha Test .................................................................................. 103
4.11.2. Beta Test.................................................................................... 103
4.11.3. User Acceptance Test ................................................................ 104
4.12. Summary ............................................................................................ 104

CHAPTER 5 TRANSITION PHASE ............................................................ 105


5. Transition .................................................................................................... 106
5.1. Introduction ........................................................................................... 106
5.2. Deployment Strategies ......................................................................... 106
5.3. Version Controlling ............................................................................... 108
5.4. Summary .............................................................................................. 109

CHAPTER 6 CONCLUSION ....................................................................... 110


6. Conclusion .................................................................................................. 111
6.1. Introduction ........................................................................................... 111
6.2. Summary of each chapter..................................................................... 111
6.2.1. Summary of introduction section .................................................... 111
6.2.2. Summary of inception phase .......................................................... 112
6.2.3. Summary of elaboration phase ...................................................... 112
6.2.4. Summary of construction phase ..................................................... 112
6.2.5. Summary of transition phase ......................................................... 113
6.3. Strengths and Weaknesses .................................................................. 113
6.4. Problems Faced ................................................................................... 113
6.5. Lessons Learnt ..................................................................................... 114
6.6. Summary of Project with conclusion ..................................................... 115

REFERENCES AND APPENDICES ........................................................... 116


References ......................................................................................................... 117

ix
S.W. Nishan Pradeep - 990585027

A. Appendix: Inception Documentation .............................................................. 119


B. Appendix: Elaboration Documentation........................................................... 127
C. Appendix: Construction Documentation ........................................................ 208
D. Appendix: Transition Documentation ............................................................. 235

x
CHAPTER 1

INTRODUCTION
S.W. Nishan Pradeep - 990585027

1. Introduction

1.1. Introduction to the Project

Completion of a project is needed to acquire the status of MBSC after

completing professional examinations. For BCS HEQ professional project in

PGD level a web based Micro Credits Management System is selected in order to

apply knowledge gain through the subject matters in more practical way. This

project helped to gain the understanding of Client Server Architecture, Object

Oriented Concepts, Networking through web server, Model

View Controller Architecture and so on. Especially this project shows the way,

how to handle real scenario case and how to do successful project within given

time frame maximizing client satisfaction.

1.2. Business Case

1.2.1. Organization Background


ABS Credits Company is one of leading micro credit companies in Sri

Lanka. Unlike banking loans they offer loans to their customers after checking

few requirements only. Not only that they offer loan packages and group loans

too.

Over 100 of transactions are done in the centres and branches which

are spread all over the island wide per day which make big troubles to cash

collector, loan officer and branch manager in managing these transaction

requests in comprehensive manner. As they are mostly working with written

Page2
S.W. Nishan Pradeep - 990585027

documents and reports (manual done) there are several problems they are

facing.

Difficulty of getting proper reports.

Difficulty of get the progression when required.

Difficulty of getting executive decisions as lack of organized data.

Difficulty in updating information daily as whole company because written

documents are not reaching to head office daily.

Written documents are in the risk of missing.

Also, their business work flow is not clear and simple. So everyone has

to remember great deal of information and data. So, they have asked to find a

solution for that. To solve above mentioned problems came up with the solution

of implementing a computer based information system. Challenge faced is

finding a better work flow and simplified easier solution. After considering

several solutions finally decided to develop a web based information system in

order to manage transactions in ABS Credits Company.

Page3
S.W. Nishan Pradeep - 990585027

1.2.2. Organizational Hierarchy

Page4
S.W. Nishan Pradeep - 990585027

1.3. Current System

The current system of ABS is manual file based system. When customer

comes to the company to get a loan first customer has to register. Customer

registration is done by the branch manager. Next branch manager or admin

approved the particular customer is eligible to get loan after going through

customer background. After that loan officer assign customer to a group with less

than three members. Maximum number of customers in a group is three.

Next loan process is start. Loan officer get needed information from client and fill

required documents. Next monthly or weekly or daily instalments are decided and

signed agreements. Finally grant agreed amount of money to the customer. At the

end of day, week, and month, yearly employers and management in the ABS

Credits Company creates reports such as income and expense report, centre

summary report, branch summary report, ledger report, under payment report,

collection summary report, active loans report and pending loans report.

Page5
S.W. Nishan Pradeep - 990585027

1.4. Introduction to software project with Unified

Process

1.4.1. Introduction

The software development process for creating web based Micro Credits

Management System for ABS Credits Company is focused to follow the unified

process. Unified Process is common software development methodology used in

software industry as it is combination of lots of other development methodologies.

It is an object oriented approach to the software development process. So unified

process approach can be apply to wide range of scenarios.

Unified process follow both the following concepts in the aim of having a

better software development approach.

Iterative

Incremental

1.4.2. Unified Process Life Cycle

Unified Process Life Cycle (UPLC) is mainly consist of four phases and

nine disciplines.

Phases:

Inception Phase

Elaboration Phase

Construction Phase

Transition Phase

Page6
S.W. Nishan Pradeep - 990585027

Disciplines:

Business Modelling

Requirements

Analysis and Design

Implementation

Testing

Deployment

Configuration and Change Management

Project Management

Environment

Page7
S.W. Nishan Pradeep - 990585027

1.4.3. Time Line with unified process

1.5. System Vision

Provide an efficient and flexible micro credit system for the ABS micro

credits company. Through the system ABS micro credits company will be able

to achieve their business goals.

1.6. System Objectives

The objective of the system is to provide a simple, easily accessible,

comprehensive and efficient Micro Credits Management System for ABS

Credits Company.

Page8
S.W. Nishan Pradeep - 990585027

1.7. Business Benefits

Maintaining ABS micro credits company leadership position in the micro

finance field is the primary business benefit to be obtained from the new

system. Following are some benefits given by the system.

Lowering costs and providing more streamlined operation.

Reduce delays and errors caused by manual processing of data.

Supports to take business decisions by providing up to date, real-

time data on transaction conditions and levels.

Avoiding missing out on loan periods due to low working rate

situations.

Maximize daily, weekly and monthly collection of payments with due payment

lists.

1.8. System Capabilities

In order to attain the business benefits listed above, the micro credits

system shall include the following capabilities.

Maintain adequate database and history information to support top

level manager analysis.

Coordinate transactions and customer database updating done in each

centre.

Automatically generate documentations periodically and for a request

made by a user.

Maintain payments for loans history and keep track on all the details

associated with loan transactions of ABS micro credits company.

Page9
S.W. Nishan Pradeep - 990585027

The system is accessible by admin, branch manager, audit officer, loan

officer, credit officer and cash collector under different restrictions. And

restrictions can be customized by the admin.

Provide up to date, real time data associated with loan transactions and

allow the management to pull a report and instantly see number of

pending loans, loan payment history and so on.

1.9. System Scope

The Micro Credits Management System is responsible for managing all

loan packages, branches, centres, customers and loan related currency

transactions. But it mostly involve in financial affairs. The system is accessible

by admin, branch manager, loan officer, credit officer, audit officer and cash

collector.

The Micro Credits Management System for ABS Credits Company can

be used only through the internet (without proper Internet connection

the service can't be provided) and a user friendly interfaces with easy

to handle control system is included.

System is capable of handling several user types such as admin, branch

manager, loan officer, credit officer, audit officer and cash collector. And

give each user a user account with a user name, password and branch

(admin can access to the system only with username and password) for

high security service. And each user account is having a personal space

and lower accounts can be managed using the super accounts (Admin

account).

P a g e 10
S.W. Nishan Pradeep - 990585027

System is capable of giving each user type a unique user facilities.

(Admin, branch manager, loan officer, credit officer, audit officer and

cash collector accounts has access and control facilities and privileges

next to each other.) But admin have the superior power to handle all user

accounts.

System is capable of giving fast and accurate access to all databases

without crashing.

Mainly Database tables for action, admin, branch, branch permission,

centre, customer, customer_group, expense_type, group_has_member,

group, loan, laon_has_guarantee, package, permission tables are handled

using the system in comprehensive manner.

System is capable of giving Admin access to any user if the admin needs

to do so.

System is capable of giving system user (admin, branch manager, loan

officer, credit officer and cash collector) to access the details and modify

them when admin granted to do.

Due payment lists, pending loans should be notified by the system.

Daily, monthly and yearly ledger reports, cash collection reports and

other required reports should be auto generated and should have ability

of printing the report when system user requested.

P a g e 11
S.W. Nishan Pradeep - 990585027

1.10. Summary

This section is used to get an idea about the client and the requirements

needed for the new system. System vision, system capabilities are identified in

this section and approach to Unified Process and its disciplines are described

here. At the end of this section background of the client and the project is

identified well.

P a g e 12
S.W. Nishan Pradeep - 990585027

CHAPTER 2

INCEPTION

PHASE

P a g e 13
S.W. Nishan Pradeep - 990585027

2. Inception Phase

2.1. Introduction

First stage in Unified Process Life Cycle. Unlike in traditional system

development life cycle, in here all the parts in SDLC is carried out in UP life

cycle with different width. When considering about the inception phase wide

range of business modelling and requirement gathering part is done here.

Developing approximate vision of the system, define the project scope , make

the business case and provide rough estimate of time scheduling are some

functionalities done in inception phase.

From here onward in this part explain how feasibility study and requirement

gathering methods done to identify current problem scenario and client

requirements.

2.2. Feasibility Analysis

Feasibility Analysis is done to verify whether a project may be started and

completed successfully. In this stage identification of all the risks of failure are

and did further clarification about them separately to get massive idea of

feasibility of following matters related to ABS Credits Company.

P a g e 14
S.W. Nishan Pradeep - 990585027

2.2.1. Determining organizational and cultural feasibility

Introduced system should be accommodated within the organizational

culture in order to have a success system. Some of the potential risks identified in

the ABS Credits Company during cultural feasibility analysis as follows.

1. Some staff members like credit officers and cash collectors are fear of

change of job responsibilities.

Solution: Conducted a workshop informing their job responsibilities.

2. Most of the employees in the company has low level of computer

competency.

Solution: Conducted a workshop to introduce new system to system users

and provide a user manual

3. Substantial computer phobia in some employees.

Solution: Keep interaction with system users continuously and show system

capabilities

4. Due to increased automation, fear of loss of employment.

Solution: Conduct a workshop informing their job responsibilities.

5. Due to the new system potential shifting of political and organizational

power Solution: Kept the system unchanged of political and organizational

power as minimum as possible. In unavoidable circumstances, have

distributed power to match the same level as in existing system.

6. Some employees thought that efficiency of current manual based system is

higher than the web based micro credit management system.

Solution: Kept interaction with system users continuously and showed

system capabilities

P a g e 15
S.W. Nishan Pradeep - 990585027

7. Fear of data loss as data not stored in physically as traditional file system.

Solution: Kept interaction with system users continuously and showed how

new system secure data with database backups.

2.2.2. Evaluating the technological feasibility

In this step identified the technological requirements and available

expertise to complete the project. Following are some issues identified when

starting project.

1. Lack of expertise knowledge in web based projects

Solution: Studied about the concepts and newest technologies using

internet, books and with the help of expertise support.

2. Low practical ability

Solution: Practised handling of web based projects with mini projects before

starting the project for ABS Micro Credits Company.

2.2.3. Determining the schedule feasibility

When considering Micro Credits Management system scope and models that

are required to make before actually starting the implementation of new system

identified that it takes more time to identify and describe all requirements and to

model the system. But have to complete this project within

11 months. Therefore allocated relatively more time to accomplish those tasks.

And shrink time allocated for other works in order to complete project within the

given period. Did continuous re-examination to check whether it is possible to

P a g e 16
S.W. Nishan Pradeep - 990585027

complete all amount and scope of work lying ahead, utilizing the given amount

of resources, within required period of time.

2.2.4. Accessing he resource feasibility

Computer resources, Physical facilities have already being available to start

the project.

2.3. Requirement Gathering and Analysis

Gathering a considerable amount of information is done in this discipline.

Here requirement analysis is done to obtain necessary information from system

users in order to get a vivid picture of the business process going on. As micro

credit management system is a system which used to handle loan transactions,

mainly focused on to gather information about rules and regulations used in

company when approving a loan, offering a loan and registering customer.

2.3.1. Requirement Gathering Techniques

Interview people

Very effective method in gathering information as communication can be done

in verbally and non-verbally mediums. Most of the employees expressed their

ideas about the current file based system, identified problems, suggestions and

what really they need from the web based system. But some employees didnt

express their ideas openly as interview is done in face to face.

-had an appointment with the president of company

P a g e 17
S.W. Nishan Pradeep - 990585027

-had several meetings with managers

-interviewed selected users separately in some of branches and centres.

Watch system user work(on site observation)

-visited Head office watching their work

-Visited some centres (Panadura, Wadduwa, Kosgama, Kalutara, Matugama)

and branches (Aluthgama, Bandaragama, Ambalangoda) and watched how do

they work with customers, what are the difficulties they face when finding

information for particular customer and what are the documents and reports

they need in daily transaction.

-observed company work flow carefully and identified what are the main

business flow, sub business processes and weaknesses in current file based

information system.

Questionnaires

As ABS Credits Company branches and centres are spread in all over the

country it is very difficult to do interviews with all the branch managers and

employers in the company and to do on site observation in all centres. So this

method is very useful in gathering information from all the employers in the

company. Multiple choice questionnaire is given to all the employers, so very

straight forward effective answers could gather which helps lot in analysing the

software.

P a g e 18
S.W. Nishan Pradeep - 990585027

Review planning documents and policy statements

As ABS Micro Credits Company is deal with money it is needed to go through

all the documents, policy statements very carefully in order to get a vivid picture

of business before starting the project. This method is very helpful in finding

information about financial policies.

-Studied written documentations and their purposes

-Got photocopies and hardcopies of existing documentations.

-Studied about financial policies which government accepted regarding micro

finance company.

-Uniqueness in reports, confidential information are identified in this method.

2.4. Similar Micro Credits Management Systems

Before starting the Micro Credits Management Systems

implementation, went through some similar software to get an idea about the

Micro Credits Management System. Most of those systems which provides

online accessible do not fulfil client requirements as they are commonly build

software (off the shelf software). Some systems can only be used for relevant

countries but not for the other countries.

By considering those points Micro Credits Management System for

ABS Credits Company designed in a way such that client requirements satisfied

in master manner.

Some referred systems are mentioned followed.

P a g e 19
S.W. Nishan Pradeep - 990585027

The banker

This system provides way to do Micro Credits Management

online with different features. But most of them are not necessary for the

Company to do daily transaction. (http://senova.lk/micro-financing-

software.html)

P a g e 20
S.W. Nishan Pradeep - 990585027

OPENCBS

This system also provides some features but not 100% fit to the

client requirements. This is open source project and following shows the

dashboard Following is its home page. (http://opencbs.com/)

2.5. System Requirements

In system requirements all the capabilities that new system must have

should be described. More over all the constraints that new system must meet

should be included. System requirements can be divide into two parts.

P a g e 21
S.W. Nishan Pradeep - 990585027

2.5.1. Functional Requirements

Functional requirements are based on based on rules, procedures

and methods that a particular organization uses to run its business. So it is

directly related with use cases of the new system. Ultimate requirements of end

users are provide as output for particular input of end user requests. Following

are functional requirements of ABS micro credits company.

The main use cases in the system

Customer Manage Add

new customer

View customer List centre wise

Update customer

Delete customer

View customer group

Create customer group

Add customer to group

Remove customer from group

Change customer centre

Location Manage

Add new branch

Update branch

View centre list

Add centre to specific branch

Update centre

P a g e 22
S.W. Nishan Pradeep - 990585027

Loan Package Management

View package list

Add new package

Update package name

Customer Loan Management

Add loan to the customer

View customer loan

Remove loan

Make bulk payment to the

loan Add extra payment to

loan View approve loans

Approve loan

Review loan

Remove loan

Make quick payment to loan

Loan payment Management

Add loan payment (centre wise)

Payment history

Update payment

Remove payment

P a g e 23
S.W. Nishan Pradeep - 990585027

Cash (Expenses) Management

Add petty cash

View Income and expenses

Settings

View basic setting

Add profession type

Remove profession type

View user setting

Add new user

View user permission

Add permission to user

Remove permission from user

View branch settings

Add branch permission

Remove branch permission

Reset password

View user log

View cash setting

Add expense type

Remove expense type

P a g e 24
S.W. Nishan Pradeep - 990585027

Report

Income and expense report

Centre summary report

Ledger report

Branch summary report

Under payment report

Pending amount report

Active loans report

Collection summary report

2.5.2. Non-functional Requirements

Non-functional requirements are characteristics which system must

support other than its activities (use cases). These are optional characteristics

but help lot in providing successful, effective and user friendly system to the

client. Following are some non-functional requirements which micro credit

system performs.

2.5.2.1. Technical requirements

The operational characteristics related to hardware and software in an

organization are considered here. For ABS micro credits company Desktops with

open source operating system and Chrome as used to access the system.

Server and client applications are written separately and used java for server

application and Angularjs, CSS, HTML, PHP, Bootstrap for client application.

P a g e 25
S.W. Nishan Pradeep - 990585027

2.5.2.2. Performance requirements

The system should supply high response time to user requests. Pages

should load very quickly and should handle data without any crash in order to

give high performance. Especially it is needed to make sure low downtime of

server. In other hand system should have ability to extend with new features in

future without any difficulties.

2.5.2.3. Usability requirements

The system user interfaces should be user friendly and should have

ability to work for long time without getting eye effects (As looking at very bright

colours for long time causes eye pain). Due to user requests in Micro credits

management system white colour is used as background colour.

2.5.2.4. Security requirements

This shows which users can perform which system functions under

what conditions. In micro finance company admin has power to grant functions

to any user in the system. Admin can dynamically grant powers to the users

and remove powers from users.

Example:

All the managers in the company does not have same powers. So admin

can select what activities should give to what managers at the time they are

creating or after creating.

P a g e 26
S.W. Nishan Pradeep - 990585027

Encryption of all data transmitted over the Internet and control of all

databases server access through use of a username and password.

And for each activity of any system user a user log is created. Admin can view

this user log at any time to get idea how users are log into the system.

P a g e 27
S.W. Nishan Pradeep - 990585027

2.6. Requirements Analysis

2.6.1. Use Case Diagrams

2.6.1.1. Use case diagram for Audit Officer

P a g e 28
S.W. Nishan Pradeep - 990585027

2.6.1.2. Use case diagram for Credit Officer

P a g e 29
S.W. Nishan Pradeep - 990585027

2.6.1.3. Use case diagram for cash collector

P a g e 30
S.W. Nishan Pradeep - 990585027

2.6.1.4. Use case diagram for loan officer

P a g e 31
S.W. Nishan Pradeep - 990585027

2.6.1.5. Use case diagram for branch manager

P a g e 32
S.W. Nishan Pradeep - 990585027

2.6.1.6. Use case diagram for admin

(Please refer appendix A for Use case scenarios)

P a g e 33
S.W. Nishan Pradeep - 990585027

2.6.2. Event table

As micro finance system has advance user setting method, according to

branches and centres use cases of systems users will be changed. But for

convenience here described general case.

Abbreviations:

Branch Manager = BM

Cash Collector = CC

Loan Officer = LO

Credit Officer = CO

Audit Officer = AO

Event Trigger Source Use case Response Destination

Admin/ User logging Admin, Login to Logging Admin, BM,


BM/LO/CC/CO/ confirmation and
BM, system LO,CC,CO,
AO display system
LO,CC, AO
log to the CO,
system AO

Admin/ BM New user Confirmation,


Admin, Add new Admin, BM,
adds added new user
BM customer LO
customers successfully

P a g e 34
S.W. Nishan Pradeep - 990585027

Admin/ BM Customer View Display customer


Admin, Admin, BM
wants to view list customer list
BM
customer list requirement List

centre wise

Admin/ BM Changes in Update Confirmation,


Admin, Admin, BM,
update customer customer update customer
BM LO
customer account account

accounts details successfully

Admin/ BM Customer is Delete Confirmation,


Admin, Admin, BM
delete user removes customer delete customer
BM
successfully

Admin/ BM/LO Customer View Display customer


Admin, Admin, BM,
wants to view group customer groups
BM, LO
customer viewing group
LO
group requirement

Admin/ BM/LO New Create Confirmation,


Admin, Admin, BM,
wants to add customer customer create customer
BM, LO
new customer group group group successfully
LO
group

Admin/ BM/ LO Customer Add Confirmation, add


Admin, Admin, BM,
add customer without customer to customer to the
BM, LO
to group group group successfully
LO

P a g e 35
S.W. Nishan Pradeep - 990585027

group needs

to get loan

Admin/ BM/ LO Customer Remove Confirmation,


Admin, Admin, BM,

remove remove from BM, customer removed customer LO


customer from group from group from group
LO
group successfully

Admin/ BM Customer Change Confirmation,


Admin, Admin, BM,
change centre customer change customer
BM LO,CC
customer change centre centre

centre successfully

Admin adds New branch Add new Confirmation,


Admin Admin
branches branch successfully

branch is added

Admin update Branch Update Confirmation,


Admin Admin
branch details branch update branch

change successfully

Admin, BM Centre View centre Display all centre


Admin, Admin, BM
view centre list details list details
BM
viewing

requirement

P a g e 36
S.W. Nishan Pradeep - 990585027

Admin adds New centre Add centre Confirmation,


Admin Admin
centre to specific Centre added to

branch selected branch

Admin update Centre Update Confirmation,


Admin Admin
centre details centre Centre update

change successfully

Admin/ BM/LO Package View Display package


Admin, Admin, BM,
View package detail package list
BM, LO
list viewing list
LO
requirement

Admin adds New Add new Confirmation, new


Admin Admin
new branch package package package added

successfully

Admin update Package Update Confirmation,


Admin Admin
package details package update package

change name successfully

Admin/ BM/LO New loan for Admin, Add loan to Confirmation, loan Admin, BM,

add loan to the customer BM, the added to customer LO


customer customer successfully
LO

P a g e 37
S.W. Nishan Pradeep - 990585027

Admin/ BM/LO/ Customer View Display all


Admin, Admin, BM,
CC view loan viewing customer customer loans
BM, LO,CC

customer loans requirement LO, CC loan

Admin/ BM Loan is Remove Confirmation,


Admin, Admin, BM
remove loan deactivated loan removed the loan
BM
successfully

Admin/ BM/LO/ Customer Make bulk Confirmation, Do


Admin, Admin, BM,
CC do bulk make bulk payment to bulk payment
BM, LO,CC
payment payment the loan successfully
LO,CC

Admin/ BM/LO/ Customer Add extra Confirmation, Do


Admin, Admin, BM,
CC do extra make extra payment to extra payment
BM, LO,CC
payment payment loan successfully
LO,CC

Admin/ BM Approve View Display approve


Admin, Admin, BM
view approve loan viewing approve loan list
BM
loans requirement loans

Admin/ BM Customer Approve Confirmation,


Admin, Admin,
loan approval want to get loan approve loan
BM BM,LO,CC
loan successfully

P a g e 38
S.W. Nishan Pradeep - 990585027

Admin/ BM Loan review Review Display loan


Admin, Admin, BM
review loan loan details and
BM
approve or reject

options to loan

Admin/ BM Loan Reject loan Confirmation,


Admin, Admin, BM,
reject loan eligibility is reject loan
BM LO
insufficient

Admin/ BM/LO/ Customer Make quick Confirmation, did


Admin, Admin, BM,
CC do quick do payment payment to quick payment
BM, LO, CC

payment LO, CC loan successfully

Admin/ BM/LO/ Customer Add loan Confirmation,


Admin, Admin, BM,
CC add loan do payment payment added loan
BM, LO, CC

payment LO, CC (centre payment


wise) successfully

Admin/ BM/LO/ Payment View Display payment


Admin, Admin, BM,
CO view history Payment history
BM, LO, CO
payment requirement history
LO,
history CO

Admin/ BM/LO Payment Update Confirmation,


Admin, Admin, BM,
update details payment update payment
BM, LO, CC
payment changed details
LO
successfully

P a g e 39
S.W. Nishan Pradeep - 990585027

Admin/ BM Unnecessar Remove Confirmation,


Admin, Admin, BM
remove y payment payment remove payment
BM
payment added to the successfully

system

Admin/ BM/CO New petty Add petty Confirmation, add


Admin, Admin, BM,
add petty cash cash done cash petty cash details
BM, CO
successfully
CO

Admin/ BM/CO Income and View Display income


Admin, Admin, BM,
view income expense Income and and expense
BM, CO
and expense viewing expenses report
CO
details requirement

Admin/ BM Basic View basic Display basic


Admin, Admin, BM,
view basic settings setting settings details
BM LO
settings viewing

requirement

Admin/ BM add New Add Confirmation, add


Admin, Admin, BM,
profession type profession profession profession type
BM LO
type type successfully

Admin/ BM Profession Remove Confirmation,


Admin, Admin, BM,

remove type is BM profession remove profession LO


profession type invalid type type successfully

P a g e 40
S.W. Nishan Pradeep - 990585027

Admin view Need to View user Display user


Admin Admin
user settings view user setting setting details

setting

details

Admin add New user Add new Confirmation, new


Admin Admin
new user user user is added

successfully

Admin view User View user Display user


Admin Admin
user permission permission permission list

permission viewing

requirement

Admin add New Add Permission added


Admin Admin
permission to permission permission to user

user for user to user successfully

Admin remove Permission Remove Confirmation,


Admin Admin
permission for user is permission remove user

from user changed from user successfully

Admin view Viewing View Display branch


Admin Admin
branch settings branch branch setting details

settings settings

requirement

P a g e 41
S.W. Nishan Pradeep - 990585027

Admin add New branch Add branch Confirmation, new


Admin Admin
branch permission permission branch permission

permission is added

successfully

Admin remove Invalid Remove Confirmation,


Admin Admin
branch branch branch remove branch

permission permission permission permission

is in the successfully

system

Admin/ BM/LO/ New Admin, Reset Confirmation, Admin, BM,


password is password reset password
CC/CO/ AO BM, LO, CC,

reset password needed LO, successfully CO, AO

CC,

CO,

AO

Admin view Requiremen View user Display user log


Admin Admin
user log t od log

checking

user log

P a g e 42
S.W. Nishan Pradeep - 990585027

Admin/ BM/CO Requiremen View cash Display cash


Admin, Admin, BM,
t of viewing setting setting details
view cash BM, CO
cash
settings CO
settings

Admin/ BM/CO New Add Confirmation,


Admin, Admin, BM,
expense expense expense type is
add expense BM, CO
type type added
type CO
successfully

Admin/ BM/CO Invalid Remove Confirmation,


Admin, Admin, BM,
remove expense expense remove expense
BM, CO
expense type type in the type type successfully
CO
system

Admin/ Requiremen View Loan Display loan


Admin, Admin, BM,
BM/LO/AO t of viewing summary summary details
BM, LO, AO

view loan loan LO, AO report


summary summary

report details

Admin/ Need of Get Income Display income


Admin, Admin, BM,
BM/CO/ AO income and and and expense
BM, CO, AO
get income and expense expense report
CO,
expense report report report
AO

P a g e 43
S.W. Nishan Pradeep - 990585027

Admin/ BM/AO Requiremen View Display centre


Admin, Admin, BM,
view centre t of centre Centre summary report
BM, AO
summary summary summary
AO
report report report

Admin/ Requiremen Get Ledger Display ledger


Admin, Admin, BM,
BM/LO/AO get t of ledger report report
BM, LO, AO
ledger report report LO, AO

Admin/ Requiremen Get Branch Display branch


Admin, Admin, BM,
BM/LO/AO get t of branch summary summary report
BM, AO
branch summary report
AO
summary report

report

Admin/ Requiremen View Under Display


Admin, Admin, BM,
BM/LO/AO t of payment underpayment
BM, LO, AO

view underpayme LO, AO report report


underpayment nt report

report

Admin/ Requiremen View Display pending


Admin, Admin, BM,
BM/Lo/AO view t of pending Pending amount report
BM, LO, AO

pending amount LO, AO amount


amount report report report

P a g e 44
S.W. Nishan Pradeep - 990585027

Admin/ Requiremen Admin, Get Active Display active loan Admin, BM,
BM/LO/AO t of active loans report
BM, LO, AO

view active loan report LO, AO report


loan report

Admin/ Requiremen Collection Display collection


Admin, Admin, BM,
BM/LO/AO t of summary summary report
BM, LO, AO

view collection collection LO, AO report


summary summary

report report

P a g e 45
S.W. Nishan Pradeep - 990585027

2.7. Summary

The requirement gathering for the Micro Credits System is described

here. All the required features for the new system gathered from this phase.

Pictorial description for gathered information is shown through the UML use

case diagram and activity table. All the detailed outputs from the inception

phase taken as inputs for the elaboration phase.

P a g e 46
S.W. Nishan Pradeep - 990585027

CHAPTER 3

ELABORATION

PHASE

P a g e 47
S.W. Nishan Pradeep - 990585027

3. Elaboration Phase

3.1. Introduction

This is the phase where re considered about the gathered requirements

and identified all the requirements. Finalization of system scope and system

vision also done in this phase. Design and implementation of core architecture

and functions, design models and selecting what type of development tools

needed are described here.

3.2. Considered types of software

Standalone application- This is the simplest and easiest way of

developing software project. But after considering about client requirements

and its vast number of centres understood that standalone application is not

necessarily fulfilled those.

Web based application- As ABS Credits company has loads of centres

and branches most suitable solution is web based system which can used to

work online as well as it can used to link all the centres and branches together

to get advanced reports. Daily collection reports, due payments for loans and

other managerial level information and reports can be viewed online though

users are not available in the office physically. If they have internet they can

access to the system from anywhere at any time. So it will be easy for all the

users to perform their tasks efficiently and smoothly.

P a g e 48
S.W. Nishan Pradeep - 990585027

After considering about these two solutions web based application is

selected as most suitable application to develop Micro Credits Management for

ABS Credits Company.

3.3. Three Tier Architecture

Three tier architecture is client server architecture which is used to

create Micro Credits Management System. So data layer, application layer and

presentation layer is separately maintained. Following figure shows how three

tier architecture is working.

P a g e 49
S.W. Nishan Pradeep - 990585027

3.4. Software process models

The software process models can be used to describe entire life cycle of

the software. There are so many models exist by today. Some are predefined and

most commonly used. But some models are specialized for particular software

project which create by combining two or more predefined models.

The reason for using different software process models are to complete the

software easy and most reliable way. Though there are number of models,

there is no Best or Worst Process Model. But always companies move

towards latest models over the old models due to reliability and attract more

clients to their companies. Some advantages and disadvantages of process

models which are considered in developing micro credits management system

are described here.

3.4.1. Waterfall Model

A sequential software development process, in which development is

flowing slowly downwards through phases of system development life cycle. All

the phases should be done one after the other from top to bottom and cant go

back to passed phases.

P a g e 50
S.W. Nishan Pradeep - 990585027

Advantages:

Even before the implementation begins developer has a clear idea about

the way of system should work.

Easy to work with in time frame and complete the project in a given time.

Each and every step is well defined and can understand easily.

Disadvantages:

Will take long time to complete early stages of system development life

cycle (feasibility analysis, design) than coding, testing and

implementation.

Cant go back to correct changes in finished stages.

Until one part is over, others parts are jobless.

There is a high risk to failure.

P a g e 51
S.W. Nishan Pradeep - 990585027

3.4.2. Prototyping

The prototyping is a process model that can be used to make

benchmarks of entire system with high system user involvement and with more

user satisfaction.

3.4.2.1. Throw-away Prototyping

This is the most understood software that can be used very easily. Can

be used to show visually or graphically how software looks like after

implementation of finished system. After very short investigation on system

requirements create a working model of the system again and again until the

user satisfied about the system. When user clearly clarify and satisfied about

the model, the model is thrown away and the system development will be done

according to finally identified requirements.

P a g e 52
S.W. Nishan Pradeep - 990585027

Advantages:

All the requirements are identified at the early stage making cost effective.

Save time by reducing time of developing system again and again (because

requirements are identified clearly at early stages).

Can easily resolve technical issues as system requirements are identified

earlier.

System can develop very easily.

Disadvantages:

Can mislead the user with the attractive look of prototype.

Wastage of money in redesigning and making the prototype again and

again.

P a g e 53
S.W. Nishan Pradeep - 990585027

3.4.2.2. Evolutionary Prototyping

This prototype is quite different from through away prototyping. When

using evolutionary prototype, the system is refined and rebuilt continuously.

This can be used to build a very robust prototype in structured manner.

Advantages:

A system with basic functionalities can be delivered to client in early stage.

Users will be getting training automatically.

Developers can focus more on parts that they understood well rather than

developing the whole system at once.

User does not needed to waiting for the long time to have a system which

they can work at least partially.

Disadvantages:

Continuous changes may lead to maintenance problems.

P a g e 54
S.W. Nishan Pradeep - 990585027

3.4.2.3. Incremental Prototyping

In this prototype the business requirements are divided into sub modules

and built them separately passing through the SDLC phases. If the

requirements are clearly defined and well understood this model can be used

to develop the software.

Advantages:

A flexible and less cost prototype to build the software.

As main business process divide into sub modules testing and debugging is

easier with these small iterative modules.

The client can make their response to each module separately.

Can deliver working software at early stages high up client satisfaction.

P a g e 55
S.W. Nishan Pradeep - 990585027

Initial cost for deliver will be low.

Easier to manage risks because risky modules are identified earlier and can

handled them smoothly.

Disadvantages:

Total cost will be higher than models like waterfall.

Before starting or dividing the system into modules, needs to have a clear

and vivid understanding of the whole system.

Good planning and designing should be there to develop successful project.

3.4.3. Rapid Application Development (RAD)

This is a linear sequential software development model with very short

development cycles. Each cycle is carried out parallel as mini projects. RAD is

also a type of incremental model. So this model can be used to deliver a product

to a client partially functioning and can get feedback from the client in order to

build software in more effective way within the limited time frame. Business

modelling, data modelling, process modelling, application generation, testing

and turn over are the phases in PAD modelling.

P a g e 56
S.W. Nishan Pradeep - 990585027

Advantages:

Development time can be reduced by increasing the reusability of

components.

Client feedback is encourage to make software more effective.

Use of time boxing features and get help of advanced CASE tools

The quality of product will be increased due to heavy involvement of client

in design, analysis and development phases.

Disadvantages:

Experts skilled people and advanced tools are required.

Large amount of resource utilization due to ongoing simultaneous work

processes.

Inapplicable to cheaper projects as development cost is very high.

P a g e 57
S.W. Nishan Pradeep - 990585027

3.4.4. Spiral lifecycle model

Until the project is completed, the adaptive SDLC approach that goes

over and over again passing through all the development activities. Planning,

risk analysis, engineering and evaluation are the phases in spiral model and in

each iteration all these phases are carried out.

Advantages:

Avoidance of risk can be easily done due to high amount of risk analysis.

As additional functionalities can be added in later stages this model is

mostly useful for large and critical projects.

P a g e 58
S.W. Nishan Pradeep - 990585027

Disadvantages:

Project success is fully depend on success of the risk analysis phase.

As cost is very high for this model, does not work well for smaller projects.

3.4.5. OOP design using unified process

Unified Process is another common software development methodology

used in software industry. It is an object oriented approach to the software

development process. This can also be introduced as a hybrid product of both

waterfall and the spiral model approach. As it put together the non-adaptive

characteristics of waterfall method and adaptive characteristics of the spiral

model approach, unified process approach can be apply to wide range of

scenarios.

Unified process follow both the following concepts in the aim of having a

better software development approach.

Iterative

Incremental

Unified Process Life Cycle (UPLC) is mainly follow four phases.

Inception Phase

Elaboration Phase

Construction Phase

Transition Phase

P a g e 59
S.W. Nishan Pradeep - 990585027

3.5. Why unified process selected for software

development?

For the development of micro credits management system for ABS

Credits Company Unified Process model is selected. As this system is

somewhat large system to develop it is not enough to use only one model to

develop the project in order to have a successful product. So used unified

process which is combined with spiral and waterfall method. The advantages

of these two models are used to complete the system in effective and

comprehensive manner. The unified process life cycle includes phases which

project move over time, each iterations will be passed analysis, design and

implementation again and again until the project is fully completed. At the end

of each iteration, a working software with some completed parts which has been

tested and debugged can be deliver to client. This process model is more

flexible and simple to follow when requirements complex and not clearly

mentioned. So four phases provide framework for planning and tracking the

project over time.

P a g e 60
S.W. Nishan Pradeep - 990585027

Up phases and objectives

UP PHASE OBJECTIVE

Inception Analyse the business scenario and develop tentative

vision for the system.

Clearly identified project scope and system

boundary.

Identified problems in old system and defined

strengths in new system.

Elaboration Identify and describe all the requirements that shout

meet by the new system.

Refine the system vision and make a stable one.

Design business requirements using UML diagrams.

Find solutions for high risks activities.

Implement the core architecture of the business.

Construction Implement lover risk remaining tasks.

Focus on predictable parts of the system and

remaining parts.

Data validation, finalizing the user interface

designing, completing the help and user preference

functions are done in this phase.

Transition Make the system ready for operation.

Do all necessary testing to complete the system.

P a g e 61
S.W. Nishan Pradeep - 990585027

3.6. Models Used for System Designing

Model is the easiest way to record or communicate information. As any

other model, a model in the information system development satisfy same

purpose. A model is the representation of an easiest aspect of real world

scenario. Here we abstract most important part in a particular task and

represent it using a model. The models used in system development include

inputs, outputs, processes, networks, objects, interaction between objects and

many more. When creating micro credits system for ABS Credits Company

used graphical models to do representation of activities. For that got the help

of notation defined by the Unified Modelling Language (UML). UML is standard

set of model constructs and notations developed specifically for object oriented

development.

3.6.1. Class Diagram

(Please refer appendix B for class diagram for User, Cash and location

modules)

3.6.2. Activity diagram

The easiest way to represent activities done by various users. Activity

diagram can be used to represent the person who does each activity and

sequential flow of each activity using swim lanes with the control flow of among

processing steps. Following figure shows the basic symbols used when

drawing an activity diagram.

P a g e 62
S.W. Nishan Pradeep - 990585027

The basic symbols used in activity diagram.

(Please refer appendix B for activity diagrams related to the system)

3.6.3. Sequence Diagram

The sequence diagram is an interaction diagram which shows

interaction between objects at the time of project is working and lifeline of

objects. (Please refer appendix B for sequence diagram)

P a g e 63
S.W. Nishan Pradeep - 990585027

3.7. Tools Used for Designing

A tool is a software that support to create models or other components

required in the project. When creating Micro Credits Management System used

different tools for system development in order to make the tasks easier and

quicker.

1. Microsoft Visio 2013 is used to create UML use case, sequence diagram

and activity diagrams.

2. Visual Paradigm is used to create class diagram.

3. IntelliJ IDEA is used as Integrated Development Environment (IDE) for

backend server.

4. Web Strom is used as Integrated Development Environment (IDE) for

frontend client side.

5. Php Storm is used as Integrated Development Environment (IDE) for

fronted client side (develop some php codes).

6. PhpMyAdmin used to create database.

7. Mysql Workbench is used to create Entity Relationship Diagram.

P a g e 64
S.W. Nishan Pradeep - 990585027

3.8. System designing

3.8.1. Techniques used in system designing

A technique in system development is a collection of guidelines that help

an analyst complete a system development activity or task. A technique

described either step by step instructions to create a model or general advice

for collecting information from system users or way of system development.

Usage of techniques with best practices will automatically lead to successful

completion of the project.

Some techniques considered in developing Micro Credits Management

System are

Project scheduling techniques

User interviewing techniques

Domain modelling techniques

Use case modelling techniques

User interface design techniques

Use case testing techniques

Relational database design techniques

Security design techniques

A methodology (process model) includes a collection of techniques that

are used to complete tasks in system development project. Creating variety of

models, documentation and deliverables are included in these activities. Figure

shows the relationship among techniques, models and tools

P a g e 65
S.W. Nishan Pradeep - 990585027

METHODOLOGY
TECHNIQUES MODELS

TOOLS

3.8.2. Database Designing

Managing database is the most important part of the project as it

provides common repository for data that have ability of sharing among entire

company. Properly created database management system will allow users to

sophisticated capabilities such as data store, data retrieve and manipulate data.

For Micro Credits Management System used Relational database with object

oriented concepts. A model class is taken as one table and created tables in

database according to it for more convenience. Hibernate framework is used to

create database in runtime as it is one of latest technologies in creating

database.

Some steps followed in creating database.

1. Gather necessary information related to ABS Credits Company.

2. Choose columns needed for each table after normalization.

3. Select primary key and foreign keys needed for each table.

4. Create model classes using object oriented concepts.

5. Choose appropriate data types and value restrictions for each field.

P a g e 66
S.W. Nishan Pradeep - 990585027

6. Represent classification hierarchies.

7. Define referential integrity constraints.

8. Evaluate schema quality and make necessary improvements.

(Please refer appendix B for database tables)

3.8.3. Entity Relationship Diagram(ERD)

(Please refer appendix B for ERD)

3.9. User Interface Designing

User interface is the interface where end user interact with the system.

To the end user, the user interface is the system itself. So while using the

system end user will contact with the system physically, perceptually and

conceptually. So when creating Micro Credits Management System more

attention were given on this part in order to deliver final product with high client

satisfaction. Following described some parts which were considered in

designing user interface for ABS Credits Company.

3.9.1. Physical Aspects of the user interface

This describes the physical aspects of user interface include the devices

which end user actually touches (keyboard, mouse, touchscreen). Reference

manual, printed documents, data entry forms are also defined as physical parts of

the interface. As example though cash collector in ABS Credits Company works at

a computer terminal, he uses hand written cash collector information documents

to enter daily cash collection details into the system. So when

P a g e 67
S.W. Nishan Pradeep - 990585027

developing Micro Credits Management System mostly focus on this feature and

considered about the desk space, available lights, computer terminal hardware

and screen size that end user have to work on.

3.9.2. Perceptual Aspects of the user interface

This describes the perceptual aspect of user interface include everything

the end user sees or hears. The data, shapes, lines, numbers, colours, words

and all the things displayed on the screen is very effectively involved in making

the system attractive to the end user. In Micro Credits Management System

these principles are taken in to high consideration. As user request white colour

is used as background of the system. Other colours are well matched with user

requirements. When completing tasks user has to go through menus, dialog

boxes, buttons, drop down lists and so on. All these are used in way that system

user can smoothly access to the system.

3.9.3. Conceptual Aspects of the user interface

This describes the conceptual aspect of user interface include

everything the user knows about using the system. To improve user understand

ability about the system just looking at the user interfaces only, user interfaces

are created in user friendly manner. The every component used in user

interfaces are used in the way that end user can easily handle.

By using above three aspects in Micro Credits Management System,

user interfaces with high user satisfaction could delivered as output. This

P a g e 68
S.W. Nishan Pradeep - 990585027

lowered the time and cost for user training and system users get used to

system very quickly.

Some user interfaces in Micro Credits Management System are shown

below.

User Login

The system login form allows users to log into the system. The user must enter

username and password and select the branch before logging into the system.

Only the admin user is able to log into the system without selecting branch. If the

user enters correct username, password and the branch (branch selection optional

for admin) user can log into the system dashboard else error message is displayed

by the system informing the incorrect details of the user.

P a g e 69
S.W. Nishan Pradeep - 990585027

Dashboard

System dashboard is the main interface used in the system. Logged user can

access any web page according to the permission granted by user from this

user interface. The Branch summary details, shortcut buttons for the frequently

used forms and links can accessed through this form. Also logged user name

is displayed on the top of the right side.

3.10. Summary

Finalizing of system scope, system vision is done and start basic

implementation in this part. Some user interfaces are designed in this phase.

Understanding of business high risk requirements are already finish in this

phase. All the diagrams and detailed outputs are taken as inputs to the

construction phase in order to complete the user requirements successfully.

P a g e 70
S.W. Nishan Pradeep - 990585027

CHAPTER 4

CONSTRUCTION

PHASE

P a g e 71
S.W. Nishan Pradeep - 990585027

4. Construction Phase

4.1. Introduction

Several iterations of design and implementation discipline is done in

construction phase. The core architecture is already completed and now looked

into built other parts of the system. When runs through multiple iterations, each

iteration come up with an executable output. Implementation of the software

takes the major role in this phase. Lower risk, predictable and easier elements

are prepared for deployment. Testing also run parallel with implementation in

order to provide error free code to the client.

4.2. Implementation

4.2.1. Hardware specification of the implementation

environment

Intel(R) core i5-4670 CPU at 3.4GHz

4GB DDR3 RAM

500 GB SATA hard disk drive

P a g e 72
S.W. Nishan Pradeep - 990585027

4.2.2. Software specification of the implementation

environment

Ubuntu 14.04 as an Operating System.

Jetty distribution 9.2.3 as a local Server.

Web Storm 11.0.4 for develop the client side of the

project.

Php Storm 10.0.4 for develop the client side of the

project.

Intellij Idea 15.0.6 for develop backend of the project.

Mysql 5.5 database for store and manipulate data.

LAMP server to locally run the Php files.

4.2.3. Client Side(Front end) Development

Languages

1. HTML 5

Hypertext Mark-up Language is the standard and widely used language to

create web pages or dynamic web applications which is understandable by

World Wide Web. As in any other language HTML has specific codes known as

tags. These are very short codes and written in angle brackets. There are opening

(<open>) and closing tags (/close) in HTML. In between these two tags data can

be fixed either in statically or dynamically. Alone with HTML, CSS and scripting

languages are used to make work more effective. In this system also

P a g e 73
S.W. Nishan Pradeep - 990585027

use these techniques in order to make customer more attractive to the system

without getting frustration about the system.

Tim Berners Lee is the founder of HTML and he is a physicist and a

computer scientist who work at CERN. By now W3C and WHATWG are the

responsible for further developing HTML.

For Micro Credits Management System HTML5 is used. It is the most

recent version of the HTML family and have better features which help in

creating user interfaces in user friendly manner.

2. PHP

PHP is widely used for creating dynamic websites and it is a HTML

embedded scripting language. This is open source technology that runs on most

of operating systems and web servers. PHP is initially written by Rasmus

Lerdorf with C programming language as simple set of Common Gateway

Interface (CGI) binaries.

PHP is the one of easiest scripting languages which can be learned by

beginners in few steps. Responsive ability of this language is very high as it is

very speedy. PHP provides best way to fix problems as it can clean up and start

over with each request. So an issue in one request will not disrupt another

request.

Following shows PHP is used in creating system after considering about

user requirements and PHP features.

P a g e 74
S.W. Nishan Pradeep - 990585027

3. CSS

CSS stands for Cascading Style Sheet. CSS is used to make web pages

more attractive to system users. CSS takes responsible in adding stylish effect to

the web pages which HTML cant done it self. The most important feature in CSS

is commonly used styles can be defined in one separate CSS file with separate

classes and ids. When necessary can used ids and classes with html coded

elements in order to give then style. Id related styles are used when there is only

one element in that web page want that style. The style id and the id of the element

will be same and the unique to that particular web page. Class related styles are

used when more than one element in the web page needed same style. All those

elements will defined with style class name.

Frameworks

1. Bootstrap

Bootstrap is a open source front end framework very famously used as

web development software in order to make the software more responsive. It

widely used with HTML, JavaScript and CSS. This framework was introduced

by Mark Otto and Jacob Thornton.

Because of the responsiveness ability of bootstrap framework used in

developing Micro Credits Management System as it is stop making user

interfaces for users with different size screens.

P a g e 75
S.W. Nishan Pradeep - 990585027

2. AngularJS

AngularJS is an open source JavaScript framework which is maintained by

Google Company. Dependency injection and data binding in AngularJS reduced

lot of codes we have to write along with HTML by providing features included with

in them. All the tags should be written with in script tag.

Libraries

1. Jquery

JQuery is JavaScript library which is fast, simple, small and some more

important features. JQuery attract millions of people towards JavaScript

language due its extensibility and versatility. Animation, manipulation, Ajax and

event handling in HTML page can done easily with the usage of APIs due to

features available in JQuery. So used JQuery for client side development to get

the use of above mentioned features.

(Please refer appendix C for usage of all these languages, frameworks and

libraries in client side)

P a g e 76
S.W. Nishan Pradeep - 990585027

4.2.4. Server Side Development

Language

1. Java
Java is one of the object oriented languages widely used in today. It was

developed by James Gosling in Sun Microsystems and now owned by the

Oracle Corporation. Java is very easy language to understand and can learn it fast

for any developer. As java is platform independent can move from one server to

other easily. So used java as developing language for developing back

end.

Framework
2. Spring

Spring framework is the one of popular frameworks used to create web

based applications. It is used dependency injection feature and provide easy

way to handle objects by reducing tight coupling between them. Provide more

readable codes and help to manage middle tiers in the project.

3. Hibernate

Used to manage databases requests in optimal level. As hibernate is

designed with layered architecture it is easy to get features what we really need

for the project. Hibernate can used to manage database with optimal features

as hibernate provides connection pool mechanism and some of most important

needs for the server database handling.

(Please refer appendix C for usage of frameworks in sever side)

P a g e 77
S.W. Nishan Pradeep - 990585027

4.3. Module Structure and important codes

4.3.1. Module Structure

Client side and server side software implementation done as two

projects and for both of them used standard packaging style and standard

coding.

4.3.1.1. Client Side

Standard packaging style and packages used in client side can be seen

in following diagram. In each module controller, service, service DAO and view

packages are used.

P a g e 78
S.W. Nishan Pradeep - 990585027

4.3.1.2. Server Side

In server side project is implemented as different modules in order to

make the implementation easier and to maintain standards of the codes in the

project.

P a g e 79
S.W. Nishan Pradeep - 990585027

P a g e 80
S.W. Nishan Pradeep - 990585027

4.3.2. Database Connection(Server Side)

To store data in database it is needed to have configure the connection

to the database. Following shows how database connection is implemented in

Micro Credits Management System in order to get database performances.

<bean id="developingServer"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/openmicropro"/>
<property name="username" value="root"/>
<property name="password" value="nishan"/>
</bean>

4.3.3. Id Auto Generating Code(Server Side)

Following code is used to generate ids automatically without system user

interference. As id field is taken as primary key it is necessary to stop

duplication of primary key. So system handle it by using this code. By this code

ensure that same id will never get by two customers. Same type of coding

mechanism is used for all id auto generators in the system.

public String getCustomerCode(String centerId) {

Center center = centerDAOService.getCenterById(centerId);


Integer lastCustomerCode = null;
if (center != null) {
lastCustomerCode = center.getLastcuscode();
}

if (lastCustomerCode!=null) {
long newCustomerCode = lastCustomerCode + 1;
String customerCode = centerId + "/" +
newCustomerCode; return customerCode;
}else {
Long count =
customerDAOController.getAllCountByCenter(centerId);
long newCustomerCode = count + 1;

P a g e 81
S.W. Nishan Pradeep - 990585027

String cusCode = centerId + "/" +


newCustomerCode; return cusCode;
}
}

4.3.4. User permissions handling code(Client side)

This feature is used to handle the user permission granted to the users

by admin. For access to a particular feature user need prior permission from

admin. When requesting to access to the activities in the system following code

checks whether admin has granted the permission. If so system will allow user

to access to that requested feature in the system.

/**
* save user permissions in
rootScope */
$rootScope.getPermissionReal = function (permission) {

for (var i = 0; i < $rootScope.allPermissions.length; i++) {


if ($rootScope.allPermissions[i].permission === permission) {
return true;
} else {
}
}
};

/**
* Creating system routes with Angular
Routes */
module.config(function ($routeProvider)
{ $routeProvider

.when('/form', {
templateUrl: 'app/view/customer/form.html',
controller: '',
resolve: {
"check": function (accessFac, $location, $rootScope) { if
($rootScope.getPermissionReal("Add Customer")) {

} else {
$location.path('/');
$.notify("YOU DON'T HAVE ACCESS PERMISSION",
"error");

P a g e 82
S.W. Nishan Pradeep - 990585027

}
}
}
});
});

4.4. Object Oriented Programming (OOP)

The concept Object Oriented means that to accomplish a certain task

the set of interacting objects are used.Using OOP concepts naturalness is

added to the system. In OOP classes can be reuse. This ability help to create

class at one time and used for several times in same project. So it is easy for

implementation as coding repetition can get lowered and can improve coding

style.

4.4.1. Usage of Inheritance Concept

Inheritance allows child classes to inherit the characteristics of the

parent class such as methods and attributes. A child class can extend the

parent class by adding new fields and methods or modify existing behaviour.

Extensibility, provide abstraction, eliminates redundant code and reusability are

some benefits can gain using inheritance concept. Following code shows usage

of inheritance in Micro Credits Company.

public interface LoanDAOController extends


DAOController<Loan,String> {

List<Loan> getAllLoanByPagination(Integer limit, Integer offset);

Integer removeLoanById(String branchId);

List<Loan> getAllLoanByCenterId(String centerId, Integer limit,


Integer offset);

P a g e 83
S.W. Nishan Pradeep - 990585027

List<Loan> selectGuarantee(String centerId, Integer limit, Integer


offset);

4.4.2. Usage of Abstraction Concept

Know what vs. how concept is used in abstraction. Managing

complexity, Code reusing and managing changes are some advantages can

gain through this concept. Following code shows usage of abstraction in Micro

Credits Company.

@Transactional
public class AbstractDAOController<T extends EntityInterface, I
extends Serializable> implements DAOController<T, I> {

protected final Class<T> entityType;


protected final Class<I> idType;

@Autowired
private SessionFactory sessionFactory;

public AbstractDAOController(Class<T> entityType, Class<I>


idType) {
this.entityType = entityType;
this.idType = idType;
}

protected Session getSession() {


return sessionFactory.getCurrentSession();
}

P a g e 84
S.W. Nishan Pradeep - 990585027

4.4.3. Usage of Polymorphism Concept

The ability of an object to take on many forms is the core concept of the

polymorphism, Sub classes of a super class can define their own unique

behaviours but yet shares some of the same functionality of the parent class.

Following code shows usage of polymorphism in Micro Credits Company.

@Override
public Integer removeLoanById(String loanid) {
Session session = getSession();
String hql = "delete from Loan where loanid= :loanid";
int i = session.createQuery(hql).setString("loanid",
loanid).executeUpdate();
return i;
}

@Override
public List<Loan> getAllLoanByCenterId(String centerid, Integer limit,
Integer offset) {
Criteria criteria = getSession().createCriteria(entityType);
criteria.add(Restrictions.eq("centerid", centerid));
if (limit != null && offset != null) {
criteria.setFirstResult(offset);
criteria.setMaxResults(limit);
}
return criteria.list();
}

4.4.4. Usage of Encapsulation Concept

Hides the implementation details of the particular class. And

encapsulation helps to ensure that structural changes remain local and fields

can be made read only, write only or allowed both read and write strategies.

Following code shows the usage of encapsulation.in Micro Credits Company.

@Entity
@Table(name = "customergroup")
@JsonIgnoreProperties
public class CustomerGroup implements EntityInterface<String> {

private String customergroupid;

P a g e 85
S.W. Nishan Pradeep - 990585027

private String customerone;


private String customertwo;
private String customerthree;

@Id
@Column(name = "customergroupid")
public String getCustomergroupid() {
return customergroupid;
}

public void setCustomergroupid(String customergroupid)


{ this.customergroupid = customergroupid;
}

public String getCustomerone()


{ return customerone;
}

public void setCustomerone(String customerone)


{ this.customerone = customerone;
}

public String getCustomertwo() {


return customertwo;
}

public void setCustomertwo(String customertwo) {


this.customertwo = customertwo;
}

public String getCustomerthree() {


return customerthree;
}

public void setCustomerthree(String customerthree) {


this.customerthree = customerthree;
}

@Override
@Transient
public String getId() {
return getCustomergroupid();
}

@Override
public String toString() {
return "CustomerGroup{" +

P a g e 86
S.W. Nishan Pradeep - 990585027

"customergroupid='" + customergroupid + '\'' +


", customerone='" + customerone + '\'' +
", customertwo='" + customertwo + '\'' +
", customerthree='" + customerthree + '\'' +
'}';
}
}

4.5. Model View Controller

Also known as MVC in shorten form. This is software architectural

pattern which divides the software into three parts as model, view and

controller. Model is responsible for maintaining data. View is responsible for

giving out system activities to the system users and users can interact with the

system only through this. Controller is placing in between model and view and

help to keep interaction between model and controller.

Front View
<div id="page-wrapper" ng-controller="AddCenter">
<div class="graphs">
<div class="xs">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title"><strong>Center Management /
Add new center</strong></h3>
</div>
<div class="panel-body">
<div class="tab-content">
<div class="tab-pane active" id="horizontal-form">
<div class="col-lg-6">
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">Select
branch<span
style="color: red">*</span></label>

<div class="col-sm-8"><select data-


toggle="tooltip" title="Select branch"

P a g e 87
S.W. Nishan Pradeep - 990585027

class="form-control" ng-
model="center.branch"
id="branch" ng-
click="getCenterCode()">
<option value="">Select
Branch</option> <option
ng-repeat="data in allBranch"
value="{{data.branchid}}">
{{data.name}} - {{data.town}}
</option>
</select></div>
</div>

Front Controller
$scope.saveNewCenter = function () {

document.getElementById("saveCenterBtn").disabled = true;

if ($scope.center.name == '') {
$scope.errors.push("Error");
document.getElementById("name").style.backgroundColor =
"#FFB2B2";
} else {
document.getElementById("name").style.backgroundColor = "white";
}

if ($scope.center.branch == '') {
$scope.errors.push("Error");
document.getElementById("branch").style.backgroundColor
= "#FFB2B2";
} else {
document.getElementById("branch").style.backgroundColor =
"white";
}

if ($scope.center.code == '') {
$scope.errors.push("Error");
document.getElementById("code").style.backgroundColor =
"#FFB2B2";
} else {
document.getElementById("code").style.backgroundColor = "white";
}
if ($scope.errors.length > 0)
{ $scope.errors = [];
return;

P a g e 88
S.W. Nishan Pradeep - 990585027

console.log($scope.center);

var center = {
centerid: $scope.center.code,
name: $scope.center.name,
branchid: $scope.center.branch
};
centerService.addCenter(center).then(function (data)
{ console.log(data);
$route.reload();
$.notify("Successfully Added", "success");
});

};

Front Service
addCenter: function (data)
{ return $http({
method: "POST",
data: data,
headers: headers,
url: host.center + '/save'
}).then(function (reponse) {
return reponse.data;
});
},

Backend Model
@Entity
@Table(name = "center")
@JsonIgnoreProperties
public class Center implements EntityInterface <String> {

private String centerid;


private String name; private
String branchid; private
Integer orderBy; private
Integer lastcuscode;

@Id

P a g e 89
S.W. Nishan Pradeep - 990585027

@Column(name = "centerid")
public String getCenterid() {
return centerid;
}

public void setCenterid(String centerid) {


this.centerid = centerid;
}
public String getName()
{ return name;
}
public void setName(String name) {
this.name = name;
}
public String getBranchid() {
return branchid;
}
public void setBranchid(String branchid)
{ this.branchid = branchid;
}
public Integer getOrderBy() {
return orderBy;
}
public void setOrderBy(Integer orderBy) {
this.orderBy = orderBy;
}
public Integer getLastcuscode() {
return lastcuscode;
}

public void setLastcuscode(Integer lastcuscode) {


this.lastcuscode = lastcuscode;
}
@Override
@Transient
public String getId() {
return getCenterid();
}
@Override
public String toString() {
return "Center{" +
"centerid='" + centerid + '\'' +
", name='" + name + '\'' +
", branchid='" + branchid + '\'' +
", orderBy=" + orderBy +
", lastcuscode='" + lastcuscode + '\'' +
'}';
}
}

P a g e 90
S.W. Nishan Pradeep - 990585027

Backend Controller

@RequestMapping(value = "save", method =


RequestMethod.POST) @ResponseBody
public ReturnIdModel save(@RequestBody Center center) {
String res = centerDAOService.save(center);
ReturnIdModel returnIdModel = new ReturnIdModel();
returnIdModel.setId(res);
return returnIdModel;

Backend Service
public String save(Center Center) {
String id = new Date().getTime() + "";
Hashids hashids = new Hashids(id);
String hexaid = hashids.encodeHex(String.format("%040x",
new BigInteger(1, id.getBytes())));
String newid = hexaid + "" + randomString(10);
Center.setCenterid(newid);

String s = centerDAOController.create(Center);
return s;
}

Backend DAO Controller


public interface DAOController<T extends EntityInterface, I extends
Serializable> {

/**
* Create Entity in db
*
* @param entity
* @return
*/
I create(T entity);

P a g e 91
S.W. Nishan Pradeep - 990585027

4.6. Designing Controls and Security

4.6.1. Designing integrity control

This mechanism is used in the aim of safeguard the information within

the system. This can be data input or information output. To maintain integrity

in information have to considered about the things such as processing controls,

output controls, network access security, data encryption, database controls,

input controls and OS security. The primary objective of integrity control is to

make sure that only the appropriate and correct business transaction is

occurred within the system.

4.6.2. Designing Security control

This principle helps to project the system data from internal or external

malicious attack. Protect information and transactions during the time of

they are happening is main system task. In Micro Credits Management

System following steps are taken to maintain security controls of the system.

Establish what portion of view a system user can use according to

permissions granted by the admin.

Logging to the system is password protected and password is encrypted

when saving in the database.

User log is maintained to track activities done by each user and this can only

view admin and cant do modifications to it.

P a g e 92
S.W. Nishan Pradeep - 990585027

4.7. Testing

The testing is done in order to examine the defects containing in the

developed system. In testing check whether system meets client requirements,

system can face anomalous inputs successfully without crashing. If all the test

cases are passed successfully then it notifies that system is in good, satisfied

and operational level condition. The basic types of methods used in system

testing are black box testing and white box testing.

4.7.1. Black Box Testing

When entire class, module or system is needed to test and the tests are

delivered from the program or component specification, the functional (black

box) testing approach is used. In this approach behaviour is studied only look

at its inputs and outputs but does not go through source code.

The tester feed inputs to the module or system and examine the output

given by the system. If the actual output and predicted output is matched, then

system runs well. But if there is a mismatched, then the test has detected a

problem with the system.

The main problem in black box testing is to select the corresponding test

data. To minimize this problem used equivalence partitioning method. It means

that selected test cases which are most necessary to check.

P a g e 93
S.W. Nishan Pradeep - 990585027

4.7.2. White Box Testing

The structural testing pattern and is also termed as glass box testing or

clear box testing. This approach is used for each unit, module in the system to

identify the errors in logic of the code. When compared to black bow testing,

white box testing is used for relatively small programs such as subroutines or

operations associated with various objects.

White box testing focuses on three main areas of a program.

1. Sequence or statement coverage

This will focus on each and every line of code in the testing part of the

system.

P a g e 94
S.W. Nishan Pradeep - 990585027

2. Selection or condition coverage

This will focus on each selection or condition in the testing code. So two main

conditions are taken into consideration that is values within the range and

values out of the range.

3. Loop coverage

This will focus on the each iteration of the testing code. So three main cases

are taken into consideration that is skip part, one pass part and more than

one pass part.

4.7.3. Grey Box Testing

Grey box testing is combination of black box and white box testing. But

user should have somewhat knowledge in coding structure of the testing part.

But doesnt need to go through code thoroughly like in white box testing, not

less like in black box testing.

4.8. Testing Strategy and Sequence

As mentioned in earlier testing is done to check whether client

expectations are satisfied in comprehensive manner in logical wise. This the

one goal of testing. Other goal of testing is to validate the user requirements

and design decisions embodied in the system. Another goal is to discover errors

in system due to errors caused at the time of developing the system.

P a g e 95
S.W. Nishan Pradeep - 990585027

For every developed module many types of testing are carried out at

many different times for many different purposes. Planning each module or

entire project is combined with planning for tests as it is the most crucial part in

the system.

Testing activities were distribute throughout the modules and entire

project as Unified Process allowed to distribute requirements, design and

implementation activities in many phases with multiple iterations.

Following described the test types and detected defects identified at the

testing discipline.

4.8.1. Unit Testing

Unit testing is used to determine errors in individual methods, classes or

component before they are integrated with the software. Before modules are

combined into larger software units, unit testing are done in the aim of identified

and fix errors individually as much as possible.

As example when a method is considered as a unit, the messages from that

method may be send to one or more classes or send messages to methods in its

own class should be tested separately to see all these are working well. And test,

data that inserted into the database is correct after validation and refine. In this way

code should test using unit test in order to make bugles code.

P a g e 96
S.W. Nishan Pradeep - 990585027

4.8.2. Usability Testing

This testing is done to check whether a method, class, subsystem or

system meets user requirements. Both functional and non-functional

requirements availability is determined here.

The most common type of usability testing is evaluates quality of user

interfaces. System users interact with the system and check whether user

interfaces makes the system easy to use. This test is conducted frequently

when user interfaces are developed to get rapid feedback which helps lot in

improving the interface and the correcting any errors in the underlying software

components.

4.8.3. Integration Testing

Integration testing is used to tests the behaviour of the group of methods

or classes. The main purpose of integration testing is to detect errors and bugs

which could not identified in unit testing. These errors may occurs due to so

many problems. Following are some problems encountered during integration

testing.

1. Interface incompatibility One method passes a parameter of incorrect data

type to another method. For instance pass String value to the method which

has data type as double

2. Runtime exceptions Sometimes methods in server part issues runtime

errors such as out of memory or file already in use due to resource needs

confliction.

P a g e 97
S.W. Nishan Pradeep - 990585027

3. Unexpected state interactions Two more objects interact together and

cause unexpected failures. For instance all the customers are loaded except

one customer in loan list who took a loan.

4. Parameter values A method is returned or passed a value that is not

expected. For instance an integer value returns float value.

As OOP concept is used to create the code, the integration testing is

more complicated. As methods are called by many other methods, the calling

method is distributed among the many classes. Some methods are called at

dynamically and not in predefined manner. The classes with inherit methods

and state variables are interact with more than one class. Therefore in

integration testing it is difficult to determine optimal testing order and developing

and executing an integration testing for OO software is very complex. Thus

determined the error code and place where the error occurred should done in

smoothly.

After these errors are detected, go through error code and traced out a

best way to fix the problem without effecting the other parts of the code.

P a g e 98
S.W. Nishan Pradeep - 990585027

4.8.4. System Testing

System testing is an integration testing which is done for entire system

or independent sub system. At the first stage system testing is done by

developer to identify whether system meets user requirements in the

perspective of developer. When developer satisfied about the overall system

has come a cross with user requirements, later the system is presented for user

to confirm whether the system fulfil client requirements.

P a g e 99
S.W. Nishan Pradeep - 990585027

4.8.5. Build and Smoke Testing

This is a type of system testing which performed daily or weekly in order

to encounter errors. The advantage of build and smoke testing is its rapid

feedback on significant problems. When an error occurs during this testing, it is

totally because of software part added since last build and smoke testing. So

this testing showed a way to identify errors so easily. So daily testing ensured

the errors in system are fixed.

P a g e 100
S.W. Nishan Pradeep - 990585027

4.8.6. Performance Testing

Performance testing is combination of integration testing and usability

testing that used to check whether the system meets its time based

requirements. It is very difficult to verify whether system satisfied this

requirement. So frequent testing is needed to meet this requirement.

4.9. Test Cases Designing

The most important part of the testing is to design and specify the test

cases and data. A test case should be consist of a starting state, expected

response or ending state and one or more events to which the software must

P a g e 101
S.W. Nishan Pradeep - 990585027

response. The starting and ending states and the events represented by a set

of test data.

Preparing test cases and test data is a most important and time

consuming process. Every instruction must be executed at least at once in

method level. So the preparing test cases and selecting input range for testing

is most crucial thing. The test data should be ordinary and extra ordinary in

order to make sure system did not crash at any level of input type.

When preparing test cases test case number, test case type, test case

name, description of test case and expected output at success and failure state

is mentioned. Frequently updating of test cases will lead to the successful

testing finishing.

(Please refer appendix C for test cases and results.)

4.10. Quality of Code

Maintaining the code quality is not easy task. It should be done from the

beginning of the system development. Some strategies are followed to high up

quality of the code of Micro Credits Management System. Followed the style guide

of all the programming languages used in designing the system as it is the best

way to identify all the good and bad practices in code with how naming, bracketing,

spacing and other stuffs are done. When naming classes, methods and attributes

descriptive names are used. It helped lot in feeling that system is alive. And also

these descriptive naming helps to identify what each class, method or attribute do

by just looking at the code rather go through whole code.

P a g e 102
S.W. Nishan Pradeep - 990585027

1. Accuracy

2. Readability

3. Efficiency

4. Usability

5. Performance

6. Bugs free Code

4.11. System Acceptance

In all the testing methods sample data were added and check for the

performance of the system. But actual need is to check the system with real

user data. Before accepting the system client test the system at developers

place as well as clients environment. Following are some tastings used with the

client.

4.11.1. Alpha Test

This testing were done with presence of some system users. Minor

errors could be identified after this testing dine for each modules. System users

are satisfied with the system requirements after conducting alpha testing and

now system is ready for beta testing.

4.11.2. Beta Test

This testing is done at the clients environment. Up to now only some

modules are installed in the ABS Credits Company. The errors identified by

P a g e 103
S.W. Nishan Pradeep - 990585027

system users are settled down quickly. Update versions are submitted to the

client and client tested for errors and do beta testing.

4.11.3. User Acceptance Test

This is the last testing strategy. User acceptance testing is done after all

other tests are over. Before acceptance testing here may be few release of

Beta testing. After user acceptance test is passed whole system can be

implemented in the client environment. For Micro Credits Management System

user acceptance test is passed due to its high satisfaction of user requirements

and system runs at the level the user is expected. In the near future system

implementation in client side will be done.

4.12. Summary

In construction phase system implementation is completed and testing

also finished. Client requirements are satisfied and fulfilled in comprehensive

manner after passing through several phases. In this chapter described about

how implementation is done in both client and server side. The techniques and

languages used to implement the also described here. Now only has to go

through final phase transition.

P a g e 104
S.W. Nishan Pradeep - 990585027

CHAPTER 5

TRANSITION

PHASE

P a g e 105
S.W. Nishan Pradeep - 990585027

5. Transition

5.1. Introduction

After passing through several phases now reached to end part but most

important part of the software development process. In this phase actual

deployment of the system in client environment is done. It implies that the after

deployment the new system comes into operational level. Still deployment of

Micro Credits Management System for ABS Credits Company does not

completed. So from here onwards described deployment strategies that are

considered to be implement the system into real client environment.

5.2. Deployment Strategies

It is not easy task to replace the current system with new system without

crashing any activities in the business. So it is needed to take much concern and

should be done very carefully. As ABS Credits Company is going to have

Micro Credits Management System it should be give more concern in order to

stop any loss to the company due to new system. So before take decision to

select which deployment strategy is good for ABS Credits Company considered

following types of strategies.

1. Direct Deployment

The old system is replaced by new system and turned off old system

completely. This method is also known as immediate cutover because old

system is quickly cut-off by new system.

P a g e 106
S.W. Nishan Pradeep - 990585027

2. Parallel Deployment

Both old and new system runs parallel for considered amount of time.

The old system is operated until new system is tested thoroughly.

3. Phased Deployment

New system is introduced to some phases and other phases are running

still with old system. When time pass gradually all the phases will be replaced

by new system after finishing testing in every phase.

4. Pilot Deployment

The new system is introduced to some part of the organization. When

the system is tested well in that part gradually system will be spread over the

other parts.

(For more details of deployment strategies please refer appendix D)

After considering about the all these deployment strategies for ABS

Credits Company pilot deployment is selected.

Direct deployment is not suitable for this system because the client is

working with money and if there is a system crash lot of problems has to be

faced.

Parallel deployment is not matched to this system because ABS

Company does not like to run both the file based system and web based system

in every centres as it is high cost task for the company.

Company doesnt like to go for phased change over because it takes

long time to deploy the system in every branch and centre.

P a g e 107
S.W. Nishan Pradeep - 990585027

So decided to go for pilot change over. So one branch of the company

is going to selected and wish to implement system to centres of that branch.

After fully tested is over will deploy the system in other branches gradually. Still

make arrangements for this deployment and near recently system will be

implemented in all the branches.

5.3. Version Controlling

In order to get sophisticated software solution at the end version

controlling is needed. Version controlling helps to simplify the processes of

testing and deployment. In deployment phase multiple test versions are

created. These test versions helps to maintain system quality and provides well

defined set of features to the end user. Identified test failures are corrected and

release the software as new version is a concrete step towards the final

completion of the system. Alpha and beta versions of the system is carried out

during the alpha and beta testing periods.(How alpha and beta testing were

carried out in this system is described in the 4th chapter.)

P a g e 108
S.W. Nishan Pradeep - 990585027

5.4. Summary

This phase totally described about how deployment phase carried out

through the system. Though system is not implemented yet all the requirement

analysis is done to implement the new system. Deployment strategy is selected

with client acceptance. The system can be deploy in the client's environment in

near future.

P a g e 109
S.W. Nishan Pradeep - 990585027

CHAPTER 6

CONCLUSION

P a g e 110
S.W. Nishan Pradeep - 990585027

6. Conclusion

6.1. Introduction

The web based Micro Credits Management System for ABS Credits

Company is a successful project completion as client wants to implement the

system in their company. This project is helped me to get vast knowledge in

Information Management section and how to face and give a software solution

for real client. More over lessons learnt throughout this project will help to go

up in my career life is a special advantage gain by me. This chapter will give

brief description about the project done for ABS Credits Company and the

problems faced during the process and the lessons learnt from this project

including critical appraisal.

6.2. Summary of each chapter

6.2.1. Summary of introduction section

In introduction part it is totally mentioned about the business case.

The background of the company and the process of company is identified and

analysed. In this section basic analysis has done and in inception phase wide

range of system analysis done in order to identify business activities clearly. As

system scope and system capabilities were identified in this phase and it was very

useful in analysing part done in next phase.

P a g e 111
S.W. Nishan Pradeep - 990585027

6.2.2. Summary of inception phase

Mainly in this phase clarified system scope and automation scope using

UML use case diagrams with successful requirement gathering and analysis

methods. Activity table were drawn and identified simply what is the trigger,

source, response and destination of each use case. The excellent feasibility

analysis done with organizational and cultural, schedule, technological and

resource feasibility were helped in project success.

6.2.3. Summary of elaboration phase

In this phase focused on class, activity and sequence diagram to get

approach to software development phase. Various type of process models are

taken into consideration before start implementation. As most of process

models have lot of advantages, selecting a best one faced lot of difficulties.

Designing database, some user interface designing too done in this phase.

Normalise tables in correct way and selecting the most suitable way to join

tables in database in order to improve efficiency and user interfaces with client

satisfaction took lot of time.

6.2.4. Summary of construction phase

Implementation of software done in this phase and should have to do lot

of studies about the programing languages, frameworks and should have to

practice best coding patterns. This this the phase which I have to put much

effort in project success. More hours spend on implementing the project rather

than other parts. Most of the time client interact with the project in this phase

through testing and system user feedback.

P a g e 112
S.W. Nishan Pradeep - 990585027

6.2.5. Summary of transition phase

The deployment of the software is done in this phase. Most of the parts

wanted for the deployment the Micro Credits Management System has over

and in near future system is going to deploy in clients site.

6.3. Strengths and Weaknesses

This is one of major parts in software development. The developer has

to understand the strengths and weaknesses of the system in order to lower

the weaknesses and high up the strengths. Though developer (in this project

myself) tried lot to create bug free software after the deployment some

unexpected problems may occur. So at the time of deployment and after

deployment finished developer should do maintenance with system user

feedback to make system run without causing severe errors.

Can access to the system remotely, user friendly interfaces, customize

permissions to the various users, speed access to the system, generating all

the reports needed for the management of the ABS Credits Company, multiple

user ability to access the system concurrently are some advantages of the

system.

6.4. Problems Faced

Micro Credits Management System is created for real user and me

doesnt have experience in analysing part for real case scenario. So the

requirement gathering part is more difficult to done. The professional way of

conducting interviews and preparing questionnaires have to learn as those

P a g e 113
S.W. Nishan Pradeep - 990585027

things should be done in the professional way. The management is not

available at the company due to their busy works. So faced lot of difficulty in

contacting them. Some functional requirements of the system is not clearly

defined and not easy to understand well. Requirement gathering phase

extended until requirements are clearly identified.

Implementation of the system is also not so easy task. Low knowledge

in frameworks slows down the speed of the implementation at the early stage.

Continuous practicing of coding styles and frameworks with online examples

leads a way to speed up the implementation part of the system. Lack of report

writing knowledge is another problem faced when creating final documentation.

But after learning from online sites about report writing it was a very easy task

to do.

6.5. Lessons Learnt

When starting the project there were no clear idea what I have to

do. After meet up with client I got little idea about the project. Searching through

online websites about the project management and after revising the subjects

learnt in BCS I got clear knowledge about the software management

techniques.

From requirement phase to deployment phase I got lot of experience in

managing the project and I will help me to start my career life as professional

IT graduate in near future. Following are the main things which I have learnt

while doing the project.

P a g e 114
S.W. Nishan Pradeep - 990585027

How to do requirement gathering with various techniques.

How to do best feasibility analysis.

How to do system designing with diagrams such as class, activity and

sequence.

How to maintain standards in coding and packaging.

How to write a report with good standards.

Various types of implementation strategies and how to select the most

suitable for particular client.

How to manage phases in the Software Life Cycle and selecting the best

software process model to carry out the system work.

6.6. Summary of Project with conclusion

The Micro Credits Management System is done for the project

submission for BCS for Post Graduate Diploma (PGD) level. This is very

important for me to understand all the project management techniques. And

most valuable advantage is this helped me to put the lessons learnt at the class

into practical session. So I would like to thank BCS for conducting such an

advanced course with final project submission.

P a g e 115
S.W. Nishan Pradeep - 990585027

REFERENCES

AND

APPENDICES

P a g e 116
S.W. Nishan Pradeep - 990585027

References

1. Report Writing
To get understanding about the report writing standards used.
Academic Writing [https://www.cs.york.ac.uk/projects/howtowrt.html]
How to set formats including page setups
[http://digitalwriting101.net/content/how-to-format-papers-in-
standard-academic-format-using-microsoft-word/ ]
Refer to get better knowledge about the report writing
[https://en.wikipedia.org/wiki/]

2. Installations for development environment


intellij IDEA [https://www.jetbrains.com/idea/]
WebStorm [https://www.jetbrains.com/webstorm/]
PhpStorm [https://www.jetbrains.com/phpstorm/]
Jetty- Server [http://www.eclipse.org/jetty/download.html]
LAMP server for Linux
[https://www.digitalocean.com/community/tutorials/how-to-install-
linux-apache-mysql-php-lamp-stack-on-arch-linux]

3. Guidance for development


To resolve errors while developing code [http://stackoverflow.com/]
To get idea of data structures and algorithms [https://github.com/]
AngularJs [https://angularjs.org/]
For backend server side development [https://spring.io/] and
[http://hibernate.org/]
For front end client side development [http://getbootstrap.com/]
For further learnings [http://www.tutorialspoint.com/]
[hps://theexttplorationofmyworlds.wordpress.com/tag/rational-
unified-process/]
For HTML coding references [http://www.w3schools.com/]

P a g e 117
S.W. Nishan Pradeep - 990585027

4. Template
Used open source template for front end UI designing
[https://github.com/almasaeed2010/AdminLTE ]

5. Downloaded images from (for report)


[http://www.softwaretestingclass.com/]
[http://crackmba.com/]
[http://slideplayer.com/]
[http://www.tutorialspoint.com/]
[http://qacampus.blogspot.com/]
[http://www.guru99.com/i]
[http://everybitsconsult.com/]
[http://www.slideshare.net/]
[https://en.wikipedia.org/]
[http://www.igcseict.info/]
[http://www.proj-mgt.com/PMC_Spiral_Details.htm]

6. Downloaded code from


[https://github.com/ManningPublications/3oh1/blob/master/src/java/fm/ji
ecao/lib/Hashids.java]
[https://github.com/AKSW/feasible/blob/master/src/main/java/org/aksw/
simba/benchmark/encryption/EncryptUtils.java]

P a g e 118
S.W. Nishan Pradeep - 990585027

A. Appendix: Inception Documentation

1. Documents used in old system

Though ABS Credits Company used file based manual system, when

then they need a document first prepare on paper and get computer printout

after typing that created paper document. Following are some documents used

in the system.

Promissory Note

P a g e 119
S.W. Nishan Pradeep - 990585027

Branch summary

P a g e 120
S.W. Nishan Pradeep - 990585027

2. Use case Scenario

Abbreviations:

Branch Manager = BM

Cash Collector = CC

Loan Officer = LO

Credit Officer = CO

Audit Officer = AO

Use case scenario for Login to system


Use case Login to system
Actor Admin, BM, LO,CC, CO, AO
Description The users log in to the system do perform business activities.
Precondition 1. User should be eligible to log into the system.
2. User should have user account.
Main Success 1. Enter user name and password.
Scenario 2. Select branch (optional for admin).
3. Select Login.
Post condition User is logged into the system.
Exception 1. Entered incorrect information not allowed to log in to the
system.

P a g e 121
S.W. Nishan Pradeep - 990585027

Use case scenario for Add Customer


Use case Add Customer
Actor Admin,BM,LO
Description Add new Customer to the system
Precondition 1. User should be logged in to the system.
Main Success 1. Select the Branch.
Scenario 2. Select the Centre.
3. Input Basic and Contact information.
4. Select Save Customer.
Post condition Customer is added to the system and success message
Is displayed.
Exception 1. Required fields are not filled.
2. Existing NIC number is entered.

Use case scenario View customer List centre wise

Use case View Customer List centre wise


Actor Admin,BM
Description View customers registered in the company centre wise.
Precondition 1. Centres with customer added.
Main Success 1. Select branch.
Scenario 2. Select centre.
Post condition Displayed list of customers according to selected branch and
centre.
Exception -

P a g e 122
S.W. Nishan Pradeep - 990585027

Use case scenario for Update Customer


Use case Update Customer
Actor Admin,BM
Description Update existing customer details
Precondition 1. User should be logged in to the system.
2. Viewed customer list according to the Centre.
Main Success 1. Select the customer who wanted to update.
Scenario 2. Input Basic and Contact information.
3. Select update Customer.
Post condition Customer is updated and success message
Is displayed.
Exception 1. Required fields are not filled.
2. Existing NIC number is entered.

Use case scenario for Change Customer Centre


Use case Change Customer Centre
Actor Admin,BM
Description Change existing customers centre.
Precondition 1. User should be logged in to the system.
2. Viewed customer list according to the Centre.
3. The customer should already assigned to centre.
Main Success 1. Select the new Branch. (Optional only if customer branch
Scenario also changed.)
2. Select the Centre.
3. Select Assign new centre for customer.
Post condition Customer centre is changed and display the success message.
Exception 1. Branch or Centre is not selected.

P a g e 123
S.W. Nishan Pradeep - 990585027

Use case scenario for Add Package


Use case Add Package
Actor Admin
Description Change existing customer centre.
Precondition 1. User should be logged in to the system.
2. Selected the Add Package interface.
Main Success 1. Fill the required fields.
Scenario 2. Select Add Package.
Post condition New package is added to the database and display the
success message.
Exception Required fields are not filled.

Use case scenario for Add Loan


Use case Add Loan
Actor Admin,BM,LO
Description Loan is assigned to the particular customer
Precondition 1. User should be logged in to the system.
2. Selected the Add Loan interface.
Main Success 1. Select the package.
Scenario 2. Input the loan details.
3. Select Branch and Centre.
4. Select Customer.
5. Select Add Loan.
Post condition The loan is assigned to the particular customer and success
message is displayed.
Exception 1. Required fields are not filled.

P a g e 124
S.W. Nishan Pradeep - 990585027

Use case scenario for Get Ledger Report


Use case Get Ledger Report
Actor Admin,BM,LO,AO
Description Get ledger report according to the particular customer loan.
Precondition 1. User should be logged in to the system.
2. Customer should have unsettle loan.
Main Success 1. Viewed customers according to the centre.
Scenario 2. Selected the Customer.
3. Selected the Customer Loan.
4. View Ledger report.
5. Select Print Ledger Report.
Post condition Report is downloaded to the local computer.
Exception -

Use case scenario for Add User Permission


Use case Add User Permission
Actor Admin
Description Assign permission to the particular user.
Precondition 1. User should be logged in to the system.
Main Success 1. Select the user to assign permission(s).
Scenario 2. Select permission types from combo box.
3. Select Add
Post condition New permissions will be granted to the user and successful
message will be shown.
Exception -

P a g e 125
S.W. Nishan Pradeep - 990585027

Use case scenario for Add loan payment (centre wise)


Use case Add loan payment (centre wise)
Actor Admin, BM, LO, CC
Description Customer payment loan installment.
Precondition Should be logged in user to the system
Main Success 1. Select branch.
Scenario 2. Select centre.
3. Select date.
4. Show due list for the day.
5. Select customer(s)
6. Enter payment details.
7. Select Add Payment
Post condition Payment details added to the system successfully and
message will be pop up informing it.
Exception Required fields are not filled.

P a g e 126
S.W. Nishan Pradeep - 990585027

B. Appendix: Elaboration Documentation

1. Class Diagram

(Following Diagrams can see more clearly when they zoom)

Class Diagram for Cash Module

P a g e 127
S.W. Nishan Pradeep - 990585027

Class Diagram for Location Module

P a g e 128
S.W. Nishan Pradeep - 990585027

Class Diagram for User Module

P a g e 129
S.W. Nishan Pradeep - 990585027

2. Activity Diagram

Abbreviations:

Branch Manager = BM

Cash Collector = CC

Loan Officer = LO

Credit Officer = CO

Audit Officer = AO

P a g e 130
S.W. Nishan Pradeep - 990585027

Activity Diagram for Add Branch

P a g e 131
S.W. Nishan Pradeep - 990585027

Activity Diagram for Add Centre

P a g e 132
S.W. Nishan Pradeep - 990585027

Activity Diagram for Add Customer

P a g e 133
S.W. Nishan Pradeep - 990585027

Activity Diagram for Add Group

P a g e 134
S.W. Nishan Pradeep - 990585027

Activity Diagram for Add Loan

P a g e 135
S.W. Nishan Pradeep - 990585027

Activity Diagram for Package

P a g e 136
S.W. Nishan Pradeep - 990585027

Activity Diagram for Assign Group

P a g e 137
S.W. Nishan Pradeep - 990585027

Activity Diagram for Bulk Payment

P a g e 138
S.W. Nishan Pradeep - 990585027

Activity Diagram for Change Centre

P a g e 139
S.W. Nishan Pradeep - 990585027

Activity Diagram for Extra Pay

P a g e 140
S.W. Nishan Pradeep - 990585027

Activity Diagram for Remove Customer

P a g e 141
S.W. Nishan Pradeep - 990585027

Activity Diagram for Remove Group

P a g e 142
S.W. Nishan Pradeep - 990585027

Activity Diagram for Remove Loan

P a g e 143
S.W. Nishan Pradeep - 990585027

Activity Diagram for Update Branch

P a g e 144
S.W. Nishan Pradeep - 990585027

Activity Diagram for Update Centre

P a g e 145
S.W. Nishan Pradeep - 990585027

Activity Diagram for Update Package

P a g e 146
S.W. Nishan Pradeep - 990585027

Activity Diagram for Update Customer

P a g e 147
S.W. Nishan Pradeep - 990585027

Activity Diagram for View Customer

P a g e 148
S.W. Nishan Pradeep - 990585027

Activity Diagram for View Loan

P a g e 149
S.W. Nishan Pradeep - 990585027

3. Sequence Diagram

Sequence Diagram for Add Customer

P a g e 150
S.W. Nishan Pradeep - 990585027

Sequence Diagram for Add Loan

P a g e 151
S.W. Nishan Pradeep - 990585027

Sequence Diagram for Add Payment

P a g e 152
S.W. Nishan Pradeep - 990585027

Sequence Diagram for Change Centre

P a g e 153
S.W. Nishan Pradeep - 990585027

4. Database tables

P a g e 154
S.W. Nishan Pradeep - 990585027

Database table for Action

Database table for Admin

P a g e 155
S.W. Nishan Pradeep - 990585027

Database table for Branch

Database table for Branch Permission

Database table for Business Type

P a g e 156
S.W. Nishan Pradeep - 990585027

Database table for Centre

Database table for Customer

P a g e 157
S.W. Nishan Pradeep - 990585027

Database table for Customer Group

Database table for Expense Type

Database table for Group

Database table for Group Count

P a g e 158
S.W. Nishan Pradeep - 990585027

Database table for Group Has Member

Database table for Guarantee

P a g e 159
S.W. Nishan Pradeep - 990585027

Database table for Loan

P a g e 160
S.W. Nishan Pradeep - 990585027

Database table for Loan Has Guarantee

Database table for Payment Has Method

P a g e 161
S.W. Nishan Pradeep - 990585027

Database table for Package

Database table for Permission

P a g e 162
S.W. Nishan Pradeep - 990585027

Database table for Petty Cash

Database table for Repayment

Database table for Sub Payment

P a g e 163
S.W. Nishan Pradeep - 990585027

Database table for Type

P a g e 164
S.W. Nishan Pradeep - 990585027

5. User Interfaces

Customer Manage

Add new customer

This form allows user to add new customers to the system by filling basic

and contact information. The user must fill the required fields before saving the

new customer. Required fields are indicated with the red asterisk mark (*). If

the user does not fill the most required fields, the system indicates an error by

changing background colour of the required fields which is not filled. If the user

entered a NIC which is already in the database, the system pop up the alert. If

the user filled all the details correctly the system display the success message

on the top of the left.

P a g e 165
S.W. Nishan Pradeep - 990585027

View customer List centre wise

In this view displayed all the customers in the selected branch and

centre. User can edit or remove the customer clicking the "edit" or "remove"

buttons in the "More column. The remove button is only visible for the

customers who doesnt have loan by now. Also can review loan information by

clicking customer code at the "Customer code" column.

P a g e 166
S.W. Nishan Pradeep - 990585027

Delete customer

Only the customers who do not have existing loans can be deleted. The

customers who are eligible for this feature is shown with the white coloured

cross in front of the edit button. The System automatically select which

customers can be deleted and system user does not need to worry about

finding those information manually. When the system user requested to delete

the customer by clicking the delete button, the confirmation message is

displayed to select whether user actually wants to remove the customer from

the system. If user wants to delete the customer can click "Yes" button,

otherwise "No" button.

P a g e 167
S.W. Nishan Pradeep - 990585027

Update customer

User can update the customer details through this dialog view. User

cannot change customer Id and customer code as they are auto generated by

the system for each customer at the time of customer adding to the system.

The form is loaded with the current customer details (not display in the

screenshot) and user can edit required details. As in add customer form fields

with asterisk marks should be filled in order to do updating.

P a g e 168
S.W. Nishan Pradeep - 990585027

View customer group

In this user interface, users can view the current customer groups in the

selected branch and selected centre. User can select the branch and centre in

the top of the screen and customer list and group list will be loaded for the

relevant branch and centre.

Create customer group

User can create the new customer group under the selected centre. The

"new group create" interface is located between customer list and

branch/centre selection view in the below picture.

Add customer to group

User can add customer to the particular group through the customer list.

Maximum 3 members can be included in a particular group and it is handled by

the system. If customer not included in a group the "selection" combo display

at the "group" column and enable the "Add" button at the "Add" column in the

customer list. User can simply select the group name from the "selection"

combo and click "Add" button to add customer to the group. The groups which

have less than 3 members will loaded to the selection combo.

Remove customer from group

To remove customer from a particular group this user interface can be

used. This interface comes as the part of the Customer Management user

interface. The Red Cross button displayed at in front of each customer can be

used to remove the customer from the group.

P a g e 170
S.W. Nishan Pradeep - 990585027

User Interface for Add group, Assign customer to a group and Remove customer

from the group

P a g e 171
S.W. Nishan Pradeep - 990585027

Change customer centre

Every customer assign to the particular centre and customer code is

auto generated with the usage of branch and centre codes. User can change

the current customer centre to another centre to by clicking Assign new centre

for customer button. The system automatically generates the new customer

code for the changing customer.

Eg: Alu/2/3 - branch code is Alu, centre code is 2 and customer ID is 3.

P a g e 172
S.W. Nishan Pradeep - 990585027

Location Manage

Add new branch

New branch can be added to the system through this interface. This

feature can be accessed admin user or another user who had been granted by

the admin. Town and Branch fields are mandatory and the description field is

optional. If the user added the new branch, branch list will be automatically

updated without refreshing the web browser.

P a g e 173
S.W. Nishan Pradeep - 990585027

Update branch

Branch details can be updated through this interface. The branch name,

town and description can be updated by the user and branch code cannot be

changed.

View centre list

User can view a list of the centres related to with the selected branch. In

the below user interface right side (2) display the centre list of the selected

branch.

Add centre to specific branch

Can added new centre to the particular branch. User can select the

branch and enter a centre name. The centre code is auto generated by the

P a g e 174
S.W. Nishan Pradeep - 990585027

system. The Add new centre interface is displayed left side of the below picture

(1).

Update centre

User can update the centre name using following user interface But

centre code cannot updated by the user.

P a g e 175
S.W. Nishan Pradeep - 990585027

Loan Package Management

View package list

In this interface list down the all loan packages. The package list is

displayed right side (2) of the following picture.

Add new package

A new package can be added to the system using following interface

(1) after filling required fields.

P a g e 176
S.W. Nishan Pradeep - 990585027

Update package name

The package name can be updated using this interface.

Customer Loan Management

Add loan to the customer

The user can add a new loan to the customer through this interface. All the

fields are required, but the loan can be saved without guarantees. If the customer

is already assigned to a group, the group members (other two members) are auto-

assigned as guarantees to the customer. The user can save the loan without

guarantees or can add guarantees manually. When the user selects the loan

package and enters the amount, the system will automatically generate the loan

summary details such as total payment, rental and profit.

Also, if the user saves the loan without filling the required fields, the system will

change the background colour of the required fields to notify the error to user.

P a g e 177
S.W. Nishan Pradeep - 990585027

View customer loan

This interface displays the customer loan details. First user has to select

branch and the centre. Then all the loans with the customer list down on the left

side (1) of the interface and user can select loan from that view. When the user

selected the specific loan, the right side (2) of the interface is displayed loan

details with the payments.

Make bulk payment to the loan

The user can make bulk payment to the loan via this interface. When the

user clicked the "Bulk Payment" button in the loan interface, the bulk payment

interface will display in the bottom of the screen (3). The user has to select payment

date and amount before saving the bulk payment. If the user has

entered incorrect details (payment date not selected, an amount is not entered
P a g e 178
S.W. Nishan Pradeep - 990585027

and payment amount less than the due amount) the system indicated the

error messages for that incorrect inputs.

P a g e 179
S.W. Nishan Pradeep - 990585027

Remove loan

The existing customer loan can be deleted while clicking the Remove loan

button in the loan detail window. When the user attempted to delete the loan the

system notified the confirmation message to get verification from the user. If the

user actually wants to delete the customer loan can click Remove button, else

the Close button. Normally this feature eligible for Admin user and

Branch managers but, another user can remove the loan if admin is granted

the power to do so.

P a g e 180
S.W. Nishan Pradeep - 990585027

Add extra payment to loan

Extra payment can be added to the particular loan payment by clicking

the Extra payment button at the top of the loan detail window. The system

automatically list down the due dates for the payments into the Due date

combo box and the system user can select the due date, payment date and

enter the amount for the extra payment.

P a g e 181
S.W. Nishan Pradeep - 990585027

View approve loans

Approved loan for particular customer can be viewed using following

interface. First user want select branch and the centre before viewing the

approved loans. The approved loans related to selected centre is loaded and

by using Review button the user can get more details about the particular loan

and by using Remove button the user can remove the loan details.

P a g e 182
S.W. Nishan Pradeep - 990585027

Approve loan or review loan

Following interface is used to approve or remove loan after

reviewing loan details.

P a g e 183
S.W. Nishan Pradeep - 990585027

Remove loan

When user is going to remove the loan following confirmation message

is displayed. If user select Yes option the loan will be removed from the

system and if selected No again return to the Remove loan user interface.

P a g e 184
S.W. Nishan Pradeep - 990585027

Make quick payment to loan

This user interface can be used to do quick payments to the particular

customer. Customer can be searched using customer NIC or customer code.

After search details are listed in the user interface as below and can do

payment for loan.

P a g e 185
S.W. Nishan Pradeep - 990585027

Loan payment Management

Add loan payment (centre wise)

After selecting branch, centre and the date due payment are loaded.

To do payment for one customer enter amount in the field in front of the customer

and select Save button. If the payment has to done for more than one customer

enter amount in the field in front of all the customers and select

Save All button at the bottom of the user interface.

P a g e 186
S.W. Nishan Pradeep - 990585027

Payment history

This user interface can be used to get payment history for particular

branch and centre in selected date.

P a g e 187
S.W. Nishan Pradeep - 990585027

Update payment

This user interface is used to update payment already done.

Remove payment

As in all other remove user interfaces the remove selected payment

interface is asked for confirmation before removing the payment. This is shown

in following screenshot.

P a g e 188
S.W. Nishan Pradeep - 990585027

Cash (Expenses) Management

Add petty cash

This user interface can be used to add petty cash in the company. In

here the current logged user is recorded for security reason. (The user who has

add petty cash will be identified by the system automatically.)

P a g e 189
S.W. Nishan Pradeep - 990585027

View Income and expenses

By selecting type (income or expense), month and branch user can get

details of the income or expense for particular month. Following screenshot

display income and expense user interface.

P a g e 190
S.W. Nishan Pradeep - 990585027

Settings

View basic setting

Add profession type /Remove profession type

Following user interface allows user to add and remove profession type to the

system.

View user setting

Add new user/ View user permission/ Add permission to user/ Remove

permission from user

Basic settings for particular user is done here. Admin can used (1) to add new

user after giving NIC, name and the password for the user. The (2) is used to view

all the users in the system by now and can update or view permissions granted to

user by clicking buttons displayed in front of the user. When click permission button

the features that admin granted to selected user is displayed

P a g e 191
S.W. Nishan Pradeep - 990585027

here (3). By using this interface Admin can add permissions to the user and

can remove permissions from the user. These features are granted only to the

Admin.

P a g e 192
S.W. Nishan Pradeep - 990585027

Update user

This user interface can be used to update a particular user in the

company. Can access only by the Admin.

View branch settings

Add branch permission/ Remove branch permission

This interface can used to add or remove branch permission to users.

This feature is only accessible by Admin and by using this offer accessible to

all branch related details to branch manager.

P a g e 193
S.W. Nishan Pradeep - 990585027

Reset password

Password can be reset using this interface.

P a g e 194
S.W. Nishan Pradeep - 990585027

View user log

Can access by only the admin. Any user activity done with the system is

stored and shown by this view. This interface high up the security purposes of

the system.

P a g e 195
S.W. Nishan Pradeep - 990585027

View cash setting

Add expense type/ Remove expense type

This interface is used to add or remove expense type.

P a g e 196
S.W. Nishan Pradeep - 990585027

Report

All the reports mentioned below are can be downloaded and print as .pdf

(portable document file) or .csv (comma separated value) file.

Ledger report

This is used to get details of each customer for each loan separately.

P a g e 197
S.W. Nishan Pradeep - 990585027

S.W. Nishan Pradeep - 990585027

Income and expense report

This report shows the income or expense of the company related to

selected date.

P a g e 199
S.W. Nishan Pradeep - 990585027

Centre summary report

This report shows the summary of total loan count, loan amount,

collection, underpayment and net paid amount for selected time range.

Branch summary report

This report is used to get branch summary details for selected time

period.

P a g e 200
S.W. Nishan Pradeep - 990585027

P a g e 201
S.W. Nishan Pradeep - 990585027

Under payment report

This report is used to get total underpayment details of particular centre

for selected time period.

P a g e 202
S.W. Nishan Pradeep - 990585027

P a g e 203
S.W. Nishan Pradeep - 990585027

Pending amount report

This report is get pending amount to be paid for particular loan

package for selected time period.

P a g e 204
S.W. Nishan Pradeep - 990585027

Active loans report

This report is used to get active loans in selected centre.

P a g e 205
S.W. Nishan Pradeep - 990585027

Collection summary report

This report is used to get collection summary of particular centre for

selected package with certain time period.

P a g e 206
S.W. Nishan Pradeep - 990585027

P a g e 207
S.W. Nishan Pradeep - 990585027

C. Appendix: Construction Documentation

1. Usage of HTML

<label class="col-sm-1 control-label"><b>Branch</b><span

style="color: red>*</span></label>

<div class="col-sm-3">

<select class="form-control" ng-model="payment.branch"

ng-change="branchClick()" id="branch">

<option value="">Select Branch</option>

<option ng-repeat="data in allBranch" value="{{data.branchid}}">

{{data.name}} - {{data.town}}

</option>

</select>

</div>

<label class="col-sm-1 control-label"><b>Center</b><span

style="color: red">*</span></label>

2. Usage of PHP

session_start();

$id = $_GET['id'];

$branch = $_GET['branch'];

$username = $_GET['username'];

$nic = $_GET['nic'];

P a g e 208
S.W. Nishan Pradeep - 990585027

if (isset($id)) {

$_SESSION["LOGGED_USER"] = $id;

$_SESSION["BRANCH"] = $branch;

$_SESSION["USERNAME"] = $username;

$_SESSION["NIC"] = $nic;

header('Location: ./home.php');

} else {

header('Location: ./index.php');

3. Usage of bootstrap

<div class="panel-body">

<div class="tab-content">

<div class="tab-pane active" id="horizontal-form">

<div class="col-lg-5">

<form class="form-horizontal">

<div class="form-group">

<label class="col-sm-2 control-label"

style="text-align: left;"><b>Name</b><span

style="color: red">*</span></label>

<div class="col-sm-8">

P a g e 209
S.W. Nishan Pradeep - 990585027

<input data-toggle="tooltip" title="Name of the package"

type="text"

class="form-control" ng-model="package.name" id="name"

placeholder="Enter Package Name">

</div>

4. Usage of AngularJS

function AddBranch($scope, branchService, $route) {

document.getElementById("addBranchBtn").disabled = false;

$scope.branch = {name: "", code: "", desc: "", town:

""}; $scope.errors = [];

$scope.allBranch = [];

$scope.brachId = "";

$scope.name = "";

$scope.town = "";

$scope.code = "";

$scope.desc = "";

$scope.saveNewBranch = function () {

P a g e 210
S.W. Nishan Pradeep - 990585027

document.getElementById("addBranchBtn").disabled =

true; if ($scope.branch.name == '') {

$scope.errors.push("Error");

document.getElementById("name").style.backgroundColor =

"#FFB2B2";

} else {

document.getElementById("name").style.backgroundColor =

"white";

if ($scope.branch.town == '') { $scope.errors.push("Error");

document.getElementById("town").style.backgroundColor

= "#FFB2B2";

} else {

document.getElementById("town").style.backgroundColor =

"white";

if ($scope.errors.length > 0)

{ $scope.errors = [];

return;

P a g e 211
S.W. Nishan Pradeep - 990585027

var branch = {

branchid: null,

name: $scope.branch.name,

desciption: $scope.branch.desc,

town: $scope.branch.town

};

branchService.addBranch(branch).then(function (data) {

$scope.isAdded = data; if

($scope.isAdded != '') {

$route.reload();

$.notify("Successfully Added", "success");

$route.reload();

} else {

$.notify("Not Added...");

});

};

5. Usage of JQuery

jQuery('#date').datetimepicker({

lang: 'en',

i18n: {

P a g e 212
S.W. Nishan Pradeep - 990585027

en: {

months: [

'January', 'February', 'March', 'April',

'May', 'June', 'July', 'August',

'September', 'October', 'November', 'December'

],

dayOfWeek: [

"Su.", "Mo", "Tu",

"We", "Th", "Fr", "Sa."

},

timepicker: true, format:

'Y-m-d g:i A',

closeOnDateSelect: true

});

6. Usage of Java

public String save(Package packager) {

String id = new Date().getTime()+"";

Hashids hashids = new Hashids(id);

String hexaid = hashids.encodeHex(String.format("%040x",

new BigInteger(1, id.getBytes())));

P a g e 213
S.W. Nishan Pradeep - 990585027

String newid = hexaid + "" + randomString(10);

packager.setPackageid(newid);

String s = packagerDAOController.create(packager);

return s;

public List<Package> getAllPackageByPagination(Integer limit,

Integer offset) {

return

packagerDAOController.getAllPackageByPagination(limit, offset);

public String update(Package packager) {

return packagerDAOController.update(packager);

public Integer removeGuaranteeById(String packagerId) {

return

packagerDAOController.removeGuaranteeById(packagerId) ;

public String getId(String centerId) {

P a g e 214
S.W. Nishan Pradeep - 990585027

Long count = packagerDAOController.getAllCount();

String cusCode = centerId

+"/"+count; return cusCode;

7. Usage of Spring

@Controller

@RequestMapping("openmicro/v1/businessType")

public class BusinessTypeController {

@Autowired

private BusinessTypeDAOService businessTypeDAOService;

8. Usage of hibernate

@Entity
@Table(name = "businesstype")
@JsonIgnoreProperties
public class BusinessType implements EntityInterface<String> {

private String businessTypeid;


private String businessTypeName;

@Id
@Column(name = "businessTypeid")
public String getBusinessTypeid() {
return businessTypeid;
}

P a g e 215
S.W. Nishan Pradeep - 990585027

9. Test Cases

Test Case
Number 1
Test Case
Type Security test

Test Case
Name Login

Description Check authentication before entering into the system.

Expected
Output Success Fail

Automatically login to the system Error message displayed.


dashboard Access denied.

Login error
Display
error message to an incorrect username, password or
unauthorized branch selection .

P a g e 216
S.W. Nishan Pradeep - 990585027

Test Case
Number 2
Test Case
Type Unit test
Test Case
Name Add new customer

Description Check customer existent using NIC before customer save to


the system. Validate the input fields and buttons and auto
generated some fields.

Expected
Output Success Fail

Save customer in the database and Display the error


display the success message. message.

Form validation
If the branch is not selected the center selection box is disabled.

If the customer NIC is existed alert message will be popped up.

Validate the telephone number to the (000) 000-0000 format. Letters


are not allowed in this field.

P a g e 217
S.W. Nishan Pradeep - 990585027

When press the save button without filling required details, the field
background color is changed.

Auto generated field


Customer code is Auto generated by the system.

P a g e 218
S.W. Nishan Pradeep - 990585027

Confirmation
If customer is successfully saved into the system, the confirmation
message will be displayed, else error message will be displayed.

Test Case
Number 3
Test Case
Type Unit test, Black-box test

Test Case
Name Add loan

Description When Add new loan to the customer the Loan summary is auto
generated and validate the data input fields.This test will check
for form validation and correctness of the auto generated
values.

Expected
Output Success Fail

Loan is saved to the particular customer and Error message


confirmation message will be displayed. displayed.

Auto generated fields


When the loan is saved to the particular customer rental, total pay and
profile automatically generated according to the loan amount by the
system. The black-box testing will check the auto generated values
are correct with the given loan amount.

P a g e 219
S.W. Nishan Pradeep - 990585027

Confirmations
If the loan is successfully saved the confirmation message will be
displayed.

The loan can be save with guarantee or without guarantee. If the loan
is saved without guarantee confirmation message will be displayed and
button will be change to the Add loan without guarantee.

P a g e 220
S.W. Nishan Pradeep - 990585027

Confirmation dialog for add loan without guarantee

Form validation
Add loan with guarantee

P a g e 221
S.W. Nishan Pradeep - 990585027

Add loan without guarantee

If the customer already engaged with a loan, system indicate the


message Pending loan available and disable the Add loan button.

P a g e 222
S.W. Nishan Pradeep - 990585027

Test Case
Number 4
Test Case
Type Unit test
Test Case
Name Add customer to group

Description Customer can engage with the group. This test will check the
system UI for customer engaged with the group or not.

Expected
Output Success Fail

Customer is saved to the group and Group will not be


group name will be displayed in displayed and add button
group column. will not be disabled.

Validation
If customer already engaged with the loan Add button is disabled and
group name is displayed in the group column otherwise Add button is
enable and selection box is appeared in the group column.

P a g e 223
S.W. Nishan Pradeep - 990585027

Test Case
Number 5
Test Case
Type Security test
Test Case
Name User permission

Description The user can access features of the system which is granted by
the admin. This test will check the user accessibility for the
granted features.

Expected
Output Success Fail

Display UI to the user. Error message is displayed.

Form validations
User access the feature which is granted.

P a g e 224
S.W. Nishan Pradeep - 990585027

User access the feature which is not granted.

P a g e 225
S.W. Nishan Pradeep - 990585027

Test Case
Number 6
Test Case
Type Unit test
Test Case
Name Add new package

Description When user adds new package to the system, user has to fill
some required fields. This test will check how the responsed by
the system the user is pressing the save package button
without filling the required fields.

Expected
Output Success Fail

Save new package to the database and Change field


confirmation message is displayed. background color to
red.

Validation
When user add new package to the system, user has to fill package
name, rate and period. If user will not able to fill the required fields
system denied the user request.

P a g e 226
S.W. Nishan Pradeep - 990585027

Test Case
Number 7
Test Case
Type Unit testing
Test Case
Name Bulk payment (include in the view all loans)

Description When user enter payment for the customer loan system will
check the previous payment details, payment date and the
amount. This test check the system can be able to check these
details correctly.

Expected
Output Success Fail

The payment is saved for the customer System display the


loan and displayed the confirmation error message.
message.

Confirmations
If the loan payments were completed confirmation message is
displayed in the screen.

P a g e 227
S.W. Nishan Pradeep - 990585027

When user save entered the correct payment details, the system save
the payment and display the confirmation message.

Form validations
When user clicked the save button without selecting the date for the
payment, the system display the error message.

P a g e 228
S.W. Nishan Pradeep - 990585027

When user clicked the save button without enter the payment
amount, the system display the error message.

If user entered the payment amount but it less than the due amount
and clicked the save button, the system display the error message.

P a g e 229
S.W. Nishan Pradeep - 990585027

Test Case
Number 7
Test Case
Type Gray-box test
Test Case
Name Payment update

Description In this activity user can select the branch, center and date for
the update payments. If the data is not available in the
database for the search details the system display the No
data confirmation message. This test checked the search
details with the actual database.

Expected
Output Success Fail

Data is loaded to the No data confirmation message is


screen. displayed.

Validation
If data is empty accordance to the search details, the system display
the No data confirmation message.

P a g e 230
S.W. Nishan Pradeep - 990585027

Test Case
Number 8
Test Case
Type Unit test
Test Case
Name Add new user

Description Admin user or any other user (granted by the admin) can
access this feature for add a new user to the system. This test
checked system response for user clicking the Add new user
button without filling the required fields.

Expected
Output Success Fail

Add new user to the database and Required fields background


confirmation message is displayed. color is changed to the red.

Form validation
If the required fields are not filled by the user, the system change the
backgroud color of the fields.

P a g e 231
S.W. Nishan Pradeep - 990585027

Confirmation
If user fill the data and press Add new user button, user is saved and
confirmation message displayed.

P a g e 232
S.W. Nishan Pradeep - 990585027

Test Case
Number 9
Test Case
Type Unit test
Test Case
Name Logout

Description The user confirmation for log outing from the system.
Expected
Output Success Fail

Redirect to the login page. Stay on current page.

Confirmation

P a g e 233
S.W. Nishan Pradeep - 990585027

Test Case
Number 10
Test Case
Type Unit test
Test Case
Name Add repayment

Description When user adding the repayment without filing required fields,
the system notify it to the user.

Expected
Output Success Fail

Redirect to the login page. Stay on current page.

Form validation

P a g e 234
S.W. Nishan Pradeep - 990585027

D. Appendix: Transition Documentation

1. Deployment Strategies

Direct Deployment

Overlap the current system by new system and turned off

the current system fully in this deployment strategy. Because of this reason

sometimes direct deployment is known as immediate cutover.

Advantages:

Simple mechanism

Less resources are required to manage the system.

Disadvantages:

This is very high risk task (As there is no old system running parallel

if the new system crashes for some time it will be great loss for the

company.)

System should be more trust worth.

P a g e 235
S.W. Nishan Pradeep - 990585027

Parallel Deployment

Both the old and new system runs for extended period of time. Until the

new system is thoroughly tested and ensure that the system is free of errors,

the old system is operated.

Advantages:

Low risk as any failure occur in new system doesnt affect the

business case as old system is still running

Disadvantages:

Very high cost as the company has to pay for maintaining both new

and the old systems.

P a g e 236
S.W. Nishan Pradeep - 990585027

Phased Deployment

New system is introduced to some phases and other phases are running

still with old system. When time pass gradually all the phases will be replaced

by new system after finishing testing in every phase.

Advantages:

Users are get used to the system gradually and doesnt need to put

much effort in user training.

Old system is not completely take off as in direct deployment

Disadvantages:

The data may be lost if there is a system crash in the deployed

phase. Time spending is high to deploy the whole system

P a g e 237
S.W. Nishan Pradeep - 990585027

Pilot Deployment

The new system is introduced to some part of the organization. When

the system is tested well in that part gradually system will be spread over the

other parts.

Advantages:

Users are get used to the system gradually and doesnt need to put

much effort in user training.

Old system is not completely take off as in direct deployment

As full system is deployed for one section, get chance tested all the

features of the system as whole.

Disadvantages:

At the first both old and new systems should have to run

parallel. Time spending is high

P a g e 238

Anda mungkin juga menyukai