You are on page 1of 80

Online Banking System

A PROJECT REPORT
on

Online Banking System


Submitted in partial fullfillment for the award of
degree

of

Bachelor of Computer Application


Submitted By:

HANWATE SHITAL GANGADHAR


KACHAWAR SHARDA VIVEK

Under the guidance of

Mr. Sushant Bolwar

MGM’s
COLLEGE OF COMPUTER SCIENCE & IT
(Institute established in 2000 and affiliated to S.R.T.M University, Nanded)
MGM campus ,Near Airport,Nanded-431605(M.S)India

Affiliated to

Swami Ramanand Teerth Marathwada University,


Nanded-431606
2023-24

1
Online Banking System

MGM’s
COLLEGE OF COMPUTER SCIENCE & IT
(Institute established in 2000 and affiliated to S.R.T.M University, Nanded)
MGM campus,Near Airport,Nanded-431605(M.S)India

Certificate

This is to certify that the project entitled "Online Banking System" by

HANWATE SHITAL GANGADHAR ( ), KACHAWAR SHARDA VIVEK (

) submitted in partial fulfillment of the requirements for the award of degree of Bachelor of

Computer Application by Swami Ramanand Teerth Marathwa University, Nanded –

431606 during the academic year 2023-24, is a bonafide record of work carried out under my

guidance and supervision.

Mr. Sushant Bolwar

Guide

Dr.Mrs. Kanchan A. Nandedkar Prof. Shirish L. Kotgire

Head of Department Principal

Examinar-1 Examinar-2

2
Online Banking System

Declaration
We hereby declare that project entitled " Online Banking System " has been

completed in the Department of Computer Science & IT, MGM’s College of

Computer Science & IT, Nanded and Submitted to Swami Ramanand Teerth

Marathwada University Nanded, under the guidance of Mr. Sushant Bolwar for

the award of degree of Bachelor of Computer Application. This report

comprises only our original work and has not been submitted for award of any

other degree to any university. Due acknowledgement has been made in the text

to all other material used.

HANWATE SHITAGANGADHAR________
KACHAWAR SHARDA VIVEK _______

Date:
Place:Nanded

Acknowledgement
3
Online Banking System

Firstly, would like to take this opportunity to express my sincere gratitude towards
my guide Mr. Sushant Bolwar for his supervision & guidance and timely support
he give to us. I am also thankful to him for providing all basic knowledge about
the seminar.

It is my honar to thank principal, Prof. Kotgire S.L & Head of the Department Dr.
Mrs. Nandedkar K.A for giving me/us the opportunity to work on this project.
Finally, wish to acknowledge my deep gratitude towards my friends. At last would
like to thank my family for their support without which could not able to complete
this work.

HANWATE SHITAGANGADHAR
KACHAWAR SHARDA VIVEK

Date:
Place:Nanded

INDEX

4
Online Banking System

Sr. No. Contents Page

1. Cover Page 1

2. Certificate 2

3. Declaration 3

4. Acknowledgment 4

5. Index 5

6. Introduction of Project 6

7. List Of Figures 10

8. List of Tables 11

9 Abstract 12

10. Abbreviation 13

11. Data Flow Diagram ( DFD ) 15

12 Source code 16

13 Output 73

14 Conclusion 76

15 Reference 77

Bibliography
79

Introduction:

5
Online Banking System

Online banking, also known as internet banking, virtual banking, web banking or home
banking, is a system that enables customers of a bank or other financial institute to conduct a
range of financial transaction through the financial institution's website or mobile app. Since the
early 2000s this has become the most common way that customers access their bank accounts.
A simple project based on Internet Banking System which uses php language with MySQL
Database. The following PHP project contains all the top and essential features which can be in
use by second-year IT students for their college projects. It has a number of features that will
allow users to access internet banking services. Like creating bank accounts, managing
transactions, and much more. This web application’s concept is all clear. It’s the same as real-life
scenarios and well-implemented on it. To download the free Internet Banking System Project in
PHP MySQL with source code files, please scroll down to the bottom of this post for the
Download button.
In particular, this Online Banking System Project in PHP focuses mainly on online transactions,
accounts, and much more. To be more precise, the system helps to keep track of all customers’
information along with their transaction details. Also, the system displays all the available
analytics. In addition, the system allows adding up bank accounts too(codeastro.com). Evidently,
this project contains an admin panel with a customer panel. Highlighting the features of this
banking system project in PHP, it contains every feature for the management side of things. In an
overview of this web application, a customer can register themselves and log into the system. In
this project, customer registration does not mean opening/creating bank accounts. As that
particular portion of work is to be done manually using the system.

Customer Panel

Under the customer panel, the users can apply for banking accounts. Which allows them to use
the features of this online banking system. In order to open an account, he/she has to select the
type of account and name of the account. With this, the system automatically displays interest
rates depending on the user’s selection of account type. Also, the account numbers are generated
automatically(codeastro.com). In addition to that, one customer can have more than one bank
account for this online banking project. Each and every customer will have their own respective
dashboards that represent their overall records and analytics. Rest, the users can update, and
complete their profiles. And also update their passwords.

Finance Section

Speaking of finances, there are four different categories available for the users of this banking
system project. They are Deposits, Withdrawals, Transfers, and Balance inquiries. To deposit
some sum into existing accounts, the user first has to select any one of the existing bank
accounts. Then, he/she has to provide the total amount to be deposited and that’s it, that’s all we
have to do in order to manage deposit transactions. The procedures are the same for the
withdrawal as mentioned earlier. In order to transfer money, the user has to provide an amount
and select the account number of the customer. Here, the system automatically displays the name
of the customer’s account and account holder after selecting the receiver’s account
number(codeastro.com). With this, a user can easily transfer money to another account.

6
Online Banking System

The users can check their overall balance, the system lists out all the important details related to
it as well. Speaking of that, this section clearly shows the total amount deposited, withdrawn,
and transferred. Not just that, but this section works like a whole customer profile as it helps to
outline all the activities of the customer as well as his/her information. In addition to that, the
user can also print out their balance sheet.

Transaction History and Financial Reports

After all those finance portions, the system records each and every transaction. From the
transaction history section, the system lists all the detailed transactions. Speaking of detailed
history, the system shows all the details such as transaction code, account number, type, amount,
account holder, amount, date, and time. Regarding financial reports, it holds a number of
sections. That includes reports on withdrawals, deposits, and transfers. Under the withdrawal
reports section, the system lists a number of important details. Such as transaction codes, account
number, amount, account holder’s name, and timestamp. And the same goes for the deposits
section(codeastro.com). On the other side, the transfer section lists out sender and receiver’s
account, amount, and code with date and time. Additionally, all these sections have a quick
search function.

Admin Panel

An admin has full control over the system. He/she can manage customers, users, products, and
so on. Here, each and every section has its own respective details such as name, and other
important details. From the admin panel, an administrator can view overview figures of total
deposits, withdrawals, transfers, and wallet balances. On top of that, the system also generates
advanced analytics using pie charts. Speaking of that, the analytics highlight two sections,
accounts per account type and overall transactions. Also, the admin can view the latest
transactions within the banking services(codeastro.com). It includes a number of details such as
transaction code, account number, type, amount, account holder, and timestamp.

Staff and Client Management

Here, an admin can manage clients’ as well as staff members’ records directly by filling up the
required forms. During the staff registration, an admin has to provide details such as full name,
email, contact number, gender, and a picture. With these simple steps, the system allows the
users to create login details as well. Similarly, the administrator can also manage client members
for the system(codeastro.com). For adding a client member, the user has to provide a name,
contact, id number, email, address, and profile picture. Just like mentioned earlier, these simple
steps allow users to create login details as well. In addition to it, both of these sections do contain
search functionalities as well.

7
Online Banking System

Accounts Section

Talking about the accounts section, the administrator can add a number of account types and
manage them. Account type simply refers to the type of bank account services he/she prefers
using. So, in order to add a new account type, an admin has to provide the name of the account
along with its rates per year, and a description. With this, the system automatically generates a
new account category code for each and every account type before submission(codeastro.com).
In order to find records quickly, he/she can also make a search query. After setting up
everything, the administrator can also proceed toward the opening of a bank account for each
registered customer. From here, the user just has to select any one from the available account
type, and name and adjust the account number. This will result in the creation of an internet
banking account.

Notification and Finance

The administrator can also overlook the finance sections. Such as withdrawals, deposits, and
transfers of amounts from one customer to another. In fact, this portion works as a teller service
for a bank. Where the customer wants to deposit a certain amount onto another one and the
system user can easily complete the transactions. All further explanations are already mentioned
above so here it does not require repeating the same old thing again(codeastro.com). Moving
towards the notification section, the system displays/alerts the administrator regarding ongoing
system transactions and activities from the customers. The system users can simply click on the
notification/bell icon to view the latest activity from the customer and even delete it to mark it as
read.

Staff Panel

On the other hand, staff members can contribute to a number of processes in this whole flow of
the internet banking system. A staff member can view overall transactions made within the
banking services as well as total deposits, withdrawals, transfers, and bank accounts. In addition
to it, the system users can manage client members, bank accounts, and finances. All the steps of
the management are the same as mentioned above in the admin section. On top of that, the
employee members can view each account holder’s transaction history along with their financial
reports(codeastro.com). And also, the staff members can view notifications for all the system
activity just as mentioned ea

8
Online Banking System

Available Features:

 Admin Panel
 Staff Panel
 Customer Panel
 Account Management
 Activity Notifications
 Check Account Balance
 Print Account Balance
 Deposit Report
 Withdrawal Report
 Transfer Report
System Requirements:
• Hardware Requirements :

1. Laptop.
2. RAM: 512MB.
3. SSD : 40GB.
4. Processor: intel-5, 1GHZ.

• Software Requirements :

1. XAAMP Server.
2. Visual Studio Code.
3. Chrome Browser.
4. Windows ( Operating system )

• FRONTEND : HTML , CSS , JS etc.


• BACKEND : MYSQL , PHP.

9
Online Banking System

List Of Figures:

10
Online Banking System

List of table:
Database Table:

Data:

11
Online Banking System

ABSTRECT
It is for an online comprehensive solution to manage internet banking. This will be accessible
toall customers who have a valid user id and password. This system provides the following
facilities………

Balance enquiry

Funds transfer to another account in the same bank

Request for cheque book/change of address/stop payment of cheques.

Viewing monthly and annual statements In India, a number of banks have either gone
for Internet Banking or are on the verge of goingfor it. Internet Banking System I am talking
about is different from what was possible up to now- off line information or few limited services.
I am talking about the type that enables thecustomer to transact business on line in real time.

The Internet Banking System provides the facilities like Balance Enquiry, Funds transferto
another account in the same bank, Request for cheque book /change of address/stop paymentof
cheques and Viewing monthly and annual statements.

The Internet Banking System hasdeveloped a new security infrastructure for conducting
commerce on the Internet. The initiative,called BankID, aims to become a national ID
infrastructure supporting services such asauthentication and digital signatures for the entire
authentication population.

Many researchers expect rapid growth in customers using online banking products
andservices. The Internet Banking System allows customer contact through increased
geographicalreach and lower cost delivery channels.

Customers can reach a given institution from literallyanywhere in the world. Management must
understand the risks associated with The InternetBanking System before they make a decision to
develop a particular class of business

Abbreviation
12
Online Banking System

1. ACF - AutoCorrelation Function


2. AD - Authorised Dealer
3. ADB - Asian Development Bank
4. ADR - American Depository Receipt
5. BIS - Bank for International Settlements
6. BoP - Balance of Payments
7. BSCS - Basel Committee of Banking Supervision
8. BSR - Basic Statistical Returns
9. CAD - Capital Account Deficit
10. CAG - Controller and Auditor General of India
11. CRAR - Capital to Risk-Weighted Asset Ratio
12. CRR - Cash Reserve Ratio
13. CVC - Central Vigilance Commission
14. DBOD - Department of Banking Operations and Development
15. DCB - Demand Collection and Balance
16. DCCB - District Central Co-operative Bank
17. DCM, RBI - Department of Currency Management, RBI
18. DD - Demand Draft
19. EDMU - External Debt Management Unit
20. EEA - Exchange Equalization Account
21. EEC - European Economic Community
22. EEFC - Exchange Earners Foreign Currency
23. EFR - Exchange Fluctuation Reserve
24. EXIM Bank - Export Import Bank of India
25. FCA - Foreign Currency Assets
26. FCCB - Foreign Currency Convertible Bond
27. FCNRB(B) - Foreign Currency Non- resident (Banks)
28. FCNRA - Foreign Currency Non Resident Account
29. FCNRD - Foreign Currency Non Repatriable Deposit
30. FDI - Foreign Direct Investment
31. FEMA - Foreign Exchange Management Act
32. FI - Financial Institution
33. FICCI - Federation of Indian Chambers of Commerce and Industry
34. FII - Foreign Institutional Investor
35. GDP - Gross Domestic Product
36. GDR - Global Depository Receipt
37. G-Sec - Government Securities
38. IBRD - International Bank for Reconstruction and Development
39. IDRBT - Institute for Development and Research in Banking Technology
40. IEPF - Investors Education and Protection Fund
41. IFSC - Indian Financial System Code
42. IFC - Indian Financial Corporation
43. IFCI - Industrial Finance Corporation of India
44. IIBF - International Institute of Banking and Finance
45. IIBI - Industrial Investment Bank of India
46. IFC - International Finance Corporation
47. IFR - Investment Fluctuation Reserve
48. IIP - Index of Industrial Production
13
Online Banking System

49. IMF - International Monetary Fund


50. IP - Interest Payment
51. ISDA - International Swaps and Derivative Association
52. ISO - International Standards Organisation
53. NABARD - National Bank for Agriculture and Rural Development
54. NBFC - Non Banking Financial Companies
55. NEC - Not Elsewhere Classified
56. NEER - Nominal Effective Exchange Rate
57. NFA - Non Foreign Exchange Assets
58. NFD - Net Fiscal Deficit
59. NHB - National Housing Bank
60. NIF - Note Issuance Facility
61. NPA - Non Performing Assets
62. NPV - Net Present Value
63. NSSF - National Small Savings Fund
64. OD - Overdraft
65. OECD - Organisation for Economic Cooperation and Development
66. OLTAS - Online Tax Accounting System
67. PACS - Primary Agricultural Credit Societies
68. PD - Primary Deficit
69. RD - Revenue Deficit
70. RE - Revenue Expenditure
71. REER - Real Effective Exchange Rate
72. RIB - Resurgent India Bonds
73. RLA - Recoveries of Loans and Advancements
74. RTC - Repayment of Loans to Centre
75. RoC’s - Registrars of Companies
76. RR - Revenue Receipts
77. RRB - Regional Rural Bank
78. RTP - Reserve Tranche Position
79. RUF - Revolving Underwriting Facility
80. RWA - Risk Weighted Asset
81. SCARDB - State Co-operative Agriculture and Rural Development Bank
82. SCB - State Co-operative Bank
83. SCB - Scheduled Commerical Bank
84. SDDS - Special Data Dissemination Standards
85. SDR - Special Drawing Right
86. SEBI - Securities Exchange Board of India

14
Online Banking System

Data Flow Diagram:

Admin portal:

15
Online Banking System

Source code:

Index.php:
<?php
include("admin/conf/config.php");
/* Persisit System Settings On Brand */
$ret = "SELECT * FROM `iB_SystemSettings` ";
$stmt = $mysqli->prepare($ret);
$stmt->execute(); //ok
$res = $stmt->get_result();
while ($sys = $res->fetch_object()) {
?>
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title><?php echo $sys->sys_name; ?> - <?php echo $sys->sys_tagline; ?></title>
<link href="dist/css/robust.css" rel="stylesheet">
</head>

<body>

<nav class="navbar navbar-lg navbar-expand-lg navbar-transparant navbar-dark navbar-


absolute w-100">
<div class="container">
<a class="navbar-brand" href="index.php"><?php echo $sys->sys_name; ?></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-
target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-
label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarCollapse">


<ul class="navbar-nav ml-auto">
16
Online Banking System

<li class="nav-item active">


<a class="nav-link" target="_blank" href="admin/pages_index.php">Admin
Portal</a>
</li>
<li class="nav-item active">
<a class="nav-link" target="_blank" href="staff/pages_staff_index.php">Staff
Portal</a>
</li>
<li class="nav-item active">
<a class="nav-link" target="_blank"
href="client/pages_client_index.php">Client Portal</a>
</li>
</ul>
<a class="btn btn-danger" href="client/pages_client_signup.php"
target="_blank">Join Us</a>
</div>
</div>
</nav>

<div class="intro py-5 py-lg-9 position-relative text-white">


<div class="bg-overlay-gray">
<img src="dist/bg.webp" class="img-fluid img-cover"/>
</div>
<div class="intro-content py-6 text-center">
<div class="container">
<div class="row align-items-center">
<div class="col-12 col-sm-10 col-md-8 col-lg-6 mx-auto text-center">
<h1 class="my-3 display-4 d-none d-lg-inline-block"><?php echo $sys-
>sys_name; ?></h1>
<p class="lead mb-3">
<?php echo $sys->sys_tagline; ?>
</p>
<br>
<a class="btn btn-success btn-lg mr-lg-2 my-1" target="_blank"
href="client/pages_client_signup.php" role="button">Get started</a>
</div>
</div>
</div>
</div>
</div>
<script src="dist/js/bundle.js"></script>
</body>

17
Online Banking System

</html>
<?php
} ?>

Admin.php:
<?php
session_start();
include('conf/config.php'); //get configuration file
if (isset($_POST['login'])) {
$email = $_POST['email'];
$password = sha1(md5($_POST['password'])); //double encrypt to increase security
$stmt = $mysqli->prepare("SELECT email, password, admin_id FROM iB_admin WHERE
email=? AND password=?"); //sql to log in user
$stmt->bind_param('ss', $email, $password); //bind fetched parameters
$stmt->execute(); //execute bind
$stmt->bind_result($email, $password, $admin_id); //bind result
$rs = $stmt->fetch();
$_SESSION['admin_id'] = $admin_id; //assaign session to admin id
//$uip=$_SERVER['REMOTE_ADDR'];
//$ldate=date('d/m/Y h:i:s', time());
if ($rs) { //if its sucessfull
header("location:pages_dashboard.php");
} else {
#echo "<script>alert('Access Denied Please Check Your Credentials');</script>";
$err = "Access Denied Please Check Your Credentials";
}
}

/* Persisit System Settings On Brand */


$ret = "SELECT * FROM `iB_SystemSettings` ";
$stmt = $mysqli->prepare($ret);
$stmt->execute(); //ok
$res = $stmt->get_result();
while ($auth = $res->fetch_object()) {
?>
<!-- Log on to codeastro.com for more projects! -->
<!DOCTYPE html>
<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>

18
Online Banking System

<body class="hold-transition login-page">


<div class="login-box">
<div class="login-logo">
<p><?php echo $auth->sys_name; ?></p>
</div>
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Log In To Start Adminstrator Session</p>

<form method="post">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control" placeholder="Email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" name="password" class="form-control"
placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-4">
<div class="icheck-primary">
<!-- <input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label> -->
</div>
</div>
<!-- /.col -->
<div class="col-8">
<button type="submit" name="login" class="btn btn-danger btn-block">Log In as
Admin</button>
</div>
<!-- /.col -->
19
Online Banking System

</div>
</form>

<!-- /.social-auth-links -->

<!-- <p class="mb-1">


<a href="pages_reset_pwd.php">I forgot my password</a>
</p> -->
<!--
Uncomment this line to allow account creations for admins

<p class="mb-0">
<a href="pages_signup.php" class="text-center">Register a new membership</a>
</p>
-->
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->

<!-- jQuery -->


<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>

</body>

</html>
<?php
} ?>

Admindashboard.php:

<?php
session_start();
include('conf/config.php');
include('conf/checklogin.php');
check_login();
20
Online Banking System

$admin_id = $_SESSION['admin_id'];

//clear notifications and alert user that they are cleared


if (isset($_GET['Clear_Notifications'])) {
$id = intval($_GET['Clear_Notifications']);
$adn = "DELETE FROM iB_notifications WHERE notification_id = ?";
$stmt = $mysqli->prepare($adn);
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->close();

if ($stmt) {
$info = "Notifications Cleared";
} else {
$err = "Try Again Later";
}
}
/*
get all dashboard analytics
and numeric values from distinct
tables
*/

//return total number of ibank clients


$result = "SELECT count(*) FROM iB_clients";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iBClients);
$stmt->fetch();
$stmt->close();

//return total number of iBank Staffs


$result = "SELECT count(*) FROM iB_staff";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iBStaffs);
$stmt->fetch();
$stmt->close();

//return total number of iBank Account Types


$result = "SELECT count(*) FROM iB_Acc_types";
$stmt = $mysqli->prepare($result);
$stmt->execute();
21
Online Banking System

$stmt->bind_result($iB_AccsType);
$stmt->fetch();
$stmt->close();

//return total number of iBank Accounts


$result = "SELECT count(*) FROM iB_bankAccounts";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_Accs);
$stmt->fetch();
$stmt->close();

//return total number of iBank Deposits


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE tr_type = 'Deposit'
";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_deposits);
$stmt->fetch();
$stmt->close();

//return total number of iBank Withdrawals


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE tr_type =
'Withdrawal' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_withdrawal);
$stmt->fetch();
$stmt->close();

//return total number of iBank Transfers


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE tr_type = 'Transfer'
";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_Transfers);
$stmt->fetch();
$stmt->close();

//return total number of iBank initial cash->balances


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions ";
22
Online Banking System

$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($acc_amt);
$stmt->fetch();
$stmt->close();
//Get the remaining money in the accounts
$TotalBalInAccount = ($iB_deposits) - (($iB_withdrawal) + ($iB_Transfers));

//ibank money in the wallet


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($new_amt);
$stmt->fetch();
$stmt->close();
//Withdrawal Computations

?>
<!-- Log on to codeastro.com for more projects! -->
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>

<body class="hold-transition sidebar-mini layout-fixed layout-navbar-fixed">

<div class="wrapper">
<!-- Navbar -->
<?php include("dist/_partials/nav.php"); ?>
<!-- /.navbar -->

<!-- Main Sidebar Container -->


<?php include("dist/_partials/sidebar.php"); ?>

<!-- Content Wrapper. Contains page content -->


<div class="content-wrapper">
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark">Admin Dashboard</h1>
23
Online Banking System

</div><!-- /.col -->


<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->

<!-- Main content -->


<section class="content">
<div class="container-fluid">
<!-- Info boxes -->
<div class="row">

<!-- ./ iBank Clients -->


<div class="col-12 col-sm-6 col-md-3">
<div class="info-box">
<span class="info-box-icon bg-info elevation-1"><i class="fas fa-users"></i></span>
<div class="info-box-content">
<span class="info-box-text">Clients</span>
<span class="info-box-number">
<?php echo $iBClients; ?>
</span>
</div>
</div>
</div>
<!-- ./ iBank Clients -->

<!--iBank Staffs-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-danger elevation-1"><i class="fas
fa-user-tie"></i></span>

<div class="info-box-content">
<span class="info-box-text">Staffs</span>
<span class="info-box-number">
<?php echo $iBStaffs; ?>
</span>
24
Online Banking System

</div>
</div>
</div>
<!-- ./ iBank Staffs-->

<!-- fix for small devices only -->


<div class="clearfix hidden-md-up"></div>

<!--Ibank Acc types-->


<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-success elevation-1"><i class="fas
fa-briefcase"></i></span>
<div class="info-box-content">
<span class="info-box-text">Account Types</span>
<span class="info-box-number"><?php echo $iB_AccsType; ?></span>
</div>
</div>
</div>
<!-- /.iBank Acc types -->

<!--iBank Accounts-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-purple elevation-1"><i class="fas
fa-users"></i></span>
<div class="info-box-content">
<span class="info-box-text">Accounts</span>
<span class="info-box-number"><?php echo $iB_Accs; ?></span>
</div>
</div>
</div>
<!-- iBank Acc-->
</div>

<div class="row">
<!--iBank Deposits -->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box">
<span class="info-box-icon bg-info elevation-1"><i class="fas fa-upload"></i></span>
<div class="info-box-content">
<span class="info-box-text">Deposits</span>
<span class="info-box-number">
25
Online Banking System

$ <?php echo $iB_deposits; ?>


</span>
</div>
</div>
</div>
<!----./ iBank Deposits-->

<!--iBank Withdrwals-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-danger elevation-1"><i class="fas
fa-download"></i></span>

<div class="info-box-content">
<span class="info-box-text">Withdrawals</span>
<span class="info-box-number">$ <?php echo $iB_withdrawal; ?> </span>
</div>
</div>
</div>
<!-- Withdrawals-->

<!-- fix for small devices only -->


<div class="clearfix hidden-md-up"></div>

<!--Transfers-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-success elevation-1"><i class="fas
fa-random"></i></span>
<div class="info-box-content">
<span class="info-box-text">Transfers</span>
<span class="info-box-number">$ <?php echo $iB_Transfers; ?></span>
</div>
</div>
</div>
<!-- /.Transfers-->

<!--Balances-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-purple elevation-1"><i class="fas fa-money-bill-
alt"></i></span>
<div class="info-box-content">
26
Online Banking System

<span class="info-box-text">Wallet Balance</span>


<span class="info-box-number">$ <?php echo $TotalBalInAccount; ?></span>
</div>
</div>
</div>
<!-- ./Balances-->
</div><!-- Log on to codeastro.com for more projects! -->

<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h5 class="card-title">Advanced Analytics</h5>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="chart">
<!-- Transaction Donought chart Canvas -->
<div id="PieChart" class="col-md-6" style="height: 400px; max-width: 500px;
margin: 0px auto;"></div>
</div>
<!-- /.chart-responsive -->
</div>
<hr>
<div class="col-md-6">
<div class="chart">
<div id="AccountsPerAccountCategories" class="col-md-6" style="height: 400px;
max-width: 500px; margin: 0px auto;"></div>
</div>
<!-- /.chart-responsive -->
</div>

<!-- /.col -->


27
Online Banking System

</div>
<!-- /.row -->
</div>
<!-- ./card-body -->
<div class="card-footer">
<div class="row">
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_deposits; ?></h5>
<span class="description-text">TOTAL DEPOSITS</span>
</div>
<!-- /.description-block -->
</div><!-- Log on to codeastro.com for more projects! -->
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_withdrawal; ?></h5>
<span class="description-text">TOTAL WITHDRAWALS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_Transfers; ?> </h5>
<span class="description-text">TOTAL TRANSFERS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block">
<h5 class="description-header">$ <?php echo $TotalBalInAccount; ?> </h5>
<span class="description-text">TOTAL MONEY IN Account</span>
</div>
<!-- /.description-block -->
</div>
</div>
<!-- /.row -->
</div>
<!-- /.card-footer -->
</div>
<!-- /.card -->
28
Online Banking System

</div>
<!-- /.col -->
</div>
<!-- /.row -->

<!-- Main row -->


<div class="row"><!-- Log on to codeastro.com for more projects! -->
<!-- Left col -->
<div class="col-md-12">
<!-- TABLE: Transactions -->
<div class="card">
<div class="card-header border-transparent">
<h3 class="card-title">Latest Transactions</h3>

<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<!-- /.card-header -->
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover table-bordered table-striped m-0">
<thead>
<tr>
<th>Transaction Code</th>
<th>Account No.</th>
<th>Type</th>
<th>Amount</th>
<th>Acc. Owner</th>
<th>Timestamp</th>
</tr>
</thead>
<tbody><!-- Log on to codeastro.com for more projects! -->
<?php
//Get latest transactions
$ret = "SELECT * FROM `iB_Transactions` ORDER BY
`iB_Transactions`.`created_at` DESC ";
$stmt = $mysqli->prepare($ret);
29
Online Banking System

$stmt->execute(); //ok
$res = $stmt->get_result();
$cnt = 1;
while ($row = $res->fetch_object()) {
/* Trim Transaction Timestamp to
* User Uderstandable Formart DD-MM-YYYY :
*/
$transTstamp = $row->created_at;
//Perfom some lil magic here
if ($row->tr_type == 'Deposit') {
$alertClass = "<span class='badge badge-success'>$row->tr_type</span>";
} elseif ($row->tr_type == 'Withdrawal') {
$alertClass = "<span class='badge badge-danger'>$row->tr_type</span>";
} else {
$alertClass = "<span class='badge badge-warning'>$row->tr_type</span>";
}
?>
<tr>
<td><?php echo $row->tr_code; ?></a></td>
<td><?php echo $row->account_number; ?></td>
<td><?php echo $alertClass; ?></td>
<td>$ <?php echo $row->transaction_amt; ?></td>
<td><?php echo $row->client_name; ?></td>
<td><?php echo date("d-M-Y h:m:s ", strtotime($transTstamp)); ?></td>
</tr>

<?php } ?>

</tbody>
</table>
</div>
<!-- /.table-responsive -->
</div>
<!-- /.card-body -->
<div class="card-footer clearfix">
<a href="pages_transactions_engine.php" class="btn btn-sm btn-info float-left">View
All</a>
</div>
<!-- /.card-footer -->
</div>
<!-- /.card -->
</div>
<!-- /.col -->
30
Online Banking System

</div>
<!-- /.row -->
</div>
<!--/. container-fluid -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->

<!-- Control Sidebar -->


<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->

<!-- Main Footer -->


<?php include("dist/_partials/footer.php"); ?>

</div>
<!-- ./wrapper -->

<!-- REQUIRED SCRIPTS -->


<!-- jQuery -->
<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- overlayScrollbars -->
<script src="plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.js"></script>

<!-- OPTIONAL SCRIPTS -->


<script src="dist/js/demo.js"></script>

<!-- PAGE PLUGINS -->


<!-- jQuery Mapael -->
<script src="plugins/jquery-mousewheel/jquery.mousewheel.js"></script>
<script src="plugins/raphael/raphael.min.js"></script>
<script src="plugins/jquery-mapael/jquery.mapael.min.js"></script>
<script src="plugins/jquery-mapael/maps/usa_states.min.js"></script>
<!-- ChartJS -->
<script src="plugins/chart.js/Chart.min.js"></script>

31
Online Banking System

<!-- PAGE SCRIPTS -->


<script src="dist/js/pages/dashboard2.js"></script>

<!--Load Canvas JS -->


<script src="plugins/canvasjs.min.js"></script>
<!--Load Few Charts-->
<script>
window.onload = function() {

var Piechart = new CanvasJS.Chart("PieChart", {


exportEnabled: false,
animationEnabled: true,
title: {
text: "Accounts Per Acc Types "
},
legend: {
cursor: "pointer",
itemclick: explodePie
},
data: [{
type: "pie",
showInLegend: true,
toolTipContent: "{name}: <strong>{y}%</strong>",
indexLabel: "{name} - {y}%",
dataPoints: [{
y: <?php
//return total number of accounts opened under savings acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Savings'
";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($savings);
$stmt->fetch();
$stmt->close();
echo $savings;
?>,
name: "Savings Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Retirement acc type
32
Online Banking System

$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='


Retirement' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Retirement);
$stmt->fetch();
$stmt->close();
echo $Retirement;
?>,
name: " Retirement Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Recurring deposit acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type
='Recurring deposit' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Recurring);
$stmt->fetch();
$stmt->close();
echo $Recurring;
?>,
name: "Recurring deposit Acc ",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Fixed Deposit Account deposit acc
type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Fixed
Deposit Account' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Fixed);
$stmt->fetch();
$stmt->close();
echo $Fixed;
?>,
name: "Fixed Deposit Acc",
33
Online Banking System

exploded: true
},

{
y: <?php
//return total number of accounts opened under Current account deposit acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Current
account' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Current);
$stmt->fetch();
$stmt->close();
echo $Current;
?>,
name: "Current Acc",
exploded: true
}
]
}]
});

var AccChart = new CanvasJS.Chart("AccountsPerAccountCategories", {


exportEnabled: false,
animationEnabled: true,
title: {
text: "Transactions"
},
legend: {
cursor: "pointer",
itemclick: explodePie
},
data: [{
type: "pie",
showInLegend: true,
toolTipContent: "{name}: <strong>{y}%</strong>",
indexLabel: "{name} - {y}%",
dataPoints: [{
y: <?php
//return total number of transactions under Withdrawals
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Withdrawal'
";
$stmt = $mysqli->prepare($result);
34
Online Banking System

$stmt->execute();
$stmt->bind_result($Withdrawals);
$stmt->fetch();
$stmt->close();
echo $Withdrawals;
?>,
name: "Withdrawals",
exploded: true
},

{
y: <?php
//return total number of transactions under Deposits
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Deposit' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Deposits);
$stmt->fetch();
$stmt->close();
echo $Deposits;
?>,
name: "Deposits",
exploded: true
},

{
y: <?php
//return total number of transactions under Deposits
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Transfer' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Transfers);
$stmt->fetch();
$stmt->close();
echo $Transfers;
?>,
name: "Transfers",
exploded: true
}

]
}]
});
35
Online Banking System

Piechart.render();
AccChart.render();
}

function explodePie(e) {
if (typeof(e.dataSeries.dataPoints[e.dataPointIndex].exploded) === "undefined" || !
e.dataSeries.dataPoints[e.dataPointIndex].exploded) {
e.dataSeries.dataPoints[e.dataPointIndex].exploded = true;
} else {
e.dataSeries.dataPoints[e.dataPointIndex].exploded = false;
}
e.chart.render();

}
</script>

</body>

</html>

Staff.php:
<?php
session_start();
include('conf/config.php'); //get configuration file
if (isset($_POST['login'])) {
$email = $_POST['email'];
$password = sha1(md5($_POST['password'])); //double encrypt to increase security
$stmt = $mysqli->prepare("SELECT email, password, staff_id FROM iB_staff WHERE
email=? AND password=?"); //sql to log in user
$stmt->bind_param('ss', $email, $password); //bind fetched parameters
$stmt->execute(); //execute bind
$stmt->bind_result($email, $password, $staff_id); //bind result
$rs = $stmt->fetch();
$_SESSION['staff_id'] = $staff_id; //assaign session to staff id
//$uip=$_SERVER['REMOTE_ADDR'];
//$ldate=date('d/m/Y h:i:s', time());
if ($rs) { //if its sucessfull
header("location:pages_dashboard.php");
} else {
36
Online Banking System

#echo "<script>alert('Access Denied Please Check Your Credentials');</script>";


$err = "Access Denied Please Check Your Credentials";
}
}

/* Persisit System Settings On Brand */


$ret = "SELECT * FROM `iB_SystemSettings` ";
$stmt = $mysqli->prepare($ret);
$stmt->execute(); //ok
$res = $stmt->get_result();
while ($auth = $res->fetch_object()) {
?>
<!DOCTYPE html>
<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>

<body class="hold-transition login-page">


<div class="login-box">
<div class="login-logo">
<p><?php echo $auth->sys_name; ?></p>
</div>
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Log In To Start Staff Session</p>

<form method="post">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control" placeholder="Email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" name="password" class="form-control"
placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
37
Online Banking System

</div>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" name="login" class="btn btn-success btn-block">Log
In</button>
</div>
<!-- /.col -->
</div>
</form>

<!-- /.social-auth-links -->

<!-- <p class="mb-1">


<a href="pages_reset_pwd.php">I forgot my password</a>
</p> -->
<!--
Uncomment this line to allow account creations for admins

<p class="mb-0">
<a href="pages_signup.php" class="text-center">Register a new membership</a>
</p>
-->
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->

<!-- jQuery -->


<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
38
Online Banking System

<!-- AdminLTE App -->


<script src="dist/js/adminlte.min.js"></script>

</body>

</html>
<?php
} ?>

StaffDashboard.php:

<?php
session_start();
include('conf/config.php');
include('conf/checklogin.php');
check_login();
$staff_id = $_SESSION['staff_id'];

//clear notifications and alert user that they are cleared


if (isset($_GET['Clear_Notifications'])) {
$id = intval($_GET['Clear_Notifications']);
$adn = "DELETE FROM iB_notifications WHERE notification_id = ?";
$stmt = $mysqli->prepare($adn);
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->close();

if ($stmt) {
$info = "Notifications Cleared";
} else {
$err = "Try Again Later";
}
}
/*
get all dashboard analytics
and numeric values from distinct
tables
*/

//return total number of ibank clients


$result = "SELECT count(*) FROM iB_clients";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iBClients);
$stmt->fetch();
39
Online Banking System

$stmt->close();

//return total number of iBank Staffs


$result = "SELECT count(*) FROM iB_staff";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iBStaffs);
$stmt->fetch();
$stmt->close();

//return total number of iBank Account Types


$result = "SELECT count(*) FROM iB_Acc_types";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_AccsType);
$stmt->fetch();
$stmt->close();

//return total number of iBank Accounts


$result = "SELECT count(*) FROM iB_bankAccounts";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_Accs);
$stmt->fetch();
$stmt->close();

//return total number of iBank Deposits


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE tr_type = 'Deposit'
";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_deposits);
$stmt->fetch();
$stmt->close();

//return total number of iBank Withdrawals


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE tr_type =
'Withdrawal' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_withdrawal);
$stmt->fetch();
$stmt->close();

//return total number of iBank Transfers

40
Online Banking System

$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE tr_type = 'Transfer'


";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_Transfers);
$stmt->fetch();
$stmt->close();

//return total number of iBank initial cash->balances


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($acc_amt);
$stmt->fetch();
$stmt->close();
//Get the remaining money in the accounts
$TotalBalInAccount = ($iB_deposits) - (($iB_withdrawal) + ($iB_Transfers));

//ibank money in the wallet


$result = "SELECT SUM(transaction_amt) FROM iB_Transactions ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($new_amt);
$stmt->fetch();
$stmt->close();
//Withdrawal Computations

?>
<!-- Log on to codeastro.com for more projects! -->
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>

<body class="hold-transition sidebar-mini layout-fixed layout-navbar-fixed">

<div class="wrapper">
<!-- Navbar -->
<?php include("dist/_partials/nav.php"); ?>
<!-- /.navbar -->

<!-- Main Sidebar Container -->


<?php include("dist/_partials/sidebar.php"); ?>

<!-- Content Wrapper. Contains page content -->


<div class="content-wrapper">
<!-- Content Header (Page header) -->
41
Online Banking System

<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark">Staff Dashboard</h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->

<!-- Main content -->


<section class="content">
<div class="container-fluid">
<!-- Info boxes -->
<div class="row">

<!-- ./ iBank Clients -->


<div class="col-12 col-sm-6 col-md-4">
<div class="info-box">
<span class="info-box-icon bg-info elevation-1"><i class="fas fa-users"></i></span>
<div class="info-box-content">
<span class="info-box-text"> Clients</span>
<span class="info-box-number">
<?php echo $iBClients; ?>
</span>
</div>
</div>
</div>
<!-- ./ iBank Clients -->

<!-- fix for small devices only -->


<div class="clearfix hidden-md-up"></div>

<!--Ibank Acc types-->


<div class="col-12 col-sm-6 col-md-4">
<div class="info-box mb-3">
<span class="info-box-icon bg-success elevation-1"><i class="fas
fa-briefcase"></i></span>
<div class="info-box-content">
<span class="info-box-text"> Account Types</span>
<span class="info-box-number"><?php echo $iB_AccsType; ?></span>
42
Online Banking System

</div>
</div>
</div>
<!-- /.iBank Acc types -->

<!--iBank Accounts-->
<div class="col-12 col-sm-6 col-md-4">
<div class="info-box mb-3">
<span class="info-box-icon bg-purple elevation-1"><i class="fas
fa-users"></i></span>
<div class="info-box-content">
<span class="info-box-text"> Accounts</span>
<span class="info-box-number"><?php echo $iB_Accs; ?></span>
</div>
</div>
</div>
<!-- iBank Acc-->
</div>

<div class="row">
<!--iBank Deposits -->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box">
<span class="info-box-icon bg-info elevation-1"><i class="fas fa-upload"></i></span>
<div class="info-box-content">
<span class="info-box-text"> Deposits</span>
<span class="info-box-number">
$ <?php echo $iB_deposits; ?>
</span>
</div>
</div>
</div>
<!----./ iBank Deposits-->

<!--iBank Withdrwals-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-danger elevation-1"><i class="fas
fa-download"></i></span>

<div class="info-box-content">
<span class="info-box-text">Withdrawals</span>
<span class="info-box-number">$ <?php echo $iB_withdrawal; ?> </span>
</div>
</div>
</div>
<!-- Withdrawals-->

43
Online Banking System

<!-- fix for small devices only -->


<div class="clearfix hidden-md-up"></div>

<!--Transfers-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-success elevation-1"><i class="fas
fa-random"></i></span>
<div class="info-box-content">
<span class="info-box-text">Transfers</span>
<span class="info-box-number">$ <?php echo $iB_Transfers; ?></span>
</div>
</div>
</div>
<!-- /.Transfers-->

<!--Balances-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-purple elevation-1"><i class="fas fa-money-bill-
alt"></i></span>
<div class="info-box-content">
<span class="info-box-text">Wallet Balance</span>
<span class="info-box-number">$ <?php echo $TotalBalInAccount; ?></span>
</div>
</div>
</div>
<!-- ./Balances-->
</div>

<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h5 class="card-title">Advanced Analytics</h5>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div><!-- Log on to codeastro.com for more projects! -->
<!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-6">
44
Online Banking System

<div class="chart">
<!-- Transaction Donought chart Canvas -->
<div id="PieChart" class="col-md-6" style="height: 400px; max-width: 500px;
margin: 0px auto;"></div>
</div>
<!-- /.chart-responsive -->
</div>
<hr>
<div class="col-md-6">
<div class="chart">
<div id="AccountsPerAccountCategories" class="col-md-6" style="height: 400px;
max-width: 500px; margin: 0px auto;"></div>
</div>
<!-- /.chart-responsive -->
</div>

<!-- /.col -->


</div>
<!-- /.row -->
</div>
<!-- ./card-body -->
<div class="card-footer">
<div class="row">
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_deposits; ?></h5>
<span class="description-text">TOTAL DEPOSITS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_withdrawal; ?></h5>
<span class="description-text">TOTAL WITHDRAWALS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_Transfers; ?> </h5>
<span class="description-text">TOTAL TRANSFERS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
45
Online Banking System

<div class="description-block">
<h5 class="description-header">$ <?php echo $TotalBalInAccount; ?> </h5>
<span class="description-text">TOTAL MONEY IN iBANK Account</span>
</div>
<!-- /.description-block -->
</div>
</div>
<!-- /.row -->
</div>
<!-- /.card-footer -->
</div>
<!-- /.card -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->

<!-- Main row -->


<div class="row">
<!-- Left col -->
<div class="col-md-12">
<!-- TABLE: Transactions -->
<div class="card">
<div class="card-header border-transparent">
<h3 class="card-title">Latest Transactions</h3>

<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div><!-- Log on to codeastro.com for more projects! -->
<!-- /.card-header -->
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover table-bordered m-0">
<thead>
<tr>
<th>Transaction Code</th>
<th>Account No.</th>
<th>Type</th>
<th>Amount</th>
<th>Acc. Owner</th>
<th>Timestamp</th>
</tr>
46
Online Banking System

</thead>
<tbody>
<?php
//Get latest transactions
$ret = "SELECT * FROM `iB_Transactions` ORDER BY
`iB_Transactions`.`created_at` DESC ";
$stmt = $mysqli->prepare($ret);
$stmt->execute(); //ok
$res = $stmt->get_result();
$cnt = 1;
while ($row = $res->fetch_object()) {
/* Trim Transaction Timestamp to
* User Uderstandable Formart DD-MM-YYYY :
*/
$transTstamp = $row->created_at;
//Perfom some lil magic here
if ($row->tr_type == 'Deposit') {
$alertClass = "<span class='badge badge-success'>$row->tr_type</span>";
} elseif ($row->tr_type == 'Withdrawal') {
$alertClass = "<span class='badge badge-danger'>$row->tr_type</span>";
} else {
$alertClass = "<span class='badge badge-warning'>$row->tr_type</span>";
}
?>
<tr>
<td><?php echo $row->tr_code; ?></a></td>
<td><?php echo $row->account_number; ?></td>
<td><?php echo $alertClass; ?></td>
<td>$ <?php echo $row->transaction_amt; ?></td>
<td><?php echo $row->client_name; ?></td>
<td><?php echo date("d-M-Y h:m:s ", strtotime($transTstamp)); ?></td>
</tr>

<?php } ?>

</tbody>
</table>
</div><!-- Log on to codeastro.com for more projects! -->
<!-- /.table-responsive -->
</div>
<!-- /.card-body -->
<div class="card-footer clearfix">
<a href="pages_transactions_engine.php" class="btn btn-sm btn-info float-left">View
All</a>
</div>
<!-- /.card-footer -->
</div>
<!-- /.card -->
47
Online Banking System

</div>
<!-- /.col -->
</div>
<!-- /.row -->
</div>
<!--/. container-fluid -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->

<!-- Control Sidebar -->


<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->

<!-- Main Footer -->


<?php include("dist/_partials/footer.php"); ?>

</div>
<!-- ./wrapper -->

<!-- REQUIRED SCRIPTS -->


<!-- jQuery -->
<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- overlayScrollbars -->
<script src="plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.js"></script>

<!-- OPTIONAL SCRIPTS -->


<script src="dist/js/demo.js"></script>

<!-- PAGE PLUGINS -->


<!-- jQuery Mapael -->
<script src="plugins/jquery-mousewheel/jquery.mousewheel.js"></script>
<script src="plugins/raphael/raphael.min.js"></script>
<script src="plugins/jquery-mapael/jquery.mapael.min.js"></script>
<script src="plugins/jquery-mapael/maps/usa_states.min.js"></script>
<!-- ChartJS -->
<script src="plugins/chart.js/Chart.min.js"></script>

<!-- PAGE SCRIPTS -->


<script src="dist/js/pages/dashboard2.js"></script>

48
Online Banking System

<!--Load Canvas JS -->


<script src="plugins/canvasjs.min.js"></script>
<!--Load Few Charts-->
<script>
window.onload = function() {

var Piechart = new CanvasJS.Chart("PieChart", {


exportEnabled: false,
animationEnabled: true,
title: {
text: "Accounts Per Acc Types "
},
legend: {
cursor: "pointer",
itemclick: explodePie
},
data: [{
type: "pie",
showInLegend: true,
toolTipContent: "{name}: <strong>{y}%</strong>",
indexLabel: "{name} - {y}%",
dataPoints: [{
y: <?php
//return total number of accounts opened under savings acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type
='Savings'";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($savings);
$stmt->fetch();
$stmt->close();
echo $savings;
?>,
name: "Savings Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Retirement acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='
Retirement' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Retirement);
$stmt->fetch();
$stmt->close();
echo $Retirement;
49
Online Banking System

?>,
name: " Retirement Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Recurring deposit acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type
='Recurring deposit' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Recurring);
$stmt->fetch();
$stmt->close();
echo $Recurring;
?>,
name: "Recurring deposit Acc ",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Fixed Deposit Account deposit acc
type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Fixed
Deposit Account' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Fixed);
$stmt->fetch();
$stmt->close();
echo $Fixed;
?>,
name: "Fixed Deposit Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Current account deposit acc type
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Current
account' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Current);
$stmt->fetch();
$stmt->close();
50
Online Banking System

echo $Current;
?>,
name: "Current Acc",
exploded: true
}
]
}]
});

var AccChart = new CanvasJS.Chart("AccountsPerAccountCategories", {


exportEnabled: false,
animationEnabled: true,
title: {
text: "Transactions"
},
legend: {
cursor: "pointer",
itemclick: explodePie
},
data: [{
type: "pie",
showInLegend: true,
toolTipContent: "{name}: <strong>{y}%</strong>",
indexLabel: "{name} - {y}%",
dataPoints: [{
y: <?php
//return total number of transactions under Withdrawals
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Withdrawal'
";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Withdrawals);
$stmt->fetch();
$stmt->close();
echo $Withdrawals;
?>,
name: "Withdrawals",
exploded: true
},

{
y: <?php
//return total number of transactions under Deposits
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Deposit' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Deposits);
$stmt->fetch();
51
Online Banking System

$stmt->close();
echo $Deposits;
?>,
name: "Deposits",
exploded: true
},

{
y: <?php
//return total number of transactions under Deposits
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Transfer' ";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($Transfers);
$stmt->fetch();
$stmt->close();
echo $Transfers;
?>,
name: "Transfers",
exploded: true
}

]
}]
});
Piechart.render();
AccChart.render();
}

function explodePie(e) {
if (typeof(e.dataSeries.dataPoints[e.dataPointIndex].exploded) === "undefined" || !
e.dataSeries.dataPoints[e.dataPointIndex].exploded) {
e.dataSeries.dataPoints[e.dataPointIndex].exploded = true;
} else {
e.dataSeries.dataPoints[e.dataPointIndex].exploded = false;
}
e.chart.render();

}
</script>

</body>

</html>

Client.php:
52
Online Banking System

<?php
session_start();
include('conf/config.php'); //get configuration file
if (isset($_POST['login'])) {
$email = $_POST['email'];
$password = sha1(md5($_POST['password'])); //double encrypt to increase security
$stmt = $mysqli->prepare("SELECT email, password, client_id FROM iB_clients WHERE
email=? AND password=?"); //sql to log in user
$stmt->bind_param('ss', $email, $password); //bind fetched parameters
$stmt->execute(); //execute bind
$stmt->bind_result($email, $password, $client_id); //bind result
$rs = $stmt->fetch();
$_SESSION['client_id'] = $client_id; //assaign session toc lient id
//$uip=$_SERVER['REMOTE_ADDR'];
//$ldate=date('d/m/Y h:i:s', time());
if ($rs) { //if its sucessfull
header("location:pages_dashboard.php");
} else {
#echo "<script>alert('Access Denied Please Check Your Credentials');</script>";
$err = "Access Denied Please Check Your Credentials";
}
}
/* Persisit System Settings On Brand */
$ret = "SELECT * FROM `iB_SystemSettings` ";
$stmt = $mysqli->prepare($ret);
$stmt->execute(); //ok
$res = $stmt->get_result();
while ($auth = $res->fetch_object()) {
?>
<!DOCTYPE html>
<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<p><?php echo $auth->sys_name; ?></p>
</div><!-- Log on to codeastro.com for more projects! -->
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Log In To Start Client Session</p>

53
Online Banking System

<form method="post">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control" placeholder="Email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" name="password" class="form-control"
placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" name="login" class="btn btn-success btn-block">Log
In</button>
</div>
<!-- /.col -->
</div>
</form>

<!-- /.social-auth-links -->

<!-- <p class="mb-1">


<a href="pages_reset_pwd.php">I forgot my password</a>
</p> -->

54
Online Banking System

<p class="mb-0">
<a href="pages_client_signup.php" class="text-center">Register a new account</a>
</p><!-- Log on to codeastro.com for more projects! -->

</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->

<!-- jQuery -->


<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>

</body>

</html>
<?php
} ?>

ClientDashboard.php:

<?php
session_start();
include('conf/config.php');
include('conf/checklogin.php');
check_login();
$client_id = $_SESSION['client_id'];

/*
get all dashboard analytics
and numeric values from distinct
tables
*/

//return total number of ibank clients


$result = "SELECT count(*) FROM iB_clients";
$stmt = $mysqli->prepare($result);
$stmt->execute();

55
Online Banking System

$stmt->bind_result($iBClients);
$stmt->fetch();
$stmt->close();

//return total number of iBank Staffs


$result = "SELECT count(*) FROM iB_staff";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iBStaffs);
$stmt->fetch();
$stmt->close();

//return total number of iBank Account Types


$result = "SELECT count(*) FROM iB_Acc_types";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_AccsType);
$stmt->fetch();
$stmt->close();

//return total number of iBank Accounts


$result = "SELECT count(*) FROM iB_bankAccounts";
$stmt = $mysqli->prepare($result);
$stmt->execute();
$stmt->bind_result($iB_Accs);
$stmt->fetch();
$stmt->close();

//return total number of iBank Deposits


$client_id = $_SESSION['client_id'];
$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE client_id = ? AND
tr_type = 'Deposit' ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($iB_deposits);
$stmt->fetch();
$stmt->close();

//return total number of iBank Withdrawals


$client_id = $_SESSION['client_id'];
$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE client_id = ? AND
tr_type = 'Withdrawal' ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($iB_withdrawal);
$stmt->fetch();
56
Online Banking System

$stmt->close();

//return total number of iBank Transfers


$client_id = $_SESSION['client_id'];
$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE client_id = ? AND
tr_type = 'Transfer' ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($iB_Transfers);
$stmt->fetch();
$stmt->close();

//return total number of iBank initial cash->balances


$client_id = $_SESSION['client_id'];
$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE client_id =?";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($acc_amt);
$stmt->fetch();
$stmt->close();
//Get the remaining money in the accounts
$TotalBalInAccount = ($iB_deposits) - (($iB_withdrawal) + ($iB_Transfers));

//ibank money in the wallet


$client_id = $_SESSION['client_id'];
$result = "SELECT SUM(transaction_amt) FROM iB_Transactions WHERE client_id = ?";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($new_amt);
$stmt->fetch();
$stmt->close();
//Withdrawal Computations

?>

<!DOCTYPE html>
<html lang="en">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>
<!-- Log on to codeastro.com for more projects! -->
<body class="hold-transition sidebar-mini layout-fixed layout-navbar-fixed">

57
Online Banking System

<div class="wrapper">
<!-- Navbar -->
<?php include("dist/_partials/nav.php"); ?>
<!-- /.navbar -->

<!-- Main Sidebar Container -->


<?php include("dist/_partials/sidebar.php"); ?>

<!-- Content Wrapper. Contains page content -->


<div class="content-wrapper">
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0 text-dark">Client Dashboard</h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->

<!-- Main content -->


<section class="content">
<div class="container-fluid">
<div class="row">
<!--iBank Deposits -->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box">
<span class="info-box-icon bg-info elevation-1"><i class="fas fa-upload"></i></span>
<div class="info-box-content">
<span class="info-box-text">Deposits</span>
<span class="info-box-number">
$ <?php echo $iB_deposits; ?>
</span>
</div>
</div>
</div>
<!----./ iBank Deposits-->

<!--iBank Withdrwals-->
<div class="col-12 col-sm-6 col-md-3">
58
Online Banking System

<div class="info-box mb-3">


<span class="info-box-icon bg-danger elevation-1"><i class="fas
fa-download"></i></span>

<div class="info-box-content">
<span class="info-box-text">Withdrawals</span>
<span class="info-box-number">$ <?php echo $iB_withdrawal; ?> </span>
</div>
</div>
</div>
<!-- Withdrawals-->

<!-- fix for small devices only -->


<div class="clearfix hidden-md-up"></div>

<!--Transfers-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-success elevation-1"><i class="fas
fa-random"></i></span>
<div class="info-box-content">
<span class="info-box-text">Transfers</span>
<span class="info-box-number">$ <?php echo $iB_Transfers; ?></span>
</div>
</div>
</div>
<!-- /.Transfers-->

<!--Balances-->
<div class="col-12 col-sm-6 col-md-3">
<div class="info-box mb-3">
<span class="info-box-icon bg-purple elevation-1"><i class="fas fa-money-bill-
alt"></i></span>
<div class="info-box-content">
<span class="info-box-text">Wallet Balance</span>
<span class="info-box-number">$ <?php echo $TotalBalInAccount; ?></span>
</div>
</div>
</div>
<!-- ./Balances-->
</div>

<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h5 class="card-title">Advanced Analytics</h5>
<div class="card-tools">
59
Online Banking System

<button type="button" class="btn btn-tool" data-card-widget="collapse">


<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<!-- /.card-header -->
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="chart">
<!-- Transaction Donought chart Canvas -->
<div id="PieChart" class="col-md-6" style="height: 400px; max-width: 500px;
margin: 0px auto;"></div>
</div>
<!-- /.chart-responsive -->
</div>
<hr>
<div class="col-md-6">
<div class="chart">
<div id="AccountsPerAccountCategories" class="col-md-6" style="height: 400px;
max-width: 500px; margin: 0px auto;"></div>
</div>
<!-- /.chart-responsive -->
</div>

<!-- /.col -->


</div>
<!-- /.row -->
</div><!-- Log on to codeastro.com for more projects! -->
<!-- ./card-body -->
<div class="card-footer">
<div class="row">
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_deposits; ?></h5>
<span class="description-text">TOTAL DEPOSITS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_withdrawal; ?></h5>
<span class="description-text">TOTAL WITHDRAWALS</span>
</div>
60
Online Banking System

<!-- /.description-block -->


</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block border-right">
<h5 class="description-header">$ <?php echo $iB_Transfers; ?> </h5>
<span class="description-text">TOTAL TRANSFERS</span>
</div>
<!-- /.description-block -->
</div>
<!-- /.col -->
<div class="col-sm-3 col-6">
<div class="description-block">
<h5 class="description-header">$ <?php echo $new_amt; ?> </h5>
<span class="description-text">TOTAL MONEY IN Account</span>
</div>
<!-- /.description-block -->
</div>
</div>
<!-- /.row -->
</div>
<!-- /.card-footer -->
</div>
<!-- /.card -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->

<!-- Main row -->


<div class="row">
<!-- Left col -->
<div class="col-md-12">
<!-- TABLE: Transactions -->
<div class="card">
<div class="card-header border-transparent">
<h3 class="card-title">Latest Transactions</h3>

<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div><!-- Log on to codeastro.com for more projects! -->
<!-- /.card-header -->
61
Online Banking System

<div class="card-body p-0">


<div class="table-responsive">
<table class="table table-striped table-hover m-0">
<thead>
<tr>
<th>Transaction Code</th>
<th>Account No.</th>
<th>Type</th>
<th>Amount</th>
<th>Acc. Owner</th>
<th>Timestamp</th>
</tr>
</thead>
<tbody>
<?php
//Get latest transactions ;
$client_id = $_SESSION['client_id'];
$ret = "SELECT * FROM iB_Transactions WHERE client_id = ? ORDER BY
iB_Transactions. created_at DESC ";
$stmt = $mysqli->prepare($ret);
$stmt->bind_param('i', $client_id);
$stmt->execute(); //ok
$res = $stmt->get_result();
$cnt = 1;
while ($row = $res->fetch_object()) {
/* Trim Transaction Timestamp to
* User Uderstandable Formart DD-MM-YYYY :
*/
$transTstamp = $row->created_at;
//Perfom some lil magic here
if ($row->tr_type == 'Deposit') {
$alertClass = "<span class='badge badge-success'>$row->tr_type</span>";
} elseif ($row->tr_type == 'Withdrawal') {
$alertClass = "<span class='badge badge-danger'>$row->tr_type</span>";
} else {
$alertClass = "<span class='badge badge-warning'>$row->tr_type</span>";
}
?>
<tr>
<td><?php echo $row->tr_code; ?></a></td>
<td><?php echo $row->account_number; ?></td>
<td><?php echo $alertClass; ?></td>
<td>$ <?php echo $row->transaction_amt; ?></td>
<td><?php echo $row->client_name; ?></td>
<td><?php echo date("d-M-Y h:m:s ", strtotime($transTstamp)); ?></td>
</tr>

<?php } ?>
62
Online Banking System

</tbody>
</table>
</div>
<!-- /.table-responsive -->
</div>
<!-- /.card-body -->
<div class="card-footer clearfix">
<a href="pages_transactions_engine.php" class="btn btn-sm btn-info float-left">View
All</a>
</div>
<!-- /.card-footer -->
</div>
<!-- /.card -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</div>
<!--/. container-fluid -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->

<!-- Control Sidebar -->


<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->

<!-- Main Footer -->


<?php include("dist/_partials/footer.php"); ?>

</div>
<!-- ./wrapper -->

<!-- REQUIRED SCRIPTS -->


<!-- jQuery -->
<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- overlayScrollbars -->
<script src="plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.js"></script>

<!-- OPTIONAL SCRIPTS -->


63
Online Banking System

<script src="dist/js/demo.js"></script>

<!-- PAGE PLUGINS -->


<!-- jQuery Mapael -->
<script src="plugins/jquery-mousewheel/jquery.mousewheel.js"></script>
<script src="plugins/raphael/raphael.min.js"></script>
<script src="plugins/jquery-mapael/jquery.mapael.min.js"></script>
<script src="plugins/jquery-mapael/maps/usa_states.min.js"></script>
<!-- ChartJS -->
<script src="plugins/chart.js/Chart.min.js"></script>

<!-- PAGE SCRIPTS -->


<script src="dist/js/pages/dashboard2.js"></script>

<!--Load Canvas JS -->


<script src="plugins/canvasjs.min.js"></script>
<!--Load Few Charts-->
<script>
window.onload = function() {

var Piechart = new CanvasJS.Chart("PieChart", {


exportEnabled: false,
animationEnabled: true,
title: {
text: "Accounts Per Acc Types "
},
legend: {
cursor: "pointer",
itemclick: explodePie
},
data: [{
type: "pie",
showInLegend: true,
toolTipContent: "{name}: <strong>{y}%</strong>",
indexLabel: "{name} - {y}%",
dataPoints: [{
y: <?php
//return total number of accounts opened under savings acc type
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Savings'
AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($savings);
$stmt->fetch();
$stmt->close();
echo $savings;
64
Online Banking System

?>,
name: "Savings Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Retirement acc type
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='
Retirement' AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Retirement);
$stmt->fetch();
$stmt->close();
echo $Retirement;
?>,
name: " Retirement Acc",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Recurring deposit acc type
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type
='Recurring deposit' AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Recurring);
$stmt->fetch();
$stmt->close();
echo $Recurring;
?>,
name: "Recurring deposit Acc ",
exploded: true
},

{
y: <?php
//return total number of accounts opened under Fixed Deposit Account deposit acc
type
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Fixed
Deposit Account' AND client_id = ? ";
65
Online Banking System

$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Fixed);
$stmt->fetch();
$stmt->close();
echo $Fixed;
?>,
name: "Fixed Deposit Acc",
exploded: true
},

{
y: <?php

//return total number of accounts opened under Current account deposit acc type
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_bankAccounts WHERE acc_type ='Current
account' AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Current);
$stmt->fetch();
$stmt->close();
echo $Current;
?>,
name: "Current Acc",
exploded: true
}
]
}]
});

var AccChart = new CanvasJS.Chart("AccountsPerAccountCategories", {


exportEnabled: false,
animationEnabled: true,
title: {
text: "Transactions"
},
legend: {
cursor: "pointer",
itemclick: explodePie
},
data: [{
type: "pie",
showInLegend: true,
toolTipContent: "{name}: <strong>{y}%</strong>",
66
Online Banking System

indexLabel: "{name} - {y}%",


dataPoints: [{
y: <?php
//return total number of transactions under Withdrawals
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Withdrawal'
AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Withdrawals);
$stmt->fetch();
$stmt->close();
echo $Withdrawals;
?>,
name: "Withdrawals",
exploded: true
},

{
y: <?php
//return total number of transactions under Deposits
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Deposit'
AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Deposits);
$stmt->fetch();
$stmt->close();
echo $Deposits;
?>,
name: "Deposits",
exploded: true
},

{
y: <?php
//return total number of transactions under Deposits
$client_id = $_SESSION['client_id'];
$result = "SELECT count(*) FROM iB_Transactions WHERE tr_type ='Transfer'
AND client_id =? ";
$stmt = $mysqli->prepare($result);
$stmt->bind_param('i', $client_id);
$stmt->execute();
$stmt->bind_result($Transfers);
$stmt->fetch();
67
Online Banking System

$stmt->close();
echo $Transfers;
?>,
name: "Transfers",
exploded: true
}

]
}]
});
Piechart.render();
AccChart.render();
}

function explodePie(e) {
if (typeof(e.dataSeries.dataPoints[e.dataPointIndex].exploded) === "undefined" || !
e.dataSeries.dataPoints[e.dataPointIndex].exploded) {
e.dataSeries.dataPoints[e.dataPointIndex].exploded = true;
} else {
e.dataSeries.dataPoints[e.dataPointIndex].exploded = false;
}
e.chart.render();

}
</script>

</body>

</html>

Joinus.php:
<?php
session_start();
include('conf/config.php');

//register new account


if (isset($_POST['create_account'])) {
//Register Client
$name = $_POST['name'];
$national_id = $_POST['national_id'];
$client_number = $_POST['client_number'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$password = sha1(md5($_POST['password']));
68
Online Banking System

$address = $_POST['address'];

//$profile_pic = $_FILES["profile_pic"]["name"];
//move_uploaded_file($_FILES["profile_pic"]["tmp_name"],"dist/img/".
$_FILES["profile_pic"]["name"]);

//Insert Captured information to a database table


$query = "INSERT INTO iB_clients (name, national_id, client_number, phone, email,
password, address) VALUES (?,?,?,?,?,?,?)";
$stmt = $mysqli->prepare($query);
//bind paramaters
$rc = $stmt->bind_param('sssssss', $name, $national_id, $client_number, $phone, $email,
$password, $address);
$stmt->execute();

//declare a varible which will be passed to alert function


if ($stmt) {
$success = "Account Created";
} else {
$err = "Please Try Again Or Try Later";
}
}

/* Persisit System Settings On Brand */


$ret = "SELECT * FROM `iB_SystemSettings` ";
$stmt = $mysqli->prepare($ret);
$stmt->execute(); //ok
$res = $stmt->get_result();
while ($auth = $res->fetch_object()) {
?>
<!DOCTYPE html>
<html><!-- Log on to codeastro.com for more projects! -->
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php include("dist/_partials/head.php"); ?>

<body class="hold-transition login-page">


<div class="login-box">
<div class="login-logo">
<p><?php echo $auth->sys_name; ?> - Sign Up</p>
</div>
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
69
Online Banking System

<p class="login-box-msg">Sign Up To Use Our IBanking System</p>

<form method="post">
<div class="input-group mb-3">
<input type="text" name="name" required class="form-control" placeholder="Client
Full Name">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="text" required name="national_id" class="form-control"
placeholder="National ID Number">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-tag"></span>
</div>
</div>
</div>
<div class="input-group mb-3" style="display:none">
<?php
//PHP function to generate random
$length = 4;
$_Number = substr(str_shuffle('0123456789'), 1, $length); ?>
<input type="text" name="client_number" value="iBank-CLIENT-<?php echo
$_Number; ?>" class="form-control" placeholder="Client Number">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="text" name="phone" required class="form-control" placeholder="Client
Phone Number">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-phone"></span>
</div>
</div>
</div>
70
Online Banking System

<div class="input-group mb-3">


<input type="text" name="address" required class="form-control" placeholder="Client
Address">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-map-marker"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="email" name="email" required class="form-control" placeholder="Client
Address">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div><!-- Log on to codeastro.com for more projects! -->
<div class="input-group mb-3">
<input type="password" name="password" required class="form-control"
placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" name="create_account" class="btn btn-success btn-block">Sign
Up</button>
</div>
<!-- /.col -->
</div>
</form>

<p class="mb-0">
<a href="pages_client_index.php" class="text-center">Login</a>
</p>

71
Online Banking System

</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->

<!-- jQuery -->


<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>

</body>
</html>
<?php
OUTPUT
Home Page:

Client Dashboard:

72
Online Banking System

Staff Dashboard:

System Administrator profile:

73
Online Banking System

Admin Dashboard:

Clint Account:

74
Online Banking System

Conclusion

Digital banking offers a convenient and efficient alternative to traditional banking


methods. With the ability to access banking services remotely through websites and
mobile applications, users can perform a wide range of tasks, such as transferring
money, paying bills, and generating bank statements.

If you haven't already made the switch to online banking, now may be the time to
consider it.

Digital banks provide products and services similar to traditional banks, including

savings accounts, current accounts, cash withdrawals and deposits, fund transfers, and

loans.

Advantages of digital banking include convenience, ease of signing up, potentially higher

interest rates or lower fees, personalised features, and rewards. Overall, digital banking

75
Online Banking System

revolutionises the banking experience by making it more accessible, streamlined, and


tailored to individual needs.

In conclusion, the benefits of online banking are significant and wide-ranging. With
online banking, you can enjoy the convenience of managing your finances from
anywhere, the security of robust encryption and multi-factor authentication, and the
potential for savings on fees and interest rates.

Reference
1. Sparks, Evan (26 June 2017). "Nine Young Bankers Who Changed America:
Thomas Sudman". ABA Banking Journal. Archived from the original on 21
November 2019. Retrieved 12 March 2019.
2. ^ Cronin, Mary J. (1997). Banking and Finance on the Internet, John Wiley and
Sons. ISBN 0-471-29219-2 page 41 from Cronin, Mary J. (1998). Banking and
Finance on the Internet. John Wiley &
Sons. ISBN 9780471292197. Archived from the original on 2021-08-14.
Retrieved 2008-07-10.
3. ^ "The Home Banking Dilemma". Archived from the original on 2014-04-10.
Retrieved 2008-07-10.
4. ^ "Shopping and banking on a computer network in the 1980s (Minitel)". Philip
Greenspun’s Weblog. March 30, 2018. Archived from the original on August 4,
2021. Retrieved October 27, 2021.
5. ^ "Information Technology And The Banking Industry". 2014-09-
24. Archived from the original on 2020-06-16. Retrieved 2019-11-30.
6. ^ "History - About us - OP Group". Archived from the original on 2018-12-21.
Retrieved 2018-12-20.
7. ^ Jump up to:a b Abdou, Hussein, English, John and Adewunmi, Paul An
investigation of risk management practices in electronic banking: the case of the
UK banks Archived 2016-03-04 at the Wayback Machine eprints.hud.ac.uk,
University of Huddersfield, July 22, 2014 (PDF; 474 kB)

76
Online Banking System

8. ^ "U.S. digital banking usage 2022". Statista. Archived from the original on
2019-12-05. Retrieved 2019-12-05.
9. ^ "EU: Online banking penetration by country". Statista. Archived from the
original on 2019-12-06. Retrieved 2019-12-06.
10. ^ "Capitalising on Asia's digital-banking boom". McKinsey & Company. March
2015. Archived from the original on 2020-08-05. Retrieved 2019-12-09.
11. ^ Jump up to:a b Veeraghanta, Murthy (2017-11-08). "Is Your Digital Banking
Vendor Hurting Adoption Rates?". The Financial Brand. Archived from the
original on 2019-12-09. Retrieved 2019-12-09.
12. ^ Rishi, Om Prakash (2017). Maximizing Business Performance and Efficiency
Through Intelligent Systems. IGI Global. p. 169. ISBN 9781522522348.
13. ^ Prendergast, Gerald Paul Joseph (1992). Human interaction in service delivery
and its relationship to disenchantment discontinuance in the diffusion of self-
service technologies: a case study in retail banking (PDF) (PhD). Massey
University. p. 121. Archived (PDF) from the original on 2019-09-04.
Retrieved 2019-09-04.
14. ^ Jump up to:a b c d "British Move Fast in Home Banking". New York Times. 2
January 1984. p. 39. Archived from the original on 4 September 2019.
Retrieved 4 September 2019.
15. ^ Jump up to:a b c "New banking services for personal customers (銀行等の個人向
け新サービス)" (PDF). National Consumer Affairs Center of Japan. 2000-10-
05. Archived (PDF) from the original on 2013-01-21. Retrieved 2019-03-20.
16. ^ "China's First Online Bank Finally Launches". PYMNTS.com. 2015-01-
20. Archived from the original on 2021-10-10. Retrieved 2019-09-12.
17. ^ "Westpac Group celebrates 20 years of Internet banking". ARN. Archived from
the original on 2019-09-23. Retrieved 2019-09-23.
18. ^ "ICICI bank completes 20 years of digital banking". ICICI-Bank. Archived from
the original on 2020-08-05. Retrieved 2020-02-23.
19. ^ Mari, Angelica. "Brazil's first online bank ramps up
innovation". ZDNet. Archived from the original on 2020-08-05. Retrieved 2019-
11-24.
20. ^ Werani, Thomas (2006). "Business-to-Business-Marketing". Praxisorientiertes
Business-to-Business-Marketing. Gabler. pp. 3–13. doi:10.1007/978-3-8349-
9287-1_1. ISBN 978-3-8349-0346-4.
21. ^ "More than 900,000 use online banking in Slovenia". Archived from the original
on 2020-06-09. Retrieved 2020-06-09.
22. ^ Jump up to:a b "Innovation in banking Archives". BMO History. Archived from
the original on 2020-06-09. Retrieved 2020-06-09.
23. ^ "ING DIRECT Canada: Our History". December 2, 2013. Archived from the
original on 2013-12-0

77
Online Banking System

78
Online Banking System

Bibliography:
Abrol, R.K. 1996. ‘Electronic Banking (E-Banking)’, IBA Bulletin, 18(1), January, Mumbai.
Adavi, Ramesh. 1996. ‘Networking the Service Branches’, IBA Bulletin, 18(1): 104–05. Allen,
Helen, John Haqwkins and Setsuya Satol. 2001. ‘Electronic Trading and Its Implications for
Finalizing the Systems’, BIS Papers No. 7, BIS, Basle.
Anandlingam, G. 2003. ‘Information Technology Does Matter’. The Economic Times, Mumbai,
25 July.

Andrews, David. 1999. ‘Surviving in the Real World’, Banker (UK), 149(885): 95–96. Andriole,
Steve. 2002. ‘A Winning Technology Strategy’. Available online at http://
itmanagement.earthweb.com/columns/bizalign/article.php/1009331, accessed on 1 April. Appel,
M. Andrew, Amit Dhadwal and Wanye Epietraszek. 2003. ‘More Bang for the IT Buck’,
Mckinsey Quarterly, No. 2, McKinsey and Co. Inc.
Arnoff, David L. 1999. ‘Credit Online: Banking in Cyberspace’, Business Credit, 101(9): 18–19.

Asian Banker Journal. 2000. ‘E-Savvy CEOs Who Are Prepared to Lead the Way’, Asian
Banking Journal, 31( January): 20–21.
Bachman, Timothy. 2001. ‘Welcome Back to the Branch’, Bank Marketing, 33(1), January/
February.

Bank of Japan. 2000. ‘The Importance of Information Security for Financial Institutions and
Proposed Counter Measures: With a Focus on Internet-based Financial Services’. The Banker.
2000. ‘Caring for E-Clients’, The Banker (UK), 150(98): 1–22.
The Bankers’ Book of Evidence Act 1891, Government of India, New Delhi. The Banking
Technology. 2000. Client Relationship Management Report. London: Informa Professional
Publishing.

Barua, Yogesh. 2005. Criminal Activities in Cyber World. New Delhi: Saujanya Books. Basle
Committee on Banking Supervision. 2001. Risk Management Principles for Electronic Banking.
Basle: Bank for International Settlement.
BBC India Profile. 2007. India Internet and Telecommunications Reports. Available online at
www.internetworldstats.com/asian/in.htm

Beans, Kathleen M. 2000. ‘Ask the Right Questions in the “Both/and” World’, RMA Journal,
83(1): 74–75.
Blount (Ed.). 1999. ‘Rethinking the Framework’, ABA Banking Journal, 91(12): 68–72. Brewer,
Harold. 2001. ‘E-Commerce and Community Banking’, Commercial Lending Review, 16(3): 48–
52.

Brown Jonathon. 2001. ‘Forex Ventures Beyond the Phone’, Euromoney, (385): 81–84. Business
India. ‘Changing Face of Banking’, Business India, Banking Supplement, New Delhi, 21 July–
August

79
Online Banking System

80

You might also like