Documente Academic
Documente Profesional
Documente Cultură
Management
System for ABS
Credits
[Project Name Here]
Abstract
traditional file-based system. When the customer base of the company increase
with the time passed company faces problem with handling massive amounts
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
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
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,
ii
S.W. Nishan Pradeep - 990585027
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.
maintain system security as this system details mostly deals with money.
side and server side developed as two projects separately to maintain client server
architecture. For client side (front end) development HTML, CSS, PHP,
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
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
iii
S.W. Nishan Pradeep - 990585027
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
I would like to express my special thanks to ABS Credits Company for their
system. And I also thank to Ms. Himashi Rodrigo for help me in the
I would like to thank BCS for giving this valuable opportunity to implement a
Finally, my thanks and appreciation goes to all the open source developers for
v
S.W. Nishan Pradeep - 990585027
Table of Content
Abstract .......................................................................................................... ii
Acknowledgement ......................................................................................... v
Table of Content ........................................................................................... vi
vi
S.W. Nishan Pradeep - 990585027
vii
S.W. Nishan Pradeep - 990585027
viii
S.W. Nishan Pradeep - 990585027
ix
S.W. Nishan Pradeep - 990585027
x
CHAPTER 1
INTRODUCTION
S.W. Nishan Pradeep - 990585027
1. Introduction
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
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
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
Page2
S.W. Nishan Pradeep - 990585027
documents and reports (manual done) there are several problems they are
facing.
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
finding a better work flow and simplified easier solution. After considering
Page3
S.W. Nishan Pradeep - 990585027
Page4
S.W. Nishan Pradeep - 990585027
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
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
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
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
Unified process follow both the following concepts in the aim of having a
Iterative
Incremental
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
Implementation
Testing
Deployment
Project Management
Environment
Page7
S.W. Nishan Pradeep - 990585027
Provide an efficient and flexible micro credit system for the ABS micro
credits company. Through the system ABS micro credits company will be able
Credits Company.
Page8
S.W. Nishan Pradeep - 990585027
finance field is the primary business benefit to be obtained from the new
situations.
Maximize daily, weekly and monthly collection of payments with due payment
lists.
In order to attain the business benefits listed above, the micro credits
centre.
made by a user.
Maintain payments for loans history and keep track on all the details
Page9
S.W. Nishan Pradeep - 990585027
officer, credit officer and cash collector under different restrictions. And
Provide up to date, real time data associated with loan transactions and
by admin, branch manager, loan officer, credit officer, audit officer and cash
collector.
The Micro Credits Management System for ABS Credits Company can
the service can't be provided) and a user friendly interfaces with easy
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
(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.
without crashing.
System is capable of giving Admin access to any user if the admin needs
to do so.
officer, credit officer and cash collector) to access the details and modify
Daily, monthly and yearly ledger reports, cash collection reports and
other required reports should be auto generated and should have ability
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
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
Developing approximate vision of the system, define the project scope , make
the business case and provide rough estimate of time scheduling are some
From here onward in this part explain how feasibility study and requirement
requirements.
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
P a g e 14
S.W. Nishan Pradeep - 990585027
culture in order to have a success system. Some of the potential risks identified in
1. Some staff members like credit officers and cash collectors are fear of
competency.
Solution: Keep interaction with system users continuously and show system
capabilities
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
expertise to complete the project. Following are some issues identified when
starting project.
Solution: Practised handling of web based projects with mini projects before
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
And shrink time allocated for other works in order to complete project within the
P a g e 16
S.W. Nishan Pradeep - 990585027
complete all amount and scope of work lying ahead, utilizing the given amount
the project.
users in order to get a vivid picture of the business process going on. As micro
Interview people
ideas about the current file based system, identified problems, suggestions and
what really they need from the web based system. But some employees didnt
P a g e 17
S.W. Nishan Pradeep - 990585027
they work with customers, what are the difficulties they face when finding
information for particular customer and what are the documents and reports
-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
method is very useful in gathering information from all the employers in the
straight forward effective answers could gather which helps lot in analysing the
software.
P a g e 18
S.W. Nishan Pradeep - 990585027
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
finance company.
implementation, went through some similar software to get an idea about the
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
ABS Credits Company designed in a way such that client requirements satisfied
in master manner.
P a g e 19
S.W. Nishan Pradeep - 990585027
The banker
online with different features. But most of them are not necessary for the
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
In system requirements all the capabilities that new system must have
should be described. More over all the constraints that new system must meet
P a g e 21
S.W. Nishan Pradeep - 990585027
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
new customer
Update customer
Delete customer
Location Manage
Update branch
Update centre
P a g e 22
S.W. Nishan Pradeep - 990585027
Remove loan
Approve loan
Review loan
Remove loan
Payment history
Update payment
Remove payment
P a g e 23
S.W. Nishan Pradeep - 990585027
Settings
Reset password
P a g e 24
S.W. Nishan Pradeep - 990585027
Report
Ledger report
support other than its activities (use cases). These are optional characteristics
but help lot in providing successful, effective and user friendly system to the
system performs.
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
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
server. In other hand system should have ability to extend with new features in
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
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
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
P a g e 26
S.W. Nishan Pradeep - 990585027
Encryption of all data transmitted over the Internet and control of all
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
P a g e 28
S.W. Nishan Pradeep - 990585027
P a g e 29
S.W. Nishan Pradeep - 990585027
P a g e 30
S.W. Nishan Pradeep - 990585027
P a g e 31
S.W. Nishan Pradeep - 990585027
P a g e 32
S.W. Nishan Pradeep - 990585027
P a g e 33
S.W. Nishan Pradeep - 990585027
branches and centres use cases of systems users will be changed. But for
Abbreviations:
Branch Manager = BM
Cash Collector = CC
Loan Officer = LO
Credit Officer = CO
Audit Officer = AO
P a g e 34
S.W. Nishan Pradeep - 990585027
centre wise
P a g e 35
S.W. Nishan Pradeep - 990585027
group needs
to get loan
centre successfully
branch is added
change successfully
requirement
P a g e 36
S.W. Nishan Pradeep - 990585027
change successfully
successfully
Admin/ BM/LO New loan for Admin, Add loan to Confirmation, loan Admin, BM,
P a g e 37
S.W. Nishan Pradeep - 990585027
P a g e 38
S.W. Nishan Pradeep - 990585027
options to loan
P a g e 39
S.W. Nishan Pradeep - 990585027
system
requirement
P a g e 40
S.W. Nishan Pradeep - 990585027
setting
details
successfully
permission viewing
requirement
settings settings
requirement
P a g e 41
S.W. Nishan Pradeep - 990585027
permission is added
successfully
is in the successfully
system
CC,
CO,
AO
checking
user log
P a g e 42
S.W. Nishan Pradeep - 990585027
report details
P a g e 43
S.W. Nishan Pradeep - 990585027
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
report report
P a g e 45
S.W. Nishan Pradeep - 990585027
2.7. Summary
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
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
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
and its vast number of centres understood that standalone application is not
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
P a g e 48
S.W. Nishan Pradeep - 990585027
create Micro Credits Management System. So data layer, application layer and
P a g e 49
S.W. Nishan Pradeep - 990585027
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
The reason for using different software process models are to complete the
software easy and most reliable way. Though there are number of models,
towards latest models over the old models due to reliability and attract more
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
P a g e 50
S.W. Nishan Pradeep - 990585027
Advantages:
Even before the implementation begins developer has a clear idea about
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
implementation.
P a g e 51
S.W. Nishan Pradeep - 990585027
3.4.2. Prototyping
benchmarks of entire system with high system user involvement and with more
user satisfaction.
This is the most understood software that can be used very easily. Can
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
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
earlier.
Disadvantages:
again.
P a g e 53
S.W. Nishan Pradeep - 990585027
Advantages:
Developers can focus more on parts that they understood well rather than
User does not needed to waiting for the long time to have a system which
Disadvantages:
P a g e 54
S.W. Nishan Pradeep - 990585027
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
Advantages:
As main business process divide into sub modules testing and debugging is
P a g e 55
S.W. Nishan Pradeep - 990585027
Easier to manage risks because risky modules are identified earlier and can
Disadvantages:
Before starting or dividing the system into modules, needs to have a clear
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
P a g e 56
S.W. Nishan Pradeep - 990585027
Advantages:
components.
Use of time boxing features and get help of advanced CASE tools
Disadvantages:
processes.
P a g e 57
S.W. Nishan Pradeep - 990585027
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
Advantages:
Avoidance of risk can be easily done due to high amount of risk analysis.
P a g e 58
S.W. Nishan Pradeep - 990585027
Disadvantages:
As cost is very high for this model, does not work well for smaller projects.
waterfall and the spiral model approach. As it put together the non-adaptive
scenarios.
Unified process follow both the following concepts in the aim of having a
Iterative
Incremental
Inception Phase
Elaboration Phase
Construction Phase
Transition Phase
P a g e 59
S.W. Nishan Pradeep - 990585027
development?
somewhat large system to develop it is not enough to use only one model to
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
P a g e 60
S.W. Nishan Pradeep - 990585027
UP PHASE OBJECTIVE
boundary.
remaining parts.
P a g e 61
S.W. Nishan Pradeep - 990585027
many more. When creating micro credits system for ABS Credits Company
used graphical models to do representation of activities. For that got the help
set of model constructs and notations developed specifically for object oriented
development.
(Please refer appendix B for class diagram for User, Cash and location
modules)
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
P a g e 62
S.W. Nishan Pradeep - 990585027
P a g e 63
S.W. Nishan Pradeep - 990585027
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
backend server.
P a g e 64
S.W. Nishan Pradeep - 990585027
System are
P a g e 65
S.W. Nishan Pradeep - 990585027
METHODOLOGY
TECHNIQUES MODELS
TOOLS
provides common repository for data that have ability of sharing among entire
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.
3. Select primary key and foreign keys needed for each table.
5. Choose appropriate data types and value restrictions for each field.
P a g e 66
S.W. Nishan Pradeep - 990585027
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
attention were given on this part in order to deliver final product with high client
This describes the physical aspects of user interface include the devices
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
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
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
boxes, buttons, drop down lists and so on. All these are used in way that system
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.
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
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
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
3.10. Summary
implementation in this part. Some user interfaces are designed in this phase.
phase. All the diagrams and detailed outputs are taken as inputs to the
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
construction phase. The core architecture is already completed and now looked
into built other parts of the system. When runs through multiple iterations, each
takes the major role in this phase. Lower risk, predictable and easier elements
are prepared for deployment. Testing also run parallel with implementation in
4.2. Implementation
environment
P a g e 72
S.W. Nishan Pradeep - 990585027
environment
project.
project.
Languages
1. HTML 5
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
computer scientist who work at CERN. By now W3C and WHATWG are the
recent version of the HTML family and have better features which help in
2. PHP
embedded scripting language. This is open source technology that runs on most
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.
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
Frameworks
1. Bootstrap
widely used with HTML, JavaScript and CSS. This framework was introduced
P a g e 75
S.W. Nishan Pradeep - 990585027
2. AngularJS
lot of codes we have to write along with HTML by providing features included with
Libraries
1. Jquery
JQuery is JavaScript library which is fast, simple, small and some more
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
(Please refer appendix C for usage of all these languages, frameworks and
P a g e 76
S.W. Nishan Pradeep - 990585027
Language
1. Java
Java is one of the object oriented languages widely used in today. It was
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
end.
Framework
2. Spring
way to handle objects by reducing tight coupling between them. Provide more
3. Hibernate
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
P a g e 77
S.W. Nishan Pradeep - 990585027
projects and for both of them used standard packaging style and standard
coding.
Standard packaging style and packages used in client side can be seen
in following diagram. In each module controller, service, service DAO and view
P a g e 78
S.W. Nishan Pradeep - 990585027
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
<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>
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
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
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
/**
* save user permissions in
rootScope */
$rootScope.getPermissionReal = function (permission) {
/**
* 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
}
}
}
});
});
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.
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.
some benefits can gain using inheritance concept. Following code shows usage
P a g e 83
S.W. Nishan Pradeep - 990585027
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> {
@Autowired
private SessionFactory sessionFactory;
P a g e 84
S.W. Nishan Pradeep - 990585027
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.
@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();
}
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.
@Entity
@Table(name = "customergroup")
@JsonIgnoreProperties
public class CustomerGroup implements EntityInterface<String> {
P a g e 85
S.W. Nishan Pradeep - 990585027
@Id
@Column(name = "customergroupid")
public String getCustomergroupid() {
return customergroupid;
}
@Override
@Transient
public String getId() {
return getCustomergroupid();
}
@Override
public String toString() {
return "CustomerGroup{" +
P a g e 86
S.W. Nishan Pradeep - 990585027
pattern which divides the software into three parts as model, view and
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
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>
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> {
@Id
P a g e 89
S.W. Nishan Pradeep - 990585027
@Column(name = "centerid")
public String getCenterid() {
return centerid;
}
P a g e 90
S.W. Nishan Pradeep - 990585027
Backend Controller
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;
}
/**
* Create Entity in db
*
* @param entity
* @return
*/
I create(T entity);
P a g e 91
S.W. Nishan Pradeep - 990585027
the system. This can be data input or information output. To maintain integrity
make sure that only the appropriate and correct business transaction is
This principle helps to project the system data from internal or external
System following steps are taken to maintain security controls of the system.
User log is maintained to track activities done by each user and this can only
P a g e 92
S.W. Nishan Pradeep - 990585027
4.7. Testing
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
When entire class, module or system is needed to test and the tests are
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
The main problem in black box testing is to select the corresponding test
P a g e 93
S.W. Nishan Pradeep - 990585027
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
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
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
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
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
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
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.
Following described the test types and detected defects identified at the
testing discipline.
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
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
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.
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
testing.
type to another method. For instance pass String value to the method which
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
cause unexpected failures. For instance all the customers are loaded except
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
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
has come a cross with user requirements, later the system is presented for user
P a g e 99
S.W. Nishan Pradeep - 990585027
to encounter errors. The advantage of build and smoke testing is its rapid
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
P a g e 100
S.W. Nishan Pradeep - 990585027
testing that used to check whether the system meets its time based
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
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
testing finishing.
Maintaining the code quality is not easy task. It should be done from the
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
P a g e 102
S.W. Nishan Pradeep - 990585027
1. Accuracy
2. Readability
3. Efficiency
4. Usability
5. Performance
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.
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
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
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
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
4.12. Summary
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
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
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
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
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
1. Direct Deployment
The old system is replaced by new system and turned off old 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.
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
4. Pilot Deployment
the system is tested well in that part gradually system will be spread over the
other parts.
After considering about the all these deployment strategies for ABS
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.
Company does not like to run both the file based system and web based system
P a g e 107
S.W. Nishan Pradeep - 990585027
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
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
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
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
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
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
system scope and system capabilities were identified in this phase and it was very
P a g e 111
S.W. Nishan Pradeep - 990585027
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
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
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
P a g e 112
S.W. Nishan Pradeep - 990585027
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
the weaknesses and high up the strengths. Though developer (in this project
myself) tried lot to create bug free software after the deployment some
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.
doesnt have experience in analysing part for real case scenario. So the
P a g e 113
S.W. Nishan Pradeep - 990585027
available at the company due to their busy works. So faced lot of difficulty in
in frameworks slows down the speed of the implementation at the early stage.
leads a way to speed up the implementation part of the system. Lack of report
But after learning from online sites about report writing it was a very easy task
to do.
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
techniques.
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
P a g e 114
S.W. Nishan Pradeep - 990585027
sequence.
How to manage phases in the Software Life Cycle and selecting the best
submission for BCS for Post Graduate Diploma (PGD) level. This is very
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
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/]
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 ]
P a g e 118
S.W. Nishan Pradeep - 990585027
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
Abbreviations:
Branch Manager = BM
Cash Collector = CC
Loan Officer = LO
Credit Officer = CO
Audit Officer = AO
P a g e 121
S.W. Nishan Pradeep - 990585027
P a g e 122
S.W. Nishan Pradeep - 990585027
P a g e 123
S.W. Nishan Pradeep - 990585027
P a g e 124
S.W. Nishan Pradeep - 990585027
P a g e 125
S.W. Nishan Pradeep - 990585027
P a g e 126
S.W. Nishan Pradeep - 990585027
1. Class Diagram
P a g e 127
S.W. Nishan Pradeep - 990585027
P a g e 128
S.W. Nishan Pradeep - 990585027
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
P a g e 131
S.W. Nishan Pradeep - 990585027
P a g e 132
S.W. Nishan Pradeep - 990585027
P a g e 133
S.W. Nishan Pradeep - 990585027
P a g e 134
S.W. Nishan Pradeep - 990585027
P a g e 135
S.W. Nishan Pradeep - 990585027
P a g e 136
S.W. Nishan Pradeep - 990585027
P a g e 137
S.W. Nishan Pradeep - 990585027
P a g e 138
S.W. Nishan Pradeep - 990585027
P a g e 139
S.W. Nishan Pradeep - 990585027
P a g e 140
S.W. Nishan Pradeep - 990585027
P a g e 141
S.W. Nishan Pradeep - 990585027
P a g e 142
S.W. Nishan Pradeep - 990585027
P a g e 143
S.W. Nishan Pradeep - 990585027
P a g e 144
S.W. Nishan Pradeep - 990585027
P a g e 145
S.W. Nishan Pradeep - 990585027
P a g e 146
S.W. Nishan Pradeep - 990585027
P a g e 147
S.W. Nishan Pradeep - 990585027
P a g e 148
S.W. Nishan Pradeep - 990585027
P a g e 149
S.W. Nishan Pradeep - 990585027
3. Sequence Diagram
P a g e 150
S.W. Nishan Pradeep - 990585027
P a g e 151
S.W. Nishan Pradeep - 990585027
P a g e 152
S.W. Nishan Pradeep - 990585027
P a g e 153
S.W. Nishan Pradeep - 990585027
4. Database tables
P a g e 154
S.W. Nishan Pradeep - 990585027
P a g e 155
S.W. Nishan Pradeep - 990585027
P a g e 156
S.W. Nishan Pradeep - 990585027
P a g e 157
S.W. Nishan Pradeep - 990585027
P a g e 158
S.W. Nishan Pradeep - 990585027
P a g e 159
S.W. Nishan Pradeep - 990585027
P a g e 160
S.W. Nishan Pradeep - 990585027
P a g e 161
S.W. Nishan Pradeep - 990585027
P a g e 162
S.W. Nishan Pradeep - 990585027
P a g e 163
S.W. Nishan Pradeep - 990585027
P a g e 164
S.W. Nishan Pradeep - 990585027
5. User Interfaces
Customer Manage
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
P a g e 165
S.W. Nishan Pradeep - 990585027
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
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
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,
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
P a g e 168
S.W. Nishan Pradeep - 990585027
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
User can create the new customer group under the selected centre. The
User can add customer to the particular group through the customer list.
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
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
P a g e 170
S.W. Nishan Pradeep - 990585027
User Interface for Add group, Assign customer to a group and Remove customer
P a g e 171
S.W. Nishan Pradeep - 990585027
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
P a g e 172
S.W. Nishan Pradeep - 990585027
Location Manage
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
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.
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.
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
P a g e 175
S.W. Nishan Pradeep - 990585027
In this interface list down the all loan packages. The package list is
P a g e 176
S.W. Nishan Pradeep - 990585027
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
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
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
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
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
P a g e 180
S.W. Nishan Pradeep - 990585027
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
P a g e 181
S.W. Nishan Pradeep - 990585027
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
P a g e 183
S.W. Nishan Pradeep - 990585027
Remove loan
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
After search details are listed in the user interface as below and can do
P a g e 185
S.W. Nishan Pradeep - 990585027
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
P a g e 186
S.W. Nishan Pradeep - 990585027
Payment history
This user interface can be used to get payment history for particular
P a g e 187
S.W. Nishan Pradeep - 990585027
Update payment
Remove 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
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
P a g e 189
S.W. Nishan Pradeep - 990585027
By selecting type (income or expense), month and branch user can get
P a g e 190
S.W. Nishan Pradeep - 990585027
Settings
Following user interface allows user to add and remove profession type to the
system.
Add new user/ View user permission/ Add permission to user/ Remove
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
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 feature is only accessible by Admin and by using this offer accessible to
P a g e 193
S.W. Nishan Pradeep - 990585027
Reset password
P a g e 194
S.W. Nishan Pradeep - 990585027
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
P a g e 196
S.W. Nishan Pradeep - 990585027
Report
All the reports mentioned below are can be downloaded and print as .pdf
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
selected date.
P a g e 199
S.W. Nishan Pradeep - 990585027
This report shows the summary of total loan count, loan amount,
collection, underpayment and net paid amount for selected time range.
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
P a g e 202
S.W. Nishan Pradeep - 990585027
P a g e 203
S.W. Nishan Pradeep - 990585027
P a g e 204
S.W. Nishan Pradeep - 990585027
P a g e 205
S.W. Nishan Pradeep - 990585027
P a g e 206
S.W. Nishan Pradeep - 990585027
P a g e 207
S.W. Nishan Pradeep - 990585027
1. Usage of HTML
style="color: red>*</span></label>
<div class="col-sm-3">
ng-change="branchClick()" id="branch">
{{data.name}} - {{data.town}}
</option>
</select>
</div>
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="col-lg-5">
<form class="form-horizontal">
<div class="form-group">
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
type="text"
</div>
4. Usage of AngularJS
document.getElementById("addBranchBtn").disabled = false;
$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 =
$scope.errors.push("Error");
document.getElementById("name").style.backgroundColor =
"#FFB2B2";
} else {
document.getElementById("name").style.backgroundColor =
"white";
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();
$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: [
],
dayOfWeek: [
},
closeOnDateSelect: true
});
6. Usage of Java
P a g e 213
S.W. Nishan Pradeep - 990585027
packager.setPackageid(newid);
String s = packagerDAOController.create(packager);
return s;
Integer offset) {
return
packagerDAOController.getAllPackageByPagination(limit, offset);
return packagerDAOController.update(packager);
return
packagerDAOController.removeGuaranteeById(packagerId) ;
P a g e 214
S.W. Nishan Pradeep - 990585027
7. Usage of Spring
@Controller
@RequestMapping("openmicro/v1/businessType")
@Autowired
8. Usage of hibernate
@Entity
@Table(name = "businesstype")
@JsonIgnoreProperties
public class BusinessType implements EntityInterface<String> {
@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
Expected
Output Success Fail
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
Expected
Output Success Fail
Form validation
If the branch is not selected the center selection box is disabled.
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.
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
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
Form validation
Add loan with guarantee
P a g e 221
S.W. Nishan Pradeep - 990585027
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
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
Form validations
User access the feature which is granted.
P a g e 224
S.W. Nishan Pradeep - 990585027
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
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
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
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
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
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
Form validation
P a g e 234
S.W. Nishan Pradeep - 990585027
1. Deployment Strategies
Direct Deployment
the current system fully in this deployment strategy. Because of this reason
Advantages:
Simple mechanism
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.)
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,
Advantages:
Low risk as any failure occur in new system doesnt affect the
Disadvantages:
Very high cost as the company has to pay for maintaining both new
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
Advantages:
Users are get used to the system gradually and doesnt need to put
Disadvantages:
P a g e 237
S.W. Nishan Pradeep - 990585027
Pilot Deployment
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
As full system is deployed for one section, get chance tested all the
Disadvantages:
At the first both old and new systems should have to run
P a g e 238