A Project Report on
E-Banking Management System
DEVELOPED BY:
IT140 Harshil Sarariya
IT143 Kush Sawlani
IT149 Sakshi Shah
Guided y
Internal Guide:
Prof. Archana [Link]
Department of Information Technology
Faculty of Technology
DD University
Department of Information Technology Faculty of Technology,
Dharmsinh Desai University College Road, Nadiad-387001
October - 2022
1|P age
DDU (Faculty of Tech., Dept of IT)
DHARMSINH DESAI UNIVERSITY
NADIAD-387001, GUJARAT
CERTIFICATE
This is to certify that the project Named “E-Banking Management System” is a bonafide
report of the work carried out by
1. Kush Sawlani Student ID No: 20ECUOS009
2. Harshil Sarariya Student ID No: 20ITUBS009
3. Sakshi Shah Student ID No: 20ITUOS089
of Department of Information Technology, semester V, under the guidance and
supervision for the subject Database Management System. They were involved in
Project training during the academic year 2022-2023.
Prof. Archana Vyas
Project Guide, Department of Information Technology,
Faculty of Technology,
Dharmsinh Desai University, Nadiad
Date: 15/10/2022
Prof. Vipul Dabhi
Head, Department of Information Technology
2|P age
DDU (Faculty of Tech., Dept of IT)
INDEX
I. Certificate………………………………………………………………………………………………………………………….……………….2
II. Acclaim……………………………………………………………………………………………………………………………………………….4
1. GENRAL OUTLOOK…………………………………………………………………………………………………………………….5
1.1 Current System………………………………………………………………………………………………………………...5
1.2 Objectives of Present System………………………………………………………………….………………..5
1.3 Advantages of the Present system (over current) ………………………………………….…6
2. E – R DIAGRAM……………………………………………………………………………………………………………….………………7
3. RELATIONAL SCHEMA…………………………………………………………………………………………….……………….8
4. DATA DICTIONARY…………………………………………………………………………………………………..……………….10
5. DATABASE IMPLEMENTATION………………………………………………………………………..………………..17
5.1 Create Schema and Insert Data Values……………………………………………………………….17
5.2 Queries…………………………………………………………………………...........................................33
• Using basic dbms constructs
• Queries using join
• Queries using pg/plsql
6. FUTURE ENHANCEMENTS OF SYSTEM………………………………………………….................45
7. BIBLIOGRAPHY…………………………..……………………………………………………………………………………..……….51
3|P age
DDU (Faculty of Tech., Dept of IT)
Acclaim
❖ We would like to express our sincere appreciation to Mam who helped us
and led to the successful completion of our project "E-Banking
Management System."
❖ We got immense support from Teaching Staff which led to successful
completion of project we are always lucky and fortunate to have such a
supportive faculty in this project.
❖ We are much obliged to Prof. Archana N. Vyas, our project guide, who took
an interest in our project work and gave the ray of light that this project
can be made mam provided all the guidance which was necessary for
creating a best of best in Database Management System.
❖ Thank You Prof. Archana N. Vyas for your immense support and your
guidance and we express the same gratitude to others who intended to
help us.
4|P age
DDU (Faculty of Tech., Dept of IT)
1. GENRAL OUTLOOK
1.1 CURRENT SYSTEM
Our database will be designed like the BANK OF BARODA E BANKING PORTAL ,enables
bank customers to complete and submit to the bank for execution documents for
payment and take loan and various types of services will be provided to customer
including mutual funds ,fast tag, Life insurance as due to excessive use of technology we
have designed E-BANKING MANAGEMENT SYSTEM which is in high demand.
1.2 OBJECTIVES OF THE PRESENT SYSTEM
To Attract Customers:
one of the important objectives of e-banking is to attract customers. E-banking is helping the
customers by providing online services. it is attracting the customers and making the banking
system easier.
To Provide 24/7 Service:
The world economy is growing, people are doing business globally. it require 24*7 banking service.
E-banking doing the same, to provide 24*7 service. it is one of the important objectives of e-banking.
A. Objectives from the perspectives of bank:
[Link] retail services and reducing costs through bank network.
2. Reducing administrative costs through reducing.
3. Increasing income through fees.
4. Expanding services.
B. Objectives from the perspectives of USER
1. Acquiring data and information in time.
2. Lessening time and cost in transactions.
3. Security of account Management staff.
5|P age
DDU (Faculty of Tech., Dept of IT)
1.3 ADVANTAGES OF THE PRESENT SYSTEM
• Efficiency and profitability. Using the e-banking system allows managing the financial
flows of the company from the office and significantly reduces the cost of working time
associated with a visit to the Bank.
• Safety and efficiency. E-banking increases the security and confidentiality of workflow
with the Bank; at any time to obtain an extract containing information on all incoming
and outgoing documents in a larger format, without visiting the Bank.
• Bill payments can also be handled properly and smartly. Instead of waiting for certain
due dates, you can easily pay all your transactions using your computer and in
coordination with your bank.
6|P age
DDU (Faculty of Tech., Dept of IT)
2. ENTITY-RELATIONSHIP MODEL:
Link - [Link]
7|P age
DDU (Faculty of Tech., Dept of IT)
3. RELATIONAL SCHEMA
LINK-[Link]
8|P age
DDU (Faculty of Tech., Dept of IT)
[Link] DICTIONARY :
4.1:Account
4.2:Bank
9|P age
DDU (Faculty of Tech., Dept of IT)
4.3:Branch
4.4:Complaint
4.5:Complaints
10 | P a g e
DDU (Faculty of Tech., Dept of IT)
4.6:Current:
4.7:Customer contactno:
4.8:Customers:
11 | P a g e
DDU (Faculty of Tech., Dept of IT)
4.9:Deposit:
4.10: employee_contactno:
12 | P a g e
DDU (Faculty of Tech., Dept of IT)
4.11: employees:
4.12: fasttag:
4.13: gives:
13 | P a g e
DDU (Faculty of Tech., Dept of IT)
4.14: life insurance:
4.15: loan:
4.16:mutual fund:
14 | P a g e
DDU (Faculty of Tech., Dept of IT)
4.17:request:
4.18:request loan:
4.19:role:
15 | P a g e
DDU (Faculty of Tech., Dept of IT)
4.20:saving:
4.21:service:
4.22:transaction:
16 | P a g e
DDU (Faculty of Tech., Dept of IT)
5. DATA IMPLEMENTATION
5.1 SCHEMA
5.1.1 account
CREATE TABLE
if not exists account(
account_no INTEGER PRIMARY KEY,
accountType VARCHAR(255) NOT NULL,
balance INTEGER DEFAULT 0,
branch VARCHAR(255) NOT NULL,
openingDate DATE NOT NULL,
closingDate DATA );
5.1.2 Bank
CREATE Table Bank(
code INTEGER PRIMARY KEY,
Name VARCHAR(255),
state VARCHAR(50),
city VARCHAR(50),
pincode VARCHAR(10),
street VARCHAR(50),
branch_id INTEGER REFERENCES Branch (branch_id) );
17 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.3 compalint
CREATE TABLE
complaint(
cid INTEGER REFERENCES complaints (cid),
customer_id INTEGER REFERENCES customers (customer_id)
);
5.1.4 complaints
CREATE TABLE
complaints(
cid INTEGER PRIMARY KEY,
status VARCHAR(30),
descritption TEXT,
date DATE DEFAULT CURRENT_DATE);
5.1.5 current
CREATE TABLE
if not exists current (
curr_id INTEGER PRIMARY KEY,
overDraftAmount INTEGER DEFAULT 500
);
18 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.6 customer_contact no
CREATE TABLE
customer_contact_no(
customer_id INTEGER REFERENCES customers(customer_id),
contact numeric(10, 0),
PRIMARY KEY(customer_id, contact)
);
5.1.7 Customers:
CREATE Table customers(
customer_id INTEGER PRIMARY KEY,
firstName VARCHAR(255), middleName VARCHAR(255),
lastName VARCHAR(255),
email VARCHAR (255) UNIQUE NOT NULL,
state VARCHAR(50), city VARCHAR(50),
pincode VARCHAR(10), street VARCHAR(50),
dob DATE, gender VARCHAR(20),
panNo numeric(10, 0),
adadharNo numeric(12, 0) NOT NULL,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR (50) NOT NULL,
account_no INTEGER REFERENCES account (account_no),
created_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
19 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.9 Deposit:
CREATE TABLE
if not exists deposit(
dep_id INTEGER PRIMARY KEY,
initialAmount INTEGER DEFAULT 500,
depositeType VARCHAR(255) NOT NULL,
duration VARCHAR(255),
interestRate INTEGER DEFAULT 7
);
5.1.10 employees
CREATE TABLE
IF NOT EXISTS employees (
EMPLOYEE_ID numeric (6, 0) NOT NULL PRIMARY KEY,
FIRST_NAME varchar(255) NOT NULL,LAST_NAME varchar(255) NOT NULL,
EMAIL varchar(255) NOT NULL Unique,
PHONE_NUMBER varchar(20) NOT NULL,
JOIN_DATE date DEFAULT CURRENT_DATE,
JOB_ID varchar(10) NOT NULL,
SALARY numeric (8, 2) DEFAULT NULL,
DOB Date NOT NULL,
Username varchar(25) NOT NULL Unique,Password varchar(25) NOT NULL,
Gender varchar (25) NOT NULL,
role_id Integer REFERENCES role (ROLE_ID));
20 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.11 fasttag
CREATE TABLE
Fasttag(
fasttagid INTEGER PRIMARY KEY,
vehicleno VARCHAR(50),
amount INTEGER NOT NULL );
5.1.12 gives
CREATE TABLE
gives(
branch_id INTEGER REFERENCES Branch (branch_id),
service_id INTEGER REFERENCES Service (service_id)
);
5.1.13 Life Insurance
CREATE TABLE
LifeInsurance(
insuranceid INTEGER PRIMARY KEY,
type VARCHAR(255),
premium BOOLEAN,
amount INTEGER NOT NULL
);
21 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.14 Loan
CREATE TABLE
Loan(
Loan_id numeric(9, 0) NOT NULL PRIMARY KEY,
Date date NOT NULL,
Intrest integer NOT NULL,
account_no INTEGER REFERENCES account(account_no),
Amount integer NOT NULL
);
5.1.15 Mutual Fund
CREATE TABLE
MutualFunds(
mfid INTEGER PRIMARY KEY,
openEndFund INTEGER,
balanceFund INTEGER,
closeEndFund INTEGER,
hybridFund INTEGER
);
5.1.16 request
CREATE TABLE
request(
transaction_id INTEGER REFERENCES transaction (transaction_id),
customer_id INTEGER REFERENCES customers (customer_id)
);
22 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.17 request loan
CREATE Table
Request_Loan(
customer_id INTEGER REFERENCES customers (customer_id),
Loan_id INTEGER REFERENCES Loan (Loan_id) );
5.1.18 Role
CREATE TABLE
if not exists role(
ROLE_ID Integer PRIMARY KEY,
ROLE_NAME varchar(255)
);
5.1.19 Saving
CREATE TABLE
if not exists saving (
sav_id INTEGER PRIMARY KEY,
initialAmount INTEGER DEFAULT 500,
interestRate INTEGER DEFAULT 7
);
23 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.1.20 Service
CREATE TABLE
Service(
service_id NUMERIC(9, 0) PRIMARY KEY,
type VARCHAR(25),
description TEXT,
mfid INTEGER REFERENCES MutualFunds (mfid) ON DELETE CASCADE,
insuranceid INTEGER REFERENCES LifeInsurance (insuranceid) ON DELETE CASCADE,
fasttagid INTEGER REFERENCES Fasttag (fasttagid) ON DELETE CASCADE
);
5.1.21 transaction
CREATE TABLE
transaction(
transaction_id INTEGER PRIMARY KEY,
account_no INTEGER REFERENCES account (account_no),
amount INTEGER NOT NULL,
type VARCHAR(25),
datetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
24 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2 INSERTING DATA VALUES :
5.2.1:Account
5.2.2:Bank
25 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2.3:Branch
5.2.4:Complaint
5.2.5:Complaints
26 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2.6:Current:
5.2.7:Customer contactno:
5.2.8:Customers:
27 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.29:Deposit:
5.2.10: employee contactno:
5.2.11: employees
28 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2.12: fasttag:
5.2.13: life insurance:
5.2.14: loan:
29 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2.15:mutual fund:
5.2.16:request:
30 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2.17:request loan:
5.2.18:role:
31 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2.19:saving:
5.2.20:transaction:
32 | P a g e
DDU (Faculty of Tech., Dept of IT)
5.2. QUERIES
• USING BASIC DBMS CONSTRUCTS
1) Display the employees which is joining date in between year 2000-2015
> SELECT * from employees where JOIN_DATE between '2000-01-01' and '2015-09-21';
2) Write a query to find the maximum salary for the company employees.
> SELECT * FROM employees WHERE SALARY = (SELECT MAX(SALARY) FROM employees);
33 | P a g e
DDU (Faculty of Tech., Dept of IT)
3) Display employee details - role is Manager.
> SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME from employees WHERE role_id = (SELECT ROLE_ID
from role WHERE ROLE_NAME = 'Chief Manager');
4) Count Count male, female
> SELECT gender COUNT(gender) as count FROM customers GROUP BY gender;
5) Limit Query -> List recent 3 transaction
>SELECT * FROM transaction ORDER BY datetime LIMIT 3;
34 | P a g e
DDU (Faculty of Tech., Dept of IT)
• QUERIES USING JOIN AND SUBQUERIES
1) Write a query to display account number, customer’s number, customer’s
firstname,middlename,lastname,account opening date.
->SELECT ac.account_no, c.customer_id, [Link], [Link], [Link] from account as ac INNER
JOIN customers as c ON ac.account_no = c.account_no;
2)Write a query to display customer number, customer name, customer city, account number
where the account type is current.
->SELECT ac.account_no,c.customer_id,[Link],[Link],[Link],[Link],[Link] FROM
account as ac,customers as c WHERE ac.account_no = c.account_no AND accountType = 'current';
35 | P a g e
DDU (Faculty of Tech., Dept of IT)
3) Display all branch name of bank State Bank Of India.
->SELECT [Link] FROM branch as br INNER JOIN bank as ba on ba.branch_id = br.branch_id and [Link] =
'State Bank of India';
4) list all account details either customer information where account is in rajkot branch and
balance is more than 5000.
SELECT ac.account_no, [Link], [Link], [Link] FROM "account" as ac INNER JOIN customers as c
ON [Link] > 5000 and [Link] = 'saving' and ac.account_no = c.account_no;
5) SELECT a customer and display neccessary details, who have loan at "Ahmedabad kakaria" branch
-> SELECT ac.account_no, [Link], [Link], (SELECT l.account_no FROM loan as WHERE
ac.account_no = l.account_no) as t2 FROM "account" ac WHERE ac.account_no is not null and
branch = 'rajkot';
36 | P a g e
DDU (Faculty of Tech., Dept of IT)
❖ QUERIES USING PG/PLSQL
❖ CURSOR
1) CURSOR TABLE FOR CUSTOMER TABLE :
BEGIN;
DECLARE cust_curr CURSOR FOR
SELECT customer_id, firstname, account_no, email, city, pincode
FROM CUSTOMERS;
FETCH NEXT FROM cust_curr;
FETCH LAST FROM cust_curr;
FETCH PRIOR FROM cust_curr;
FETCH FIRST FROM cust_curr;
FETCH ALL FROM cust_curr;
FETCH FORWARD FROM cust_curr;
FETCH BACKWARD FROM cust_curr;
CLOSE cust_curr;
END;
37 | P a g e
DDU (Faculty of Tech., Dept of IT)
38 | P a g e
DDU (Faculty of Tech., Dept of IT)
2) CURSOR TABLE FOR COMPLAINTS TABLE :-
BEGIN;
DECLARE comp_curr CURSOR FOR
SELECT cid, descritption, date
FROM complaints WHERE status = 'pending';
FETCH NEXT FROM comp_curr;
FETCH LAST FROM comp_curr;
FETCH PRIOR FROM comp_curr;
FETCH FIRST FROM comp_curr;
FETCH ALL FROM comp_curr;
FETCH FORWARD FROM comp_curr;
FETCH BACKWARD FROM comp_curr;
CLOSE comp_curr;
END;
39 | P a g e
DDU (Faculty of Tech., Dept of IT)
❖ FUNCTION FOR CHECK_STOCK :
❖ CREATE FUNCTION:
CREATE FUNCTION CHECK_BAL() RETURNS TRIGGER AS $$
BEGIN
IF [Link] < 500 THEN RAISE EXCEPTION 'BALANCE SHOULD BE MINIMUM 500';
END IF;
RETURN NEW;
END;
$$ LANGUAGE
PLPGSQL;
❖ CREATE TRIGGER:
CREATE TRIGGER BAL_CHECK
BEFORE
INSERT OR
UPDATE ON account FOR EACH ROW
EXECUTE PROCEDURE CHECK_BAL();
❖ QUERIES:
UPDATE account SET balance=460 WHERE account_no=235601 ;
40 | P a g e
DDU (Faculty of Tech., Dept of IT)
❖ TRIGGER FOR ACCOUNT:
❖ CREATE TABLE:
CREATE TABLE
ACCOUNT_DATA_CHANGE_DETAIL(
OPERATION CHARACTER(1) NOT NULL,
STAMP TIMESTAMP NOT NULL,
account_no INTEGER NOT NULL,
balance INTEGER NOT NULL
);
❖ CREATE FUNCTION :
CREATE OR REPLACE FUNCTION DO_ACCOUNT_DATA_DETAILS(
) RETURNS TRIGGER AS $ACCOUNT_DATA_CHANGE_DETAIL$
BEGIN
IF(TG_OP = 'DELETE') THEN
INSERT INTO ACCOUNT_DATA_CHANGE_DETAIL
SELECT 'D',NOW(), OLD.account_no, [Link];
ELSIF(TG_OP = 'UPDATE') THEN
INSERT INTO ACCOUNT_DATA_CHANGE_DETAIL
SELECT 'U' NOW(),NEW.account_no, [Link];
RETURN NEW;
ELSIF(TG_OP = 'INSERT') THEN
INSERT INTO ACCOUNT_DATA_CHANGE_DETAIL
SELECT 'I', NOW(),NEW.account_no, [Link];
RETURN NEW;
END IF; RETURN NULL;
END;
$ACCOUNT_DATA_CHANGE_DETAIL$ LANGUAGE PLPGSQL;
41 | P a g e
DDU (Faculty of Tech., Dept of IT)
❖ CREATE TRIGGER :
CREATE TRIGGER ACCOUNT_DATA_CHANGE_DETAIL
AFTER INSERT OR UPDATE OR DELETE ON account FOR EACH ROW
EXECUTE PROCEDURE DO_ACCOUNT_DATA_DETAILS();
❖ QUERIES :
➢ UPDATE account SET balance=5600 WHERE account_no=235601
➢ DELETE FROM account WHERE account_no=235601;
➢ INSERT INTO account( account_no, accountType,balance,branch,openingDate)
➢ VALUES (235610, 'saving', 56000, 'gondal', '2008-09-23');
42 | P a g e
DDU (Faculty of Tech., Dept of IT)
• TRIGGER FOR EMPLOYEE:
❖ CREATE TABLE:
CREATE TABLE
EMPLOYEE_DATA_CHANGE_DETAIL(
OPERATION CHARACTER(1) NOT NULL,
STAMP TIMESTAMP NOT NULL,
USERNAME INTEGER NOT NULL,
PASSWORD INTEGER NOT NULL,
SALARY INTEGER NOT NULL
);
❖ CREATE FUNCTION :
CREATE OR REPLACE FUNCTION DO_EMPLOYEE_DATA_CHANGE_DETAIL
() RETURNS TRIGGER AS $EMPLOYEE_DATA_CHANGE_DETAIL$
BEGIN
IF(TG_OP = 'DELETE') THEN
INSERT INTO EMPLOYEE_DATA_CHANGE_DETAIL
SELECT 'D', NOW(),[Link], [Link], [Link];
ELSIF(TG_OP = 'UPDATE') THEN
INSERT INTO EMPLOYEE_DATA_CHANGE_DETAIL
SELECT 'U', NOW(), [Link], [Link],[Link];
RETURN NEW;
ELSIF(TG_OP = 'INSERT') THEN
INSERT INTO EMPLOYEE_DATA_CHANGE_DETAIL
SELECT 'I', NOW(),[Link], [Link], [Link];
RETURN NEW;
END IF;
43 | P a g e
DDU (Faculty of Tech., Dept of IT)
RETURN NULL;
END;
$EMPLOYEE_DATA_CHANGE_DETAIL$ LANGUAGE
PLPGSQL;
❖ CREATE TRIGGER :
CREATE TRIGGER EMPLOYEE_DATA_CHANGE_DETAIL
AFTER INSERT OR UPDATE OR DELETE ON employee FOR EACH ROW
EXECUTE PROCEDURE DO_EMPLOYEE_DATA_CHANGE_DETAIL();
❖ QUERIES :
➢ UPDATE employees SET SALARY = 120000 WHERE EMPLOYEE_ID = 54001;
➢ DELETE FROM employees WHERE EMPLOYEE_ID=54002;
44 | P a g e
DDU (Faculty of Tech., Dept of IT)
6. FUTURE ENHANCEMENT OF THE SYSTEM
• We will design Front-end in HTML, CSS and ReactJs.
• We will implement Back-end using Nodejs.
• We will make database more consistent, efficient and easy to implement with huge data
capacity.
• We will also add some extra features so that it will become more user friendly.
45 | P a g e
DDU (Faculty of Tech., Dept of IT)
[Link]
For implementation of this project we referred to many website and books.
Websites:-
• [Link]
• [Link]
• [Link]
Book: DataBase System Concept
-Henry F. Korth & A. Siberschatz 2nd Ed. McGraw-Hill 1991
• We created the ER diagram and schema diagram on “[Link]”. website…
• Mostly we referred the online material for syntax of procedure, triggers, exception and
cursors. Syntax refered from [Link]
46 | P a g e
DDU (Faculty of Tech., Dept of IT)