SC200-0124-2017 Online Banking System

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 68

NAME : DENIS KOOME

REGISTRATION NO : SC200/O124/2017
COURSE :BSC.COMPUTER SCIENCE
UNIT TITLE : PROGRAMMING AND
DATABASE PRACTICUM
UNIT CODE : SCS 203

PROJECT TITLE: ONLINE BANKING


SYSTEM

0
ONLINE BANKING SYSTEM

Abstract
With the arrival of the age of the internet, the financial service community is provided with
tremendous opportunities and challenges. Today’s providers must consider the internet and the
online services besides there traditional non online services. In this report, the analysis, design
and implementation details of an online banking application have been described. Many states of
the art technologies have been used to build the dynamic database driven client/server system.
The implementation requires the creation of a website, web pages and links to the database. The
database drive web application was coded using PHP as a programming language and notepad++
as a code editor.HTML and CSS were used to design a user interface
The project has been planned to be having the view of distributed architecture, with centralized
storage of the database. The application for the storage of the data has been planned. The
database connectivity is planned using the “Database” methodology. The standards of security
and data protective mechanism have been given a big choice for proper usage. The application
takes care of different modules and their associated reports, which are produced as per the
applicable strategies and standards that are put forwarded by the administrative staff.

1
Acknowledgement
I would like to acknowledge my parents for giving and giving me the opportunity to study at
Murang’a University of Technology their continued support.
I would also like to thank my friends for their help and support during the whole process of
system development life cycle.
I am wholeheartedly grateful to my supervisor Mr. Tirus for his great advice and help through
the process of doing this project.

2
Table of Contents
Abstract ................................................................................................................. 1
Acknowledgement ................................................................................................. 2
CHAPTER1.............................................................................................................. 5
INTRODUCTION ..................................................................................................... 5
1.1 Background .................................................................................................. 5
1.2 Problem statement ....................................................................................... 5
1.3 Objectives ..................................................................................................... 6
1.4 Project scope ................................................................................................ 6
1.5 Purpose ......................................................................................................... 7
1.6 Applicability .................................................................................................. 8
CHAPTER 2 ............................................................................................................. 8
SURVEY TECHNOLOGIES ........................................................................................ 9
2.1 TECHNOLOGIES ............................................................................................. 9
2.2 Why I used JavaScript as a scripting language; ............................................ 10
CHAPTER 3 ........................................................................................................... 11
REQUIREMENT AND ANALYSIS............................................................................ 11
3.1 User characteristics ..................................................................................... 11
3.2 FUNCTIONAL REQUIREMENT DEFINATION .................................................. 11
3.3 EXTERNAL NON-FUNCTION REQUIREMENTS .............................................. 13
3.4 PRODUCT NON-FUNCTIONAL REQUIREMENTS ........................................... 13
3.5 CONCEPTUAL MODEL.................................................................................. 14
SYSTEM DESIGN, TESTING AND IMPLEMENTATION ............................................. 17
4.1 SYSTEM DESIGN.......................................................................................... 17
4.1.1 BASIC MODULES ................................................................................... 17
4.1.2 SCHEMA DESIGN ................................................................................... 57
4.1.3 USER INTERFACE DESIGN ...................................................................... 59

3
4.1.4 SECURITY ISSUES ................................................................................... 61
4.2 SYSTEM TESTING ........................................................................................ 63
4.3 IMPLEMENTATION ..................................................................................... 65
CHAPTER 5 ........................................................................................................ 66
CONCLUSION .................................................................................................... 66
5.1 Limitation of the system ............................................................................. 66

4
CHAPTER 1
INTRODUCTION
1.1 Background
Online banking system refers to systems that enables bank customers to access counts and
general information on bank products and services through a personal computer or other
intelligent device. The chances and threats that the internet symbolizes is no longer news to the
present-day banking sector. No traditional bank would dare face the investments analysts without
an internet strategy. The main intention behind the commencement of electronic banking
services is to provide customers with an alternative that is more responsive and with less
expensive options. With options just a click away, customers have more control than ever. Their
expectations are usability and long-time answers. They also want personal attention and highly
customized products and services from their banks.
PRESENT SYSTEM
The present system has more paper work compared to the online bank system. It involves
counter checking customers details manually to ensure accuracy of the data during data entry
into the systems existing in banks. Many staffs are involved in running bank business in the
present system compared to the online system that focuses of minimizing labor costs and
reducing the number of employees in the banks.

1.2 Problem statement


The banking industry is witnessing a revolution in products, processes, markets and regulations
and it’s a revolution that is not about to stop or even slow down.
Since the only option is to adopt and evolve, it is essential that system have the flexibility to
quickly adjust the need for today’s financial markets.
It’s a tough challenge because today’s fast-moving markets place is also extremely competitive.
Moreover, the end to retain existing customers and attract new ones often conflicts with the need
to reduce costs and improve efficiency. But whatever the challenges facing in retail banking
operation, Online Banking System can help meet and overcome them.
In banking industries today queuing has become the order of the day. Customers line up for
hours waiting to withdraw or deposit money. This creates a lot of problem to both customers as
they waste their useful time in the banking hall; with some doing consultations that could have
been done at home. With Online Banking System, any customer is able to scan interest details,
along with frequent requested information for checking, savings and certificates of deposit
accounts quickly and easily without interfacing with bank clerks

5
WHY ONLINE BANKING SYSTEM?
Online Banking System offer flexible, client-server technology based on a scalable system. Its
centralized, customer centric design to offer a complete set of integral retail banking modules,
sharing a user-friendly interface
Online Banking System is developed to automate the process of day to day transaction of any
bank. It has all the features needed to operate the banking procedure. The system can be used to
create a new customer, modify details, apply for a loan, monitor customer’s contribution and
withdrawals.
OBS also allows multiple customers multiple users to access their accounts at the same time
rather than personally standing in lines for ATM or banking clerks
The online banking provides access 24hour a day to customers’ accounts information. Therefore,
the customers can enjoy the convenience of financial controls of their accounts through internet.
Customers can access the information they need via web pages. The ability to obtain current
information via a web browser is a competitive advantage for online banking system. Customers
will appreciate the personalized and interactive interfaces that they use to make contact with the
online banking. This differentiates online banking from its non-online competitors

1.3 Objectives
The main goal of the system is to automate the process carried out in the bank with an improved
performance. Some other goals include;
➢ To improve on speed, effectiveness, efficiency and convenience in business transaction
➢ To interface client and server side in a cost effective and efficient manner
➢ To enhance the operational capacity of banks via ICT
➢ To create a banking system that is easily accessible by customers from the comfort of
their homes, offices etc.
➢ To reduce time wasted on tedious queues in the banks.
➢ To promote efficient effective banking for the banks by focusing on those services that
still require physical presence at the banking hall.

1.4 Project scope


The project aim is to automate the system, checking the inclusion of all re q u i r e d m a t e r i a l
a n d a u t o m a t i c a l l y p r o c e s s t h e t r a n s a c t i o n s u s e d i n a banking. The criterions
which include over here is to creation of an account and it’s all respective perspectives. The data
used by the system is stored in a database that will be the center of all information held
about the customer and the base for the remainder of the process after initial
signing up been m a d e . T h i s e n a b l e s t h i n g s t o b e s i m p l i f i e d a n d c o n s i d e r a b l y

6
quickened, making the jobs of those in volved easier. It supports the
current process but centralizes it and makes it possible for decisio ns to be
m a d e i n a n e a s i e r w a y.
From the end user perspective, Online Banking System consists of two functional elements;
• Customer transaction module
• Employee transaction module

Customer transaction module


An enhanced automized system is developed to maintain customer transaction features. Features
include;
• Creation of a new banking customer
• Each customer login identified by access code and account number
• Banking main menu option
• Transaction
• Loan
• Contribution
Employee transaction module
An enhanced customized system is developed to maintain employee transaction. Features
include;
• Customers detail
• Transaction summary
• Reports
• Loan review on customers
• Loan payments

1.5 Purpose
The purpose of this project is to give customers more control than ever and let them access their
bank accounts any time of the day. The projects also tend to reduce the running costs of the
banks by ensuring that the number of staffs involved is reduced.
Other benefits of Online Banking System include;
➢ Quick, authenticated access to accounts via desktop.
➢ Banks easy access to customers information.
➢ Improved information security by restricting unauthorized access.

7
1.6 Applicability
This system can be used in banks to automize all banking transactions. It can also be used in
industries and companies for their personal transaction.

8
CHAPTER 2
SURVEY TECHNOLOGIES

To develop a web based online banking system, I used the following tools to develop and design
the system;
i. PHP
ii. MYSQL
iii. XAMP as my server
Some of the reasons I used the above tools are;
PHP: Is widely used general purpose scripting language that is especially suited for Web
development and can be embedded into HTML.
It’s an open source for web development so I had some php files that are related to the database
MYSQL: This is the most popular open-source database system. The data in MYSQL is stored in
database objects called tables.
A table is a collection of related data entries and it consists of columns and rows.
XAMP: XAMP is also a free and open source cross platform web-server solution stack page,
consisting mainly of Apache HTTP server, MYSQL database and interpreters for scripts written
in PHP and Perl programming languages

2.1 TECHNOLOGIES
The technologies that are necessary to build the dynamic web application are;
Client script
A client script is a program that is embedded in a webpage. The code is interpreted by the browser,
which provides interactive experience for end user. I used JavaScript as it was easier to understand.
Server script
A server script is a program embedded in a webpage that is located in the server side. The code is
interpreted by server software and it plays a key role in dynamic web application. The webpage
containing server script is also called Active Server Page (ASP)file. Server script is never sent to
a client machine directly; instead, it dynamically generates HTML and client script that are sent
back to browser. I used JavaScript to write the server script
Active server Framework
Web application is a software executed in conjunction with web server. Its primary role is to
process Active Server Pages.

9
2.2 Why I used JavaScript as a scripting language;
I considered using JavaScript because it has an ability to produce the same result on all modern
browser. It had a better user interface interactivity as it could fill data dynamically such as
dropdown list for a country. Its syntax was easy and flexible for development hence rapid
development
Other technologies used were Cascading Style Sheet CSS which was used to describe the
presentation of web pages, including colors, layout and fonts. I used CSS because of its consistency
and its browser compatibility.

10
CHAPTER 3
REQUIREMENT AND ANALYSIS
3.1 User characteristics
There are two kinds of users for the online banking system: Potential Customers and
Current Customers. They may be people or companies. They have different needs and
privilege levels to access the system.
Potential Customers: The Potential Customers do not have any accounts at
the online banking. A Potential customer can open an account, which is
his/her first account at the online banking. After opening the first account,
the potential customer will be a current customer.
Current Customers: The Current Customers have at least an account at the
online banking. They can:
• Open additional accounts.
• Pay and request a loan
• Check balances.
• Query transaction history.
• Check or update personal information.
• Change password.

3.2 FUNCTIONAL REQUIREMENT DEFINATION


Database requirement
In order for online banking system to work. The following files or databases are needed:
Customer file
The customer file contains all relevant information about customers: name, birth, gender, phone
number, marital status, user ID and password. This file is used to check or update personal
information and change password. It is appended after a potential customer opened the first
account and updated after a current customer modified the personal information and changed
password.
Account type file
The account type file contains a list of all account types that the online bank provides. This file
cannot be modified by any customer.

11
Customer account information file
The customer account information has a complete file list of accounts already opened by current
customers, including account number, open date, balance and account type for each account. This
file is appended after a potential customer or a current customer opened a new account. It is used
to check balances and get all account numbers and types held by a customer.
Payment file
The payment file contains all information about customers’ transactions, including paying account
number, bill number, pay date, due date and paid amount. This file is used when customers pay
loans, check balance and view transaction history
Next of kin information file
Every customer is required to fill in a form of next of kin. This helps solve the issue of beneficiary
in case of customers’ death. Incase a customer fails to honor the loan agreement the bank can also
use the next of kin to trace the customer.
Service requirements
The services include most of day-to-day banking activities by ATM and banking clerks,
except withdrawing cash. The services are described as follows:
Open an account: Both potential customers and current customers can open a new
account. But there is some difference. Potential customers need to fill out forms for
opening an account by providing personal information and account information. Current
customers just fil out forms with account information. The personal information has
already ken stored in the database, and there is no need to provide personal information
again. Before submitting a form, a customer can modify, met for refilling, and cancel it.
The current customers can update some personal information, such as password, address and phone
number.
Account summary: A customer can get an account summary for his/her all accounts,
including account number, account type and balance. The accounts' changes can be
reflected immediately.
Transfer funds: A customer can transfer money between his/her accounts. Before
submitting transfer requests, the customer needs to select where funds are transferred
from and to, and transfer amount. The transfer date is automatically displayed as the
current date. The balance will be reduced from the transfer-from account. Meanwhile,

12
the balance will be increased for the transfer-to account.
Transaction history: A customer can get transaction history for his/her all accounts.
This reflects all transactions performed during some last period, for example, last week,
half of month, one month. Transaction history includes transaction date, account number
of transaction-from, account number of transaction-to and transferring amount.
Service for changing information: Customers can modify some information, such as
address, phone number and password. For password change, the old password should be
provided by the customer.

3.3 EXTERNAL NON-FUNCTION REQUIREMENTS


Safety requirement
To ensure the safety of the system, identification facilities must be implemented in order to have
different levels of privileges to access the system. In this way unauthorized access to the system
ca be prevented.
Privacy requirement
The private information of each individual stored in the system should be secured. Only the owner
of the data is allowed to access information. User ID and passwords are designed to achieve this
goal. The password is encrypted to ensure that the database engineers are not able to access these
passwords.

3.4 PRODUCT NON-FUNCTIONAL REQUIREMENTS


The non-functional requirements for online banking system are the hardware and software
requirements. The online banking system should perform all its functions on the following
hardware and software requirements.
Hardware requirement
Minimum hard disk space: 250GB for the server side and 1GB for the client side.
Minimum RAM: 2GB for the server side and 500MB for the client side.
Any IBM compatible personal computer
Any processor
Software requirements
Database management systems: Xamp server
Operating system: Windows 10 or Linux or MAC

13
IDE: Note pad ++
Internet browser: Google chrome

3.5 CONCEPTUAL MODEL


The conceptual models are used to produce a model for the system describing the operations that
can be performed on the system and the allowable sequences of these operations. I used Data Flow
Diagrams and entity relationship model to show the model operation of the online banking system.
Data flow diagram
This is a graphical tool used to describe and analyze movements of data through a system. The
transformation of data from input to output, may be described logically and independently of
physical components associated with the system. It shows the flow of data

14
Registration info

User 1.0 (a)


Registration (b)
Reply

(c)
User details 3.0

Account

Reply (d)

4.0
Access (e) () e
Account
(f) f
Transaction

t
(m) 2.0 Access (g)
5.0
Login info login valid user
Loan
(n) (h)

(i)
Online Banking
Valid user 6.0 System

Access Customer (j) Database

(k)
7.0
Valid admin
Create and
l
Delete
(l)
Administrator

15
(a) : User details
(b) : Response
(c) : Personal details
(d) : Reply
(e) : Account transaction history
(f) : Transaction details
(g) : Loan application
(h) : Response

Entity relationship model


This shows a relatively clear view of the entire entity sets and the relationships among them

TRANSACTION
CLIENTS
1 Account No VARCHAR(12)
FName VARCHAR (60)
Account Name VARCHAR (12) ACCOUNTS
ID NO VARCHAR (8)
Transaction Mode VARCHAR(12)
D.O.B DATE (8) Account No VARCHAR(12)
REF NO VARCHAR(45)
Email VARCHAR (60) Account Type VARCHAR (60)
1 Transaction Date DATE(8)
Marital status VARCHAR (10) Date Opened DATE(8)
ID NO VARCHAR (8)
Phone number VARCHAR (10) Date Approved DATE(8)
Location VARCHAR (60) Account Balance DECIMAL (10)
I mail address VARCHAR (60)

LOAN
Loan Type VARCHAR(45)
Amount DECIMAL (10)
Date DATE(8) 1
ID NO VARCHAR(8)

1 BANK
BANK NAME VARCHAR (60)
BANK LOCATION VARCHAR (60)

NEXT OF KIN
FName VARCHAR (60)
LOGIN_DETAIL ID NO VARCHAR (8)
ID NO VARCHAR (8) Phone Number VARCHAR (10)
PASSWORD VARCHAR (16) D.O.B DATE (8)
Location VARCHAR (60)

16
CHAPTER 4
SYSTEM DESIGN, TESTING AND IMPLEMENTATION
4.1 SYSTEM DESIGN
Once system requirement has been specified and analyzed, system design is first of the three
technical activities – design, code and test that is required to build and verify software. Design is
the place where quality is fostered in software development as representation of the software that
can assess quality are provided here.
During the development of the online banking system, I considered the following when designing
the system;
• Concurrency
The online banking system receives asynchronous events that need to be addressed
simultaneously. The system is divided into suitable independent sub systems to handle such
concurrent events.
• Dynamic update of data
Data displayed on the client interface has to be continuously updated as new events are
recorded on the database. The event manager that receives the pushed evet from the database
in turn interacts with the account controller to incrementally refresh the displayed information
on the user interface
• Consistency of data
One of the key issues in the design is the need to maintain consistency between client, server
and the database. The account controller and event manager co-ordinate to maintain
consistency of data across the system.
• Persistence
In effort to provide fault tolerance to online banking system all active transactions are stored
and continuously updated in the database. In case of a server crash the transaction object with
there latest balance would be retrieved

4.1.1 BASIC MODULES


i. Login module
This is the module that is used when one wants to login to the system. This module specifies the
passwords and the username of the user required during login process as stored in the database.
This the module that approves if the user exists or not and denies access to all other users not
registered in the system.

17
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="assets/plugins/bootstrap/css/bootstrap.css" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="stylesheet" href="assets/css/theme.css" />
<link rel="stylesheet" href="assets/css/MoneAdmin.css" />
<link rel="stylesheet" href="assets/plugins/Font-Awesome/css/font-awesome.css" />
<!--END GLOBAL STYLES -->

<!-- PAGE LEVEL STYLES -->


<link href="assets/css/layout2.css" rel="stylesheet" />
<link href="assets/plugins/flot/examples/examples.css" rel="stylesheet" />
<link rel="stylesheet" href="assets/plugins/timeline/timeline.css" />
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style type="text/css">
.login-form {
width: 340px;
margin: 50px auto;
}
.login-form form {
margin-bottom: 15px;

18
background: #f7f7f7;
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
padding: 30px;
}
.login-form h2 {
margin: 0 0 15px;
}
.form-control, .btn {
min-height: 38px;
border-radius: 2px;
}
.btn {
font-size: 15px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="login-form">
<form action="login.php" method="post">
<h1 class="text-center">MACINVEST</h1>
<h2 class="text-center">Log in</h2>
<div class="form-group">
<input type="text" name="username"class="form-control" placeholder="Username"
required="required">
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password"
required="required">

19
</div>
<div class="form-group">
<button type="submit" name="submit" class="btn btn-primary btn-block">Log
in</button>
</div>
<div class="clearfix">
<label class="pull-left checkbox-inline"><input type="checkbox"> Remember
me</label>
<a href="#" class="pull-right">Forgot Password?</a>
</div>
</form>
<p class="text-center"><a href="register.php">Create an Account</a></p>
</div>
<?php
session_start();
$db = mysqli_connect('localhost', 'root', '', 'macinvest');
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$checkpass=md5($password);

$sql= "SELECT * FROM member_detail WHERE idno='$username' AND


pass='$checkpass'";
$result=mysqli_query($db,$sql);
$row=mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);
if($count>0){

if($row['acc']==1){

20
//echo "ok";
$_SESSION['admin']= $row['idno'];
$_SESSION['rolesession']= $row['acc'];
header('Location: user.php');
echo "Admin account detected";
}
else if($row['acc']==2){
//echo "ok1";
$_SESSION['usersession']= $idno;
$_SESSION['rolesession']= $row['acc'];
header("Location: index.php");
//echo "User account detected";
}
}

else {
echo "<div class='alert alert-danger'> Wrong user details or User do not exist.</div>";
}

}?>
</body>
</html>

ii. Mpesa module


This module helps in transactions involving mpesa money transfer. It allows the user to pay loans
and contributions to the bank using M-pesa.
<?php include('divu.php');
$db = mysqli_connect ('localhost', 'root', '', 'macinvest');
$sess= $_SESSION['admin'];

21
$query=$db->query ("SELECT * FROM member detail WHERE idno='$sess'");
$row=$query->fetch array ();
$count=$query->num_rows;
//$sess=$row['fname'].' '.$row['lname'];
$name=$row['fname'];
$latest=$row['idno'];
//$photo=$row['photo'];
$db = mysqli_connect('localhost', 'root', '', 'macinvest');
$check = ("SELECT * FROM accounts where accountname='MPESA'");
$sql=mysqli_query($db, $check);
if(mysqli_num_rows($sql)){
while ($row = mysqli_fetch_array($sql))
{
$accountname=$row['accountname'];
}
}
if ($sess){
$sql = "SELECT * FROM ref ORDER BY mdrefid DESC LIMIT 1;";
$result = mysqli_query($db, $sql);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result) ;

$str = $row["mdrefid"];//"IVISA250532";
$int = preg_replace('/[^0-9]/', '',$str);//to get the Int
from string '250532'
$pure_str = str_replace($int, "", $str);// tog get only
the string word 'IVISA'

22
$new = $pure_str.($int+1); // << that is what you
need "IVISA250533"
{
}
if (isset($_POST['send'])) {
// receive all input values from the form
$refno = mysqli_real_escape_string($db, $_POST['refno']);
$amount = mysqli_real_escape_string($db, $_POST['amount']);
$tcode = mysqli_real_escape_string($db, $_POST['tcode']);
$acc="SELECT `typename` FROM `ttype` WHERE typename='deposit'";
$check=mysqli_query($db,$acc);

$ttype='1';
$tmode='cash';
$approve='2';
$accountname='MPESA';
// Save data from form to database table
if ($sess){

$query = "INSERT INTO contribution


(refno,idno,fname,accountname,amount,tcode,date,tmode,approve)
VALUES('$refno', '$latest',
'$name','$accountname','$amount','$tcode','$tdate','$tmode','$approve')";

mysqli_query($db, $query);
}else
{ echo '<script language="javascript">';
echo 'alert("no data to save")';
echo '</script>';}

23
// Save data from form to kin_detai table
if ( $sess){

$squery = "INSERT INTO


transactions(refno,idno,amount,accountname,ttype,tmode,approve,tdate)

VALUES('$refno','$latest','$amount','$accountname','$ttype','$tmode','$approve','$tdate')"
;

mysqli_query($db, $squery);
echo '<script language="javascript">';
echo 'alert("no data to save")';
echo '</script>';

}
if ($sess){

$squery = "INSERT INTO ref(mdrefid)


VALUES('$refno')";

mysqli_query($db, $squery);
echo '<script language="javascript">';
echo 'alert("no data to save")';
echo '</script>';
header('location: contributions.php');
}

}
?>

24
<form class="form1" method="post" action="mpesa.php">
<div class="row">
<div class="col-md-12">
<div class="col-md-4"><br><br><br><br><br><br>
<div align="center">
<p>Send your contribution to paybill No</p>
<h1> 81189</h1>
</div></div>
<div class="col-md-3"><br>
<div align="left">
Ref NO <br> <input type="text" name="refno" value="<?php
echo($new);?>"readonly="readonly"><br><br>
Amount <br><input type="number" name="amount" value=""
required="required"><br><br>
TRANSACTION CODE <br><input type="text" name="tcode" value=""
required="required"><br><br><br><br>
</div></div>
<div class="col-md-2"><br><br><br><br><br><br>
<div align="left">
<button type="submit" class="btn" name="send">SEND</button><br><br><br><br>
</div></div>
</div></div></form>
<div id="footer">
<p>&copy; macinvest &nbsp;2019 &nbsp;</p>
</div>
<!--END FOOTER -->

25
iii. Registration module
This is the module in which new customer’s register. It is connected to the database to store
member details once the customer has given all the details needed.

<form method="post" action="register.php">


<div class="row">
<div class="col-md-12">
<div class="col-md-3">
<h1 align="left" class="style3">MEMBER DETAILS </h1>
<div align="left">
<span class="style6"><span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
<div align="center" class="style6">

<div align="left"><strong>FULL NAME </strong></div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="text" id="fname" name="fname" required="required">
<br>
<br>

26
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style4">

<div align="left">ID NO </div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="number" id="idno" name="idno" required="required">
<br>
<br>
</div>

27
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style4">

<div align="left">LOCATION </div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="text" id="location" name="location" required="required">
<br>
<br>
</div>
</div>

28
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style4">

<div align="left">DATE OF BIRTH </div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="date" id="dob" name="dob" required="required">
<br>
<span class="error">*<?php echo $dobrr;?></span>
<br>
<br>

29
<br>
</div>
</div>

<div align="left" class="style4">MARITAL STATUS<br />


</div>
<span class="style4">
<select data-placeholder="" class=" chzn-select" name="mstatus">
<option>Single</option>
<option>Married</option>
<option>Divorced</option>
</select>
</span>
</div>

<div class="col-md-3">
<h1 align="left" class="style3">CONTACT DETAILS </h1>
<div align="left">
<span class="style6"><span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
<div align="center" class="style6">

<div align="left"><strong>PHONE NO </strong></div>


</div>
<div align="left" class="style4">

30
</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="number" id="phoneno" name="phoneno" required="required">
<br>
<br>
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style4">

<div align="left">EMAIL ADDRESS </div>


</div>
<div align="left" class="style4">

31
</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="email" id="email" name="email" required="required">
<br>
<br>
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style4">

<div align="left">LOCAL MAIL ADDRESS </div>


</div>
<div align="left" class="style4">

</label>

32
</div>
<div align="center" class="style4">

<div align="left">
<input type="text" id="lmail" name="lmail" required="required">
<br>
<br>
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>

</div>
<div class="col-md-3">
<h1 align="left" class="style3">NEXT OF KIN DETAILS </h1>
<div align="left">
<span class="style6"><span class="style3"><span class="style2">
<label>
</span> </span>

33
</div>
</span>
<div align="center" class="style6">

<div align="left"><strong>FULL NAME </strong></div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="text" id="kfname" name="kfname" required="required">
<br>
<br>
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>

34
</div>
<div align="center" class="style4">

<div align="left">ID NO </div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="number" id="kidno" name="kidno" required="required">
<br>
<br>
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>

35
<div align="center" class="style4">

<div align="left">LOCATION </div>


</div>
<div align="left" class="style4">

</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="text" id="klocation" name="klocation" required="required">
<br>
<br>
</div>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style5">

36
<div align="left"><strong>PHONE NUMBER</strong></div>
</div>

<div align="left"><span class="style6">


</label>

<input type="number" id="kphone" name="kphone" required="required">


</span><br>
<br>
</div>
<div align="left">
<div align="center" class="style9">
<span class="style3">
<div align="left">
<span class="style3"><span class="style2">
<label>
</span> </span>
</div>
</span>
</div>
</div>
<div align="center" class="style4">

<div align="left">DATE OF BIRTH </div>


</div>
<div align="left" class="style4">

37
</label>
</div>
<div align="center" class="style4">

<div align="left">
<input type="date" id="kdob" name="kdob" required="required">
<br>
<span class="error">*<?php echo $dobrr;?></span>
<br>
<br>
<br>
</div>
</div>
</div>
</div></div>
<div class="row">
<div class="col-md-12" align="right">
<div class="col-md-6" align="center">
<div align="center" class="input-group style10">
<button type="submit" class="btn" name="register">Register</button>
</div></div>
<div class="col-md-6" align="left">
<div align="center" class="input-group style10">
<button type="submit" class="btn" name="cancel">cancel</button>
</div></div></div>
</div>
</form>

38
iv. Loan module
This module allows the bank to create a loan to its members and the interest rate expected upon
payment. A reference number is also created during loan awarding to make it easier for the bank
to monitor its customer
<?php include('div.php')?>
<form action="loans.php" method="post">
<div class="row">
<div class="col-md-12">
<div class="col-md-3">

<div align="center"><br><br><br><br><br><br>
<button type="submit" class="btn" name="nloan">create new loan</button>

</div>

</div>
<div class="col-md-3">
<div align="left">
<br>
REF NO<br>
<input type="text" name="loanref" value="<?php echo($ons);?>" readonly="readonly" >
<br>
<br>
loan name<br>
<input type="text" name="loan" value="">
<br>
<br>
percentage per month<br>

39
<input type="number" name="percent" value="">
<br>
<br>
source account<br>
<select data-placeholder="" class="col-md-8" name="account" tabindex="3">
<?php
$db = mysqli_connect ('localhost', 'root', '', 'macinvest');
$check = ("SELECT * FROM accounts where activity='1'");
$sql=mysqli_query($db, $check);
if(mysqli_num_rows($sql)){
while ($row = mysqli_fetch_array($sql))
{
echo "<option value='". $row['accountname'] ."'>" .$row['accountname'] ."</option>" ;
}
}
?>
</select></br></br>
Date<br>
<input type="date" name="date" value="">
<br>
<br>
</div>
<div class="form-group">
<label>
<div align="left">accessibility </div>
</label>
<label class="radio-inline">

40
<div align="left">
<input type="radio" name="access" id="1" value="1" checked="checked" />
Active </div>
</label>
<label class="radio-inline">

<div align="left">
<input type="radio" name="access" id="2" value="0" />
Inactive </div>
</label>
</div>
<button type="submit" class="btn" name="saves">CREATE</button></br></br>

</div></div></div></form>
v. User module
This module was used to create a user interface and enables a member to access the system. It is
this module that a member is able to carry out transactions
<?php include('divu.php')?>
<!--PAGE CONTENT -->
<div class="row">
<div class="col-md-8" align="right">
<div class="jumbotron">
<div class="row">
<div class="col-md-12">
<h1 align="center"> DATA MANAGEMENT SYSTEM </h1>
</div>
</div>
<hr />
<!--BLOCK SECTION -->

41
<div class="row">
<div class="jumbotron">
<div class="col-md-6">
<div style="text-align: center;">

<a class="quick-btn style3" href="updatereg.php">


<i class="icon-check icon-2x"></i>
<span> <em> <strong>MEMBERSHIP</strong></em></span></a> </div>

</div>
<div class="col-md-6">
<div style="text-align: center;">

<a class="quick-btn style3" href="contributions.php">


<i class="icon-check icon-2x"></i>
<span> <em> <strong>contribution</strong></em></span></a> </div>
</div>

</div></div>
<div class="row">
<div class="jumbotron">
<div class="col-md-6">
<div style="text-align: center;">

<a class="quick-btn style3" href="#request.php">


<i class="icon-check icon-2x"></i>
<span> <em> <strong>LOANS</strong></em></span></a> </div>
</div>
<div class="col-md-6">

42
<div style="text-align: center;">

<a class="quick-btn style3" href="#">


<i class="icon-check icon-2x"></i>
<span> <em> <strong>REPORTS</strong></em></span></a>
<div><div>
vi. Account module
This module allows an existing customer to create a new account and check whether his existing
account is active or inactive.

<!-- MENU SECTION -->

<?php include('div.php')?>
<form action="accounts.php" method="post">
<div class="row">
<div class="col-md-12">
<div class="col-md-3">

<div align="center"><br><br><br><br><br><br>
<button type="submit" class="btn" name="account">new account</button>
<br>
<br>
<button type="submit" class="btn" name="save">save account</button>
</div>

</div>
<div class="col-md-3">
<div align="left">
<br>
Acount ID <br>
<input type="text" name="accountid" value="<?php echo($new);?>"
readonly="readonly" >
<br>
<br>
Account Name <br>
<input type="text" name="accountname" value="">

43
<br>
<br>
Minimum Amount<br>
<input type="number" name="minamount" value="">
<br>
<br>
Maximum Amount<br>
<input type="number" name="maxamount" value="">
<br>
<br>
Date<br>
<input type="date" name="cdate" value="">
<br>
<br>
</div>
<div class="form-group">
<label>
<div align="left">Account </div>
</label>
<label class="radio-inline">

<div align="left">
<input type="radio" name="activity" id="1" value="1" checked="checked"
/>
Active </div>
</label>
<label class="radio-inline">

<div align="left">
<input type="radio" name="activity" id="2" value="0" />
Inactive </div>
</label>
</div>

</div></div></div></form>

<div id="footer">
<p>&copy; macinvest &nbsp;2019 &nbsp;</p>
</div>
<!--END FOOTER -->

44
vii. Server module
This module makes it possible to connect the webpage to the server. All customer information
from the website is saved to the database. When a new member adds the personal details, they are
added to the database.

<?php

$idnos=$_SESSION['admin'];
// initializing variables

$amount="";

$fname="";
$refno="";
$date = "";
$lname = "";
$loan = "";
$new = "";
$max = "";
$name = "";
// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'macinvest');
function getd()
{
$ref= array();
$ref[0]=$_POST['idnos'];
$ref[1]=$_POST['fname'];
$ref[2]=$_POST['refno'];
$ref[3]=$_POST['lname'];

45
$ref[4]=$_POST['amount'];
$ref[5]=$_POST['date'];
return $ref;
}
if (isset($_POST['lsearch'])) {
$lfname = mysqli_real_escape_string($db, $_POST['lfname']);
$lidnos = mysqli_real_escape_string($db, $_POST['lidnos']);
$lrefno = mysqli_real_escape_string($db, $_POST['lrefno']);
$lloan = mysqli_real_escape_string($db, $_POST['lloan']);
$lamount = mysqli_real_escape_string($db, $_POST['lamount']);
$ldate = mysqli_real_escape_string($db, $_POST['ldate']);
$lname = mysqli_real_escape_string($db, $_POST['lname']);
if (empty($idnos)) {
header('location: aloan.php');

echo ("Enter id number");


}
Else
{
$sql = "SELECT * FROM ref ORDER BY awardref DESC LIMIT 1;";
$result = mysqli_query($db, $sql);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result) ;

$str = $row["awardref"];//"IVISA250532";
$int = preg_replace('/[^0-9]/', '',$str);//to get the Int
from string '250532'
$pure_str = str_replace($int, "", $str);// tog get only
the string word 'IVISA'

46
$loan = $pure_str.($int+1); // << that is what you
need "IVISA250533"
}

// receive all input values from the form

$search="SELECT * from member_detail where idno='$lidnos'";


$result = mysqli_query($db, $search);
$sch="SELECT * from loans where loan='$lname'";
$res = mysqli_query($db, $sch);

if($result)
{
if(mysqli_num_rows($result)>0)
{

while($rows=mysqli_fetch_array($result))
{
$lidnos=$rows['idno'];
$lfname=$rows['fname'];
$sum="select SUM(amount) from contribution";
$sums=mysqli_query($db, $sum);
$psum="select SUM(amount) from ploan";
$psums=mysqli_query($db, $sum);
$lmax=$sums;
}
}

47
Else
{
echo '<script language="javascript">';
echo 'alert("NO ref AVAILABLE")';
echo '</script>';
}
}
Else
{
if(mysqli_num_rows($res)>0)
{

while($rows=mysqli_fetch_array($res))
{
$lma=$rows['percentage'];

}
}else{
echo '<script language="javascript">';
echo 'alert("NO ref AVAILABLE")';
echo '</script>';
}
}
Else

{
echo '<script language="javascript">';

48
echo 'alert("ID DOES NOT EXIST")';
echo '</script>';
}

if (isset($_POST['save'])) {
// receive all input values from the form
$cfname = mysqli_real_escape_string($db, $_POST['cfname']);
$idnos = mysqli_real_escape_string($db, $_POST['idnos']);
$refno = mysqli_real_escape_string($db, $_POST['refno']);
$accountname = mysqli_real_escape_string($db, $_POST['accountname']);
$amount = mysqli_real_escape_string($db, $_POST['amount']);
$tdate = mysqli_real_escape_string($db, $_POST['tdate']);

$acc="SELECT `typename` FROM `ttype` WHERE typename='loan'";


$check=mysqli_query($db,$acc);

$ttype='3';

// Save data from form to database table


if ($check){

$query = "INSERT INTO contribution (refno,idno,fname,accountname,amount,date)


VALUES('$refno', '$idnos',
'$cfname','$accountname','$amount','$tdate')";

49
mysqli_query($db, $query);
}else
{ echo '<script language="javascript">';
echo 'alert("no ref to save")';
echo '</script>';}
// Save ref from form to kin_detai table
if ( $check){

$squery = "INSERT INTO transactions(refno,idno,amount,accountname,ttype,tdate)

VALUES('$refno','$idnos','$amount','$accountname','$ttype','$tdate')";

mysqli_query($db, $squery);
echo '<script language="javascript">';
echo 'alert("no ref to save")';
echo '</script>';

}
if ($check){

$squery = "INSERT INTO ref(ALREF)


VALUES('$refno')";

mysqli_query($db, $squery);
echo '<script language="javascript">';
echo 'alert("no ref to save")';
echo '</script>';
header('location: aloan.php');

50
viii. Contribution module
This module helps a customer to make contributions to the bank. One can choose the amount
he/she wants to contribute on this module.
<!-- MENU SECTION -->

<div id="left" >


<ul id="menu" class="collapse">

<li class="panel active">


<a href="index.php" >
<i class="icon-table"></i> Dashboard

</a>
</li>

<li class="panel ">


<a href="#" data-parent="#menu" data-toggle="collapse" class="accordion-toggle"
data-target="#component-nav">
<i class="icon-tasks"> </i>MEMBERSHIP

<span class="pull-right">
<i class="icon-angle-left"></i>
</span>
</a>
<ul class="collapse" id="component-nav">
<li class=""><a href="register.php"><i class="icon-angle-right"></i> Member
registration </a></li>

51
<li class=""><a href="updatereg.php"><i class="icon-angle-right"></i> Edit
members details</a></li>
<li class=""><a href="#"><i class="icon-angle-right"></i> View members list
</a></li>
<li class=""><a href="#"><i class="icon-angle-right"></i> new page </a></li>
</ul>
</li>
<li class="panel">
<a href="#" data-parent="#menu" data-toggle="collapse" class="accordion-toggle"
data-target="#DDL-nav">
<i class=" icon-sitemap"></i> ACCOUNTS

<span class="pull-right">
<i class="icon-angle-left"></i>
</span>
</a>
<ul class="collapse" id="DDL-nav">
<li><a href="#"><i class="icon-angle-right"></i>
Contributions</a></li>
<li>
<a href="#" data-parent="#DDL-nav" data-toggle="collapse" class="accordion-
toggle" data-target="#DDL1-nav">
<i class="icon-sitemap"></i>&nbsp; Loans

<span class="pull-right" style="margin-right: 20px;">


<i class="icon-angle-left"></i>
</span>

</a>

52
<ul class="collapse" id="DDL1-nav">
<li>
<a href="#"><i class="icon-angle-right"></i> Award Loan </a>

</li>
<li>
<a href="#"><i class="icon-angle-right"></i> pay Loan </a></li>

</ul>

</li>
<li><a href="#"><i class="icon-angle-right"></i> Divideds </a></li>
<li><a href="#"><i class="icon-angle-right"></i> Merry Go Round </a></li>
</ul>
</li>
<li class="panel">
<a href="#" data-parent="#menu" data-toggle="collapse" class="accordion-toggle"
data-target="#chart-nav">
<i class="icon-bar-chart"></i> Reports

<span class="pull-right">
<i class="icon-angle-left"></i>
</span>
</a>
<ul class="collapse" id="chart-nav">

<li><a href="#"><i class="icon-angle-right"></i> Loan reports</a></li>

53
<li><a href="#"><i class="icon-angle-right"></i> Contribution reports</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Shares reports </a></li>
<li><a href="#"><i class="icon-angle-right"></i> Membership reports</a></li>
</ul>
</li>
<li class="panel">
<a href="#" data-parent="#menu" data-toggle="collapse" class="accordion-toggle"
data-target="#pagesr-nav">
<i class="icon-sitemap"></i> Parameters

<span class="pull-right">
<i class="icon-angle-left"></i>
</span>
</a>
<ul class="collapse" id="pagesr-nav">
<li><a href="#"><i class="icon-angle-right"></i> Management setup</a></li>
<li><a href="#"><i class="icon-angle-right"></i> contributions setup </a></li>
<li><a href="accounts.php"><i class="icon-angle-right"></i> accounts setup
</a></li>
<li><a href="loans.php"><i class="icon-angle-right"></i> Loans setup</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Shares setup</a></li>
<li><a href="#"><i class="icon-angle-right"></i> Merry-Go-Round
setup</a></li>
</ul>
</li>
</ul>
</div>

<form class="form1" method="post" action="contribution.php">

54
<div class="row">
<div class="col-md-12">
<div class="col-md-4"><br><br><br><br><br><br>
<div align="center">
<input type="text" name="idnos" value="<?php echo($idnos);?>" placeholder="Enter ID
NO"id="searchInput" >
<button type="submit" name="searchid" class='enableOnInput'>search ID</button>
</div></div>
<div class="col-md-3"><br>
<div align="left">
Ref NO <br> <input type="text" name="refno" value="<?php
echo($new);?>"readonly="readonly"><br><br>
Full Name <br><input type="text" name="cfname" value="<?php echo($cfname);?>"
readonly="readonly"><br><br>
SELECT ACCOUNT<br>
<select class="form-dropdown validate[required]" style="width:150px" id="input_43"
name="q43_problemType43">
<?php
$servername = "localhost";
$username = "root";
$password = "root";

// Create connection
$conn = new mysqli($servername, $username, $password);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_select_db($conn,"trials"); //set the database name

55
$menu=" ";

$sql="SELECT Porotypes FROM probmaster"; //selection query


$rs = mysqli_query($conn, $sql);//odbc_exec($conn,$sql);

if (mysqli_num_rows($rs) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($rs)) {
$menu .= "<option value=".$row['ProbType'].">" . $row['ProbType']. "</option>";
}
}

echo $menu;

mysqli_close($conn);

?>
</select>.ws
<br>
<br>
Amount <br><input type="number" name="amount" value=""><br><br>
Date <br><input name="tdate" type="date" class="col-md-8" value="">
<br><br><br><br>
</div></div>
<div class="col-md-2"><br><br><br><br><br><br>
<div align="left">
<button type="submit" class="btn" name="save">SAVE</button>

56
</div></div>
</div></div></form>

<div id="footer">
<p>&copy; macinvest &nbsp;2019 &nbsp;</p>
</div>
<!--END FOOTER -->

4.1.2 SCHEMA DESIGN


Table name: Login
It is the table used to store login details
KEY FIELD NAME DATA TYPE LENGTH NULLABLE
PK ID NO VARCHAR 12 NO
PASSWORD VARCHAR 16 NO

Table name: Member details


It is used to store members details
KEY FIELD NAME DATA TYPE LENGTH NULLABLE
FULL NAME VARCHAR 60 NO
PK ID NO VARCHAR 8 NO
DOB DATE 8 NO
EMAIL ADRESS VARCHAR 60 NO
MARITAL STATUS VARCHAR 10 NO
PHONE NO VARCHAR 12 NO
LOCATION VARCHAR 60 NO
I MAIL ADRESS VARCHAR 60 YES

57
Table name: Next of kin details
This table stores details for the next of kin.
KEY FIELD NAME DATA TYPE LENGTH NULLABLE
FULL NAME VARCHAR 60 NO
PK ID NO VARCHAR 12 NO
PHONE VARCHAR 12 NO
NUMBER
DOB DATE 8 NO
LOCATION VARCHAR 60 YES

Table name: Accounts


This table is used to store account details.
KEY FIELD NAME DATA TYPE LENGTH NULLABLE
FK ACCOUNT NO VARCHAR 12 NO
ACCOUNT TYPE VARCHAR 60 NO
DATE OPENED DATE 8 NO
DATE APPROVED DATE 8 NO
ACCOUNT DECIMAL 60 NO
BALANCE

Table name: Transaction


This table stores transaction details.
KEY FIELD NAME DATA TYPE LENGTH NULLABLE
FK ID NO VARCHAR 12 NO
ACCOUNT NO VARCHAR 12 NO
TRANSACTION DATE DATE 8 NO
REFERENCE NO VARCHAR 45 NO
TRANCTION TYPE VARCHAR 45 NO
ACCOUNT NAME VARCHAR 12 NO
TRANSACTION MODE VARCHAR 12 NO

58
4.1.3 USER INTERFACE DESIGN
The User Interface Specification (UIS) consists of one main graphical user interface (GUI), which
consists with different operations enlisted in the options. It is intended to convey a general idea for
the user interface design and operational concept for the software.
Login page
The Login page consists of two text boxes, namely Username and Password, and a login command
button allowing the customer to log into the system. The login page helps the customers to login
as a user who visualizes and analyze data contained in the database. This page also enables a new
customer to create an account and an existing customer to recover forgotten password
Figure

59
Registration page
New members must register here in order to gain access to the system

Once registered and logged in, the customer is able to carry out transactions

60
4.1.4 SECURITY ISSUES
System security was considered during development of the system. The protection of computer-
based resources that includes hardware, software, data, procedures and people against
unauthorized use is known as system security
System security was divided into the following;
• System security- These are technical innovations and procedures applied to the hardware
and operating system to protect against deliberate or accidental damage from a defined
threat.
• Data security- It is the protection of data from loss, disclosure, modification and destruction
• System integrity- It is the power functioning of hardware and programs, appropriate
physical security and safety against external threats such as eavesdropping and wiretapping
• Privacy – It is the rights of the user or organizations to determine what information they
are willing to share with or accept from others and how the organization can be protected
against unwelcome, unfair or excessive dissemination of information about it.

61
• Confidentiality- It is a special status given to sensitive information in a database to
minimize the possible invasion of privacy. It is an attribute of information that
characterizes its need for protection.

SOFTWARE SECURITY
System security refers to various validations on data in form of checks and controls to avoid the
system from failing. It is always important to ensure that only valid data is entered and only valid
operations are performed on the system. The system employees two types of checks and controls:

Client-side validation

Various client-side validations are used to ensure on the client side that only valid data is entered.
Client-side validation saves server time and load to handle invalid data. Some checks imposed are;

• Forms cannot be submitted without filling up the mandatory data so that manual mistakes of
submitting empty fields that are mandatory can be sorted out at the client side to save the server
time and load.
• Tab-indexes are set according to the need and taking into account the ease of user while
working with the system.

Server-side validation
Some checks cannot be applied at client side. Server-side checks are necessary to save the system
from failing and intimating the user that some invalid operation has been performed or the
performed operation is restricted. Some of the server-side checks imposed is:

• Server-side constraint has been imposed to check for the validity of primary key and foreign
key. A primary key value cannot be duplicated. Any attempt to duplicate the primary value
results into a message intimating the user about those values through the forms using foreign
key can be updated only of the existing foreign key values.
• Various Access Control Mechanisms have been built so that one user may not agitate upon
another. Access permissions to various types of users are controlled according to the
organizational structure. Only permitted users can log on to the system and can have access
according to their category. User- name, passwords and permissions are controlled o the server
side.

62
• Using server-side validation, constraints on several restricted operations are imposed.

4.2 SYSTEM TESTING


Introduction
Software testing is critical element of software quality assurance and represents ultimate reviews
of specification, design and coding.
A strategy for software testing integrates software test case design methods into a well-planned
series of steps that result in the successful construction of software. Testing is the set of activities
that can be planned in advance and conducted systematically. The underlying motivation of
program testing is to affirm software quality with methods that can economically and effectively
apply to both strategic to both large and small-scale systems.
To verify that the system was working properly I did unit testing where I concentrated on each
unit of the software as implemented in source code.
Testing progressed to the integration testing where the focus was on the design and construction
of the software architecture. Validation testing focused on the requirements established as part of
software requirements analysis and were validated against the constructed software. Finally, the
system testing was done on the whole software.

Unit testing
Unit testing focused on the verification effort on small unit of software design, the module. In unit
testing the following tests were carried out;
i. White box testing
In this type of testing the specified function that a product has been designed to perform was tested
to demonstrate that each function was fully operation while removing any errors in the function.
This testing ensured that:

• All independent paths have been exercised at least once


• All logical decisions have been exercised on their true and false sides
• All loops are executed at their boundaries and within their operational bounds
• All internal data structures have been exercised to assure their validity.

63
To follow the concept of white box testing we have tested each form we have created
independently to verify that Data flow is correct. All conditions are exercised to check their
validity. All loops are executed on their boundaries.

ii. Conditional testing


In this part of the testing each of the conditions were tested to both true and false aspects. And all
the resulting paths were tested. So that each path that may be generate on particular condition is
traced to uncover any possible errors.

iii. Data flow testing


This type of testing selects the path of the program according to the location of definition and use
of variables. This kind of testing was used only when some local variables were declared. The
definition-use chain method was used in this type of testing. These were particularly useful in
nested statements.

iv. Loop testing


In this type of testing all the loops are tested to all the limits possible. The following exercise
was adopted for all loops:
• All the loops were tested at their limits, just above them and just below them.
• All the loops were skipped at least once.
• For nested loops test the inner most loop first and then work outwards.
• For concatenated loops the values of dependent loops were set with the help of connected loop.
• Unstructured loops were resolved into nested loops or concatenated loops and tested as above.

Each unit has been separately tested and all inputs have been validated.

64
4.3 IMPLEMENTATION
Implementation involves the process of integrating an information system into an organizational
context. In this phase, developed online application are installed on the web servers and integrated
with already deployed database management systems and communication software.
Implementation was based on three main aims:
1. To respond to growing competition with online banks as a competitive tool.
2. To offer convenience to customers to be able to access banking services without the need
for physical presence at the banks.
3. Decongest banking halls by directing customers from offline to online platforms.
In online banking, implementation is an ongoing process since organization system and business
environment undergo continual change and should keep pace.

65
= CHAPTER 5
CONCLUSION
We have designed and implemented an on-line banking web application, which is database-
driven web-based client-server system. This report documented in details the technology and
software used in the system, system requirements and analysis, design and implementation. The
system has been designed to exploit advanced software and modern technology including the use
of standard browser and secure database techniques which enable robustness and security. The
whole system functioned well and performed all tasks of banking activities during testing.
Internet banking can afford banks the opportunity to provide services through computer networks
and customers the opportunity to access services without physical contact with bank. It has been
considered as a portal for delivery and consumption of banking services
Further extension and upgrade are possible which may make the system offer the full range of
home banking activities through internet including stopping payments, reordering checks, credit
card service etc. The Internet explosion and the possibility of direct digital interaction with large
number of home consumers presents tremendous opportunity and challenges to most financial
institutions to serve the banks convenience-drive markets for banking services and to reduce the
business costs. With the speed with which the internet is widely accepted, online banking will e a
driving force for banks business. It gives the user the opportunity to do most bank transactions at
home, at office, or anywhere from a computer.
There are some major developments regarding the internet that will have a major impact on the
future of online banking services. High speed and broadband access of the internet will see to it
that there is broad bandwidth delivery as the banks will have full media capabilities another major
opportunity in the online delivery of financial services. Online banking is truly convenient to
customers.

5.1 Limitation of the system


Despite the system being able to provide quick and valuable information, I could not integrate all
the bank modules. Banks are evolving each and every day and modules being added each day, I
found it difficult to come up with a system that will be able to carry out all transactions while at
home.
This system could not be fully operational on a current banking system as it lacked some modules
like cheque, payment of fees, processing of payment receipts etc. Cash transactions and cheques
required direct contact to the banks premises so that they could be offered and processed.

66
67

You might also like