Project Report
of
“ BANK MANAGEMENT SYSTEM”
GOVERMENT GIRLS SENIOR SECONDARY SCHOOL,
NEW KONDLI
SCHOOL ID :1002186
CBSE
FACULTY OF
COMPUTER SCIENCE
SESSION:2023-24
This is to certify that this project work entitled
“BANK MANAGEMENT SYSTEM”
Has been carried out successfully
SUBMTTED BY:- GUIDED BY:-
TANVI SIDDHARTH Mrs. KOMAL YADAV
(LECTURER CS)
CLASS : XII B
1
Table Of Content
S no. CONTENT Page no.
1 CERTIFICATE
3
2 ACKNOWLEDGEMENT 4
3 INTRODUCTION 5
HARDWARE AND SOFTWARE 6
4
REQUIREMNETS
5 SOURCE CODE 7-
6 OUTPUT 15
CONCLUSION
7 23
AND FUTURE SCOPE
8 BIBLOGRAPHY 25
CERTIFICATE
2
This is to certify that this report embodies the
original work Done by TANVI SIDDHARTH,
during this project submission as a partial
fulfillment of the requirement for the “BANKING
MANAGEMENT SYSTEM” Project of class XII
computer science python project under CBSE board.
Internal Signature External Signature
Acknowledgement
3
Thanks,
Principle ma’am Ms. ANITA SINGH
I am highly obliged and thankful to our COMPUTER
SCIENCE teacher Ms. KOMAL YADAV for her generous
attitude and possible help for his valuable suggestion
inspiration and encouragement from time to time.
I have no words to express our here heartiest veneration to all
teachers and my friends for here highly sense of inspiration and
constants encouragement.
INTRODUCTION
In day-to-day work process of an organization, there are lots of
things happening. which need to be keep tracked. For our ease
in future, we do too. Of course there is lots of way to perform
this task. We can either maintain these records manually or by
using computerized system. In current scenario, where we
4
always thing to increase productivity utilizing our working
hours more and more, it's always recommended to go for such
automated system, which provide me maximum facility to do
the same in a less time and minimum manpower. So I think and
design a commercial project for Bank Management
[Link] project intends introduce more user friendliness in
the various activities. such as record updation, maintenance,
and searching. The searching of record has been made quite
simple as all the details of the customer can be obtained by:
simply keying in the identification or account number of that
customer. Similarly, record maintenance and updation can also
be accomplished by using the account number with all the
details being automatically generated. These details are also
being promptly automatically updated in the master file thus
keeping the record absolutely up to date. This project also
contain an external Database connection to save users data
permanently.
HARDWARE/SOFTWARE
REQUIREMENTS
HARDWARE REQUIREMENT
Processor Intel I series
RAM 4.00 GB
5
System type 64-bit operating system
SOFTWARE REQUIREMENT
Operating System Window 10
Platform Language: Python
Back End: MySQL
Data Flow diagram:
Data Table:
Login Table:-
[Link]. Field name Data type Description
6
1 User Name Text Store user name for
checking correct
username
2 Password Text/Number Store password
corresponding to user
name
ACCOUNT RECORD TABLE:-
[Link]. Field name Data type
1 Account No. Number
2 Name Text
3 Mobile No. Number
4 Email ID Text+ Number
5 Residence Area Text+ Number
6 City Text
7 Country Text
8 Balance Number
Code Section:
import [Link]
cnx=[Link](host="localhost",user='root',password='123456',database='Ba
nk')
cur=[Link]()
#################################################################
def menu(): print('#'*170)
print(' --MAIN MENU--'.center(110))
print('(1) VIEW USER')
print(' -- Sort With Respect To Account Number')
print(' -- Sort With Respect To Name') print(' --
Sort With Respect To Balance') print('(2) ADD
USER')#CHANGE TO 1 print('(3) SEARCH
FOR AN ACCOUNT') print('(4) MODIFY
ACCOUNT DETAILS')
7
print('(5) MAKE TRANSACTIONS')
print(' -- Credit Into An Account')
print(' -- Debit Into An Account')
print('(6) DELETE USER')
print('(7) QUIT')
print(" # CHOOSE AND ENTER A NUMBER BETWEEN 1 AND 7 # ")
print('#' * 170)
def sortwithaccount(): [Link]("select * from Accounts
order by Account_num") print('-'*170)
Head="%20s %20s %20s %20s %20s %15s %18s %18s" print(Head%
("ACCOUNT_NO,", "NAME",
"MOBILE_NO","EMAIL_ID","RESIDENCE_AREA","CITY", "COUNTRY",
"BALANCE"))
print('-' * 170)
for i in cur:
for j in i:
print("%20s" % j, end='')
print()
print('-' * 170)
def sortwithname(): [Link]('select * from
accounts order by Name') print('-' * 170) for i in
cur: for j in i:
print("%20s" % j, end='')
print()
print('-' * 170)
def Insertval():
inp='y' while
inp=='y':
Acc=int(input('Enter Account Number: '))
name=input('Enter Name: ') mobile=int(input('Enter
Your Mobile Number: '))
Email_id=input("Enter Your Email Id: ")
Residence=input("Enter Your Residence Area(in less than 15 characters)")
city=input('Enter The City Name') Country=input('Enter The Country
Name') Balance=int(input('Enter The balance amount')) stm="insert into
accounts values(%s,%s,%s,%s,%s,%s,%s,%s)" noni=[Acc, name, mobile,
Email_id, Residence, city, Country,Balance] [Link](stm,noni)
8
[Link]() print("ENTRY ADDED!") inp=input('Do You Want To
Enter Another Entry?(y/n):') if inp=='n' or inp=='N':
break
def displaywhole():
try:
[Link]('select * from accounts')
print('#' * 170)
Head = "%20s %20s %20s %20s %20s %15s %18s %18s"
print(Head % ("ACCOUNT_NO", "NAME",
"MOBILE_NO","EMAIL_ID","RESIDENCE_AREA", "CITY", "COUNTRY",
"BALANCE"))
print('#' * 170)
for i in cur:
for j in i:
print("%20s" % j, end='')
print()
print('#' * 170)
except:
print('EMPTY TABLE')
def searchit():
try:
[Link]('select * from accounts')
r=[Link]()
lj=(input('ENTER THE ACCOUNT NUMBER YOU WANT TO SEARCH FOR: '))
for i in r: if i[0]==lj:
print('FOUND!')
print('#'*170)
Head = "%20s %20s %20s %20s %20s %15s %18s %18s"
print(Head % ("ACCOUNT_NO,", "NAME",
"MOBILE_NO","EMAIL_ID","RESIDENCE_AREA", "CITY", "COUNTRY",
"BALANCE"))
print('#' * 170)
for j in i:
print("%20s" % j, end='')
print()
print('#' * 170)
break else:
pass
9
print('RECORD NOT FOUND!')
except:
print('TABLE DOES NOT EXIST')
def updateit(): [Link]('select *
from accounts') r = [Link]()
jk=input('ENTER THE ACCOUNT NUMBER YOU WANT TO CHANGE DETAILS
FOR: ')
for i in r: s
= i s = list(s)
if s[0] == jk:
inp = input('DO YOU WANT TO CHANGE NAME?(y/n): ')
if inp == 'y' or inp == 'Y':
s[1] = input('ENTER THE NEW NAME: ') inp = input('DO YOU
WANT TO CHANGE MOBILE NUMBER?(y/n): ') if inp == 'y' or inp ==
'Y':
s[2] = (input("ENTER THE NEW MOBILE NUMBER: "))
inp = input('DO YOU WANT TO CHANGE EMAIL_ID?(y/n): ')
if inp == 'y' or inp == 'Y':
s[3] = input('ENTER THE NEW EMAIL ID: ') inp = input('DO YOU
WANT TO CHANGE RESIDENCE AREA?(y/n): ') if inp == 'y' or inp ==
'Y':
s[4] = input('ENTER THE NEW RESIDENCE: ') inp =
input('DO YOU WANT TO CHANGE CITY?(y/n): ') if inp
== 'y' or inp == 'Y':
s[5] = input('ENTER THE CITY NAME: ') inp = input('DO
YOU WANT TO CHANGE COUNTRY?(y/n): ') if inp == 'y' or
inp == 'Y':
s[6] = input("ENTER THE COUNTRY NAME: ")
else:
vcv = 'update accounts set name=%s, Mobile_No=%s,Email_id=%s,Residence_address
= %s, city = %s, country = %s whereaccount_num= %s'
dsf = [s[1], s[2], s[3], s[4], s[5], s[6], s[0]]
[Link](vcv, dsf)
[Link]()
print('Your Details Have been Updated!')
break else:
print('NO SUCH ACCOUNT!')
def displaysortmenu():
print('*'*170)
10
print(" 1. SORT WITH RESPECT TO ACCOUNT NUMBER")
print(" 2. SORT WITH RESPECT TO NAME") print(" 3.
SORT WITH RESPECT TO BALANCE") print(" 4. GO BACK
TO MAIN MENU") print('*'*170)
def displaytransactionmenu():
print('*'*170)
print(" 1. CREDIT(ADD MONEY TO ACCOUNT)") print("
2. DEBIT(TAKE MONEY OUT FROM ACCOUNT)")
print(" 3. GO BACK TO MAIN MENU")
print('*'*170)
def deleterecord():
try:
[Link]('select * from accounts')
lel=(input('Enter the account number of the account you want to delete: '))
found = 0 for i in r: i = list(i)
if i[0] == lel:
found = found + 1
[Link]("delete from accounts where Account_num=%s" %(lel,))
[Link]()
print("ACCOUNT DELETED!")
break if found == 0 :
print("NO SUCH RECORD FOUND!")
except:
print("TABLE DOES NOT EXIST")
def debitit():
[Link]("select * from accounts")
r = [Link]()
yo=(input("ENTER THE ACCOUNT NUMBER FOR ACCOUNT TO BE DEBITED: "))
found = 0 for i in r: i=list(i) if i[0]==yo: found = found + 1
print("THE BALANCE IN YOUR ACCOUNT IS:", i[7])
[Link]("select balance from accounts ")
ko=(input("ENTER THE AMOUNT TO BE DEBITED: "))
if (i[7]-ko)>2500: if ko<i[7]:
a = "update accounts set balance=balance-%s where account_num=%s"
b = (ko, yo) [Link](a, b)
[Link]()
print("AMOUNT DEBITED!")
pass else:
11
print('NOT ENOUGH BALANCE!')
pass else:
print("YOU HAVE TO LEAVE ATLEAST 2500 IN THE ACCOUNT!")
pass if found == 0:
print('NO RECORD FOUND!')
def credit():
[Link]("select * from accounts")
r = [Link]()
lp=(input("ENTER THE ACCOUNT TO BE CREDITED TO: "))
found = 0 for i in r: i=list(i) if i[0]==lp: found = + 1
nb=(input("ENTER THE AMOUNT YOU WANT TO CREDIT: "))
a = 'update accounts set balance=balance+%s where account_num=%s'
b = [nb, lp] [Link](a, b)
[Link]()
print("AMOUNT CREDITED!") if
found == 0:
print("NO RECORD FOUND!")
#################################################################
#EXECUTION BLOCK
print("@"*170)
print(" \t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBANKING MANAGEMENT SYSTEM\t\t\t\t\t")
print("@"*170) while True: menu() get=int(input("ENTER YOUR
CHOICE: ")) if get==1:
displaywhole()
get2=input("DO YOU WANT TO SEE A SORTED LIST?(Y/N): ")
if get2 == 'y' or get2 == 'Y': while True:
displaysortmenu()
try:
get3 = int(input("ENTER WHICH SORT WOULD YOU WANT?:"))
except:
print("DO NOT ENTER A CHARACTER!, ONLY ENTER NUMBER")
break if get3 == 1:
sortwithaccount()
elif get3 == 2:
sortwithname() elif
get3 == 3:
sortwithbalance()
elif get3 == 4:
12
break
else:
print("ENTER A
VALID
NUMBER!")
elif get2 =='n' or
get2 =='N':
print("OKAY!")
continue elif
get == 7:
print('BBYE!')
break elif get
== 2:
Insertval() elif
get == 3: while
True:
searchit()
imk = input("DO YOU WANT TO SEARCH FOR ANY OTHER ACCOUNT?(Y/N): ")
if imk == 'n' or imk == 'N':
break
elif get == 4:
while True:
updateit()
jgjg = input("DO YOU WANT TO MODIFY ANY OTHER ACCOUNT?(Y/N):")
if jgjg == 'n' or jgjg == 'N': break elif get == 5: while True:
displaytransactionmenu() try:
jojo = int(input("ENTER YOUR CHOICE: "))
except:
print("ENTER A NUMBER, NO CHARACTERS ALLOWED!")
break if jojo == 1: while True:
credit()
lk = input("DO YOU WANT TO CREDIT AGAIN?(Y/N): ")
if lk == 'n' or lk == 'N': break elif jojo == 2: while
True: debitit()
bv = input("DO YOU WANT TO DEBIT AGAIN?(Y/N): ")
if bv == 'n' or bv == 'N':
break
elif jojo == 3:
break
else:
13
print("PLEASE ENTER A VALID CHOICE! ")
break elif get == 6: while True: deleterecord()
rf = input("DO YOU WANT TO DELETE ANOTHER ENTRY?(Y/N): ")
if rf == 'n' or rf == 'N': break else:
print("ENTER A VALID NUMBER FROM 1-7")
OUTPUT
14
15
16
CONCLUSION
Practical Training is a very important part of the curriculum as it strengthens the
concepts and enhances knowledge about the practical implementation of all the
theory concepts, we have learnt so far in different subjects.
This project is a virtualization of transactions in banking system. The banking
system are used manual working but when we used online banking system it is
totally virtualization process which avoid manual process and converts it in
17
automatic process. If user can make a transaction in bank management system it
is available in any were also user can link aadhar with account, change branch
location easily. Bank management system is saving the time with accuracy than
bank manual system. Finally, this gives us a lot of mental satisfaction that the
project we have worked upon is a real time project, which will be installed at
the customer site after some more session of regress testing. Although the
project work has been done in a complete and detailed manner but due to the
constraint of time, we could not include some more features we wanted to. We
left these features as a part of the future development.
FUTURE SCOPE
This project can be used in the bank after adding some more useful modules in
the project for which banks are providing services, like opening saving or
current account, giving loans, providing credit or debit card services, ATM
services, services like payment of electricity bills, telephone bills. Utmost care
and back-up procedures must be established to ensure 100% successful
implementation of the computerized banking system. In case of system failure,
the organization should be in a position to process the transaction with another
organization or if the worst comes to the worst, it should be in a position to
complete it manually. This project has been designed in such a way that, its
can further upgraded very easily. The main advantage of this system is it's
modularity. This system helps the management to manage to eternal as well as
external work. It can also used to sentinel database of all bank, so that all the
transaction will be online and easily manageable. This system can also be
18
integrated with account department. The employee module can also be
integrating onto this system, so the bank employee record also is automated.
REFERENCE
• Computer Science with Python by Sumita Arora
• [Link]
tool-for-creating-nicely-formatted-tables/
WEBSITES:-
[Link]
[Link]
Made By:-
TANVI SIDDHARTH
19
20