Bank Management Sysrem
Bank Management Sysrem
Bank Management Sysrem
USING PYTHON
Submitted in partial fulfilment of the requirements for the award of Bachelor of
Science degree in Computer Science
By
Santhosh Kumar. B (39290089)
Vignesh. A (39290124)
SATHYABAMA
INSTITUTE OF SCIENCE AND TECHNOLOGY
(DEEMED TO BE UNIVERSITY)
Accredited with Grade “A” by NAAC
JEPPIAAR NAGAR, RAJIV GANDHI SALAI,
CHENNAI – 600119
MARCH 2022
DEPARTMENT OF COMPUTER SCIENCE
BONAFIDE CERTIFICATE
This is to verify that this project report is the bonafide work of Santhosh Kumar.
B(39390089) and Vignesh. A (39290124) who carried out the project entitled as
“BANK MANAGEMENT SYSTEM USING PYTHON” under our supervision from Dec
2021 to March 2022.
Internal Guide
DR . MRS. M. MALINI DEEPIKA
I Santhosh Kumar B (39290089) and Vignesh A (39290124) hereby declare that the
Project Report entitled “Bank Management System using python” done by me under
the guidance of Dr . M . Malini Deepika is submitted in partial fulfilment of the
requirements for the award of Bachelor of Science degree in Computer Science.
DATE: 01.03.2022
PLACE: Chennai, Pondicherry SIGNATURE OF THE CANDIDATE
ACKNOWLEDGEMENT
I would like to express my sincere and deep sense of gratitude to my Project Guide
Dr./Mr./Ms for his valuable guidance, suggestions and constant encouragement
paved the way for the successful completion of my project work.
I wish to express my thanks to all Teaching and Non-teaching staff members of the
Department Of Computer Science and Engineering who were helpful in many ways
for the completion of the project.
ABSTRACT
This is a simple GUI based system which is very easy to understand and use .In
this project , it contains all the basic functions of bank .Creating a new account
,Transactions like withdrawal and deposit amount to the account ,Getting the
balance details ,Closing an account Updating the account details.
In this project, he /she can use all those available features easily without any
restruction. It is too easy to use, he/she can check the total bank account records
easily. Talking about the features of the bank management system, A user can
create an account by providing the name of the account holder, number,
selecting amount type (Saving account or current account) and providing an initial
amount more than or equal to 500.
Then the user can also deposit and withdraw money just by providing his/her
account and entering the amount. For certain purpose, he /she can also check for
the balance inquiry which displays the account number and amount. He / She
can also view the entire account holder’s list. Another feature s that he/she can
modify their account detail and type if they want to.
This simple GUI based Bank Management system provides the simplest
management of bank account and transaction. In short, this project mainly
focuses on CRUD operation. There’ s an external database connection file used
in this project to save user’s data permanently.
TABLE OF CONTENTS
Chapter No. TITLE Page
ABSTRACT V
LIST OF FIGURES VII
1 INTRODUCTION 1
2 LITERATURE SURVEY 2
3 AIM AND SCOPE OF PRESENT INVESTIGATION 3
3.1 AIM OF THE PROJECT 3
3.2 SCOPE AND OBJECTIVE 3
3.3 SYSTEM REQUIREMENTS 4
3.3.1 HARDWARE REQUIREMENTS 4
3.3.2 SOFTWARE REQUIREMENTS 4
3.4 SOFTWARE USED 5
3.4.1 PYTHON LANGUAGE 5
3.4.2 PYTHON CHARACTERISTICS 5
3.4.3 APPLICATIONS OF PYTHON 5
3.5 PYCHARM 6
3.6 TKINTER 8
3.7 PICKLE 12
LIST OF FIGURES
FIGURE NO: FIGURE NAME PAGE NO
1. INTRODUCTION
1.1 OVERVIEW OF PROJECT
LITERATURE SURVEY
In MD. Aquil Amwar (2012), in the second paper we learn which type of problems
are created in banking system during the different types of transactions. Here
discuss about if any region the transaction may be fail then how to avoid it and
fixed it. We also studied about Firms in Italy defaulted more against banks with
high levels of past losses. This `selective' default increases where legal
enforcement is weak. Poor enforcement thus can create a systematic transaction
risk by encouraging banking users to defaulted masse once the continuation
value of their bank relationships comes into doubt. In banking sector the security
also must and when we talk about money or property this case is more
sensational then we found the security is the major thing to do in banking system.
In our project we provide the security questions when customer login with
account to prevent the fraud and provide the best security in the bank
management system. The study used constructs adopted from Technology
Acceptance Model along with constructs of perceived service quality, perceived
credibility and perceived risk to empirically establish the influence on satisfaction
and continuance usage intentions. The study confirmed that after adoption of the
technology, the customer finds satisfaction in the quality parameters of the
service
CHAPTER 3
3.5 PYCHARM:
PyCharm is a dedicated Python Integrated Development Environment
(IDE) providing a wide range of essential tools for Python developers, tightly
integrated to create a convenient environment for productive Python, web, and data
science development.
PyCharm is available in three editions:
Community (free and open-sourced): for smart and intelligent Python
development, including code assistance, refactorings, visual debugging, and
version control integration.
Professional (paid) : for professional Python, web, and data science
development, including code assistance, refactorings , visual debugging,
version control integration, remote configurations, deployment, support for
popular web frameworks, such as Django and Flask, database support,
scientific tools (including Jupyter notebook support), big data tools.
Edu (free and open-sourced): for learning programming languages and
related technologies with integrated educational tools.
Supported languages :
Besides, in the Professional edition, one can develop Django, Flask, and Pyramid
applications. Also, it fully supports HTML (including HTML5), CSS, JavaScript, and
XML: these languages are bundled in the IDE via plugins and are switched on for
you by default. Support for the other languages and frameworks can also be added
via plugins (go to Settings | Plugins or PyCharm | Preferences | Plugins for macOS
users, to find out more or set them up during the first IDE launch).
Supported platforms:
PyCharm is a cross-platform IDE that works on Windows, macOS, and Linux. Check
the system requirements:
You can install PyCharm using Toolbox or standalone installations. If you need
assistance installing PyCharm, see the installation instructions: Install PyCharm .
3.6 Tkinter:
This Tkinter tutorial introduces you to the exciting world of GUI programming in
Python.
Tkinter allows you to develop desktop applications. It’s a very good tool for GUI
programming in Python.
Easy to learn.
Use very little code to make a functional desktop application.
Layered design.
Portable across all operating systems including Windows, macOS, and Linux.
Pre-installed with the standard Python library.
1.T k inter Fundamentals
Tkinter Hello, World! – show you how to develop the first Tkinter program
called Hello, World!
Window – learn how to manipulate various attributes of a Tkinter window
including title, size, location, resizability, transparency, and stacking order.
Tk Themed Widgets – introduce you to Tk themed widgets.
Setting options for a widget – learn various ways to set options for a widget.
Command Binding – learn how to respond to events using command
bindings.
Event Binding – show you how to use the bind() method to bind an event of a
widget.
Label – learn how to use the Label widget to show a text or image on a frame
or window.
Button – walk you through the step of creating buttons.
Entry – learn how to create a textbox using the Entry widget.
2. Layout Managements
Geometry managers allow you to specify the positions of widgets inside a top-level
or parent window.
pack – show you how to use the pack geometry manager to arrange widgets
on a window.
grid – learn how to use the grid geometry manager to place widgets on a
container.
place – show you how to use the place geometry manager to precisely
position widgets within its container using the (x, y) coordinate system.
Tkinter provides you with some commonly used widgets, which allow you to start
developing applications more quickly.
4. Tkinter Examples
Tkinter example – show you how to build a simple application that converts a
temperature from Fahrenheit to Celsius.
Displaying a message box – show you how to display various message boxes
including information, warning, and error message boxes.
Displaying a Yes/No Dialog – show you how to use the askyes no() function to
display a yes/no dialog.
Display an OK/Cancel Dialog – show you how to use the askok
cancel() function to display an OK/Cancel dialog.
Display a Retry/Cancel Dialog – show you how to use the askretry
cancel() function to display a Retry/Cancel dialog.
Show an Open File Dialog – display an open file dialog to allow users to
select one or more files.
Displaying the Native Color Chooser – show you how to display the native
color-chooser dialog.
Menu – learn how to add a menu bar and menus to a window.
Menu button – show you how to the Menu button widget.
Option Menu – Walk you through the steps of creating an Option Menu widget
that provides a list of options in a drop-down menu.
Changing the ttk theme – how to change the default ttk theme to the new one.
Modifying ttk style – show you how to change the appearance of widgets by
modifying or extending the ttk style.
Understanding ttk elements – help you understand ttk elements and how to
use them to change the appearance of widgets.
Modifying the appearance of a widget based on its states – show you how to
dynamically change the appearance of a widget based on its specific state.
Scheduling a task with the after() method – how to use the after() method to
schedule a task that will run after a timeout has elapsed.
Developing multithreading Tkinter Applications – show you how to use the
threading module to develop a multithreading Tkinter application.
Displaying a progress bar while a thread is running – walk you through the
steps of connecting a progress bar with a running thread.
Tkinter MVC – structure a tkinter application using the MVC design pattern.
Tkinter validation – show you how to use the Tkinter validation to validate user
inputs.
Tkinter & Matplotlib – show you how to display a bar chart from the matplotlib
in Python.
3.7 Pickle
Pickle is used for serializing and de-serializing Python object structures, also
called marshalling or flattening. Serialization refers to the process of converting
an object in memory to a byte stream that can be stored on disk or sent over a
network. Later on, this character stream can then be retrieved and de-serialized
back to a Python object. Pickling is not to be confused with compression! The
former is the conversion of an object from one representation (data in Random
Access Memory (RAM)) to another (text on disk), while the latter is the process of
encoding data with fewer bits, in order to save disk space.
Pickling is useful for applications where you need some degree of persistency in
your data. Your program's state data can be saved to disk, so you can continue
working on it later on. It can also be used to send data over a Transmission
Control Protocol (TCP) or socket connection, or to store python objects in a
database. Pickle is very useful for when you're working with machine learning
algorithms, where you want to save them to be able to make new predictions at a
later time, without having to rewrite everything or train the model all over again.
If you want to use data across different programming languages, pickle is not
recommended. Its protocol is specific to Python, thus, cross-language
compatibility is not guaranteed. The same holds for different versions of Python
itself. Unpickling a file that was pickled in a different version of Python may not
always work properly, so you have to make sure that you're using the same
version and perform an update if necessary. You should also try not to unpickle
data from an untrusted source. Malicious code inside the file might be executed
upon unpickling.
Why Pickle?: In real world sceanario, the use pickling and unpickling are widespread
as they allow us to easily transfer data from one server/system to another and then
store it in a file or database.
Precaution: It is advisable not to unpickle data received from an untrusted source as
they may pose security threat. However, the pickle module has no way of knowing or
raise alarm while pickling malicious data.
Only after importing pickle module we can do pickling and unpickling. Importing
pickle can be done.
CHAPTER 4
4.1.2Proposed System:
The by looking at disadvantages these are pretty serious for any
banking system as they are capable of bringing down the whole system. By
digitalization in the banking system, it will not only achieve its goals and also will give
some benefits like less manual calculation will be required.
Module 2: Transaction
The transactions are doing every day. It manages all the transactions like new
account entry, deposit as well as withdraw entry, transaction of money for various
processes. A bank transaction is a record of money that has moved in and out of
your bank account. When you have costs associated with your business - for
example, rent for office space - the payments for these will come out of your bank
account as transactions. The formation of your asset accounts, capital
accounts and liability accounts all rely on bank transactions. A transaction account,
also called a checking account, chequing account, current account, demand
deposit account, or share draft account at credit unions, is a deposit account held at
a bank or other financial institution. It is available to the account owner "on demand"
and is available for frequent and immediate access by the account owner or to
others as the account owner may direct. Access may be in a variety of ways, such as
cash withdrawals, use of debit cards, cheques (checks) and electronic transfer. In
economic terms, the funds held in a transaction account are regarded as liquid
funds. In accounting terms, they are considered as cash.
Transaction accounts are known by a variety of descriptions, including a current
account (British English), chequing account or checking account when held by
a bank, share draft account when held by a credit union in North America. In
the United Kingdom, Hong Kong, India and a number of other countries, they are
commonly called current or cheque accounts. Because money is available on
demand they are also sometimes known as demand accounts or demand deposit
accounts. In the United States, NOW accounts operate as transaction accounts.
Transaction accounts are operated by both businesses and personal users.
Depending on the country and local demand economics earning from interest rates
varies. Again depending on the country the financial institution that maintains the
account may charge the account holder maintenance or transaction fees or offer the
service free to the holder and charge only if the holder uses an add-on service such
as an overdraft.
Maintaining too many bank accounts can be difficult, here are some steps you can
follow to close a bank account. Having a limited number of bank accounts is good
but too many bank account can be a trouble for you. Because you have to maintain
minimum balance requirements on each of them. So it is advisable to close bank
accounts that are not used actively. If you among them who have an unwanted bank
account then you should close it. Do you know how to close a bank account?
Here are some steps which you can follow to close your bank account. But before
you go for it don't forget to delink your bank account from any of the payments
platforms or service apps like Paytm, Uber, Swiggy etc.
Visit Bank
You cannot close your bank account online. You need to visit your home branch
where you opened the account. So you need to walk into the home branch where
you have an account and request them for account closure.
Cheque Book: You need to return the cheque book along with remaining
cheque leaves to the respective bank branch at the time of closing their
account.
Passbook: You should also handover your passbook to the bank at the time
of closing their SBI account.
Debit Card: The account holder should also return their debit card which is
used to withdraw money from ATM.
ID proof: Some bank may even ask you for ID proof and address proof
before closing your account.
Closure charges
Some banks charge for the account closure. For example, SBI Bank's don't charge
for the closure within 14 days of the opening of an account. Any closure of the SBI
bank account after 14 days but before 1 year are subject to some closure charges.
Keep these things in mind and don’t let unwanted bank accounts lie idle as there is
no benefit in making yourself overburdening in gathering information and statements
from too many banks. So close unwanted account they serve no good to your
financial life.
Bank Entity : Attributes of Bank Entity are Bank Name, Code and
Address.
Code is Primary Key for Bank Entity.
Customer Entity : Attributes of Customer Entity are Customer id, Name,
Phone Number and Address.
Customer id is Primary Key for Customer Entity.
Branch Entity : Attributes of Branch Entity are Branch id, Name and
Address.
Branch id is Primary Key for Branch Entity.
Account Entity : Attributes of Account Entity are Account number,
Account type and Balance.
Account number is Primary Key for Account Entity.
Loan Entity : Attributes of Loan Entity are Loan id, Loan Type and
Amount.
Loan id is Primary Key for Loan Entity.
Relationships are :
Next select save option in the display. Now I need to check the balance means,
Select the option check balance then, we need to enter the account number we get
the details of our account with balance. Now I need to change my details means,
First, we need to enter the account number Next enter the account holder name and
the account type. we get the details of our account now we can update the details.
If I need to check the how many accounts in our bank means, we can see the option
account list. In that option we can see how many accounts are in the bank with
account number, account holder name, account type and balance amount.
CHAPTER 5
5. RESULTS AND PERFORMANCE ANALYSIS
5.1 HOME PAGE: This is the total system of banking
5.2 NEW ACCOUNT: This is how the customers are created with a bank account.
This project has been developed to carry out the processes easily and quickly,
which is not possible with the manuals systems, which are overcome by this
software.
CHAPTER 6
6.1 CONCLUSION
Bank is the place where customers feel the sense of safety for
their property. In the bank, customers deposit and withdraw their money. Smooth
and efficient management affects the satisfaction of the customers and staff
members, indirectly. And of course, it encourages management committee in
taking some needed decision for future enhancement of the bank. Now a days,
managing a bank is tedious job up to certain limit. So software that reduces the
work is essential. Thus, considering above necessities, the software for bank
management has became necessary which would be useful in managing the
bank more efficiently.
Our software will perform and fulfill all the tasks that any
customer would desire. It is developed as a software program for managing the
entire bank process related to customer accounts to keep each every track about
their property and their various transaction processes efficiently. Hereby, our
main objective is the customer’s satisfaction considering today’s faster world.
In the recent years, computers are included in almost all kind of works and jobs
everyone come across in the routine. The availability of the software’s for almost
every process or every system has taken the world in its top-gear and fastens the
day-to-day life.
So, we have tried our best to develop the software program for the Bank
Management System where all the tasks to manage the bank system are
performed easily and efficiently.
For any system, present satisfaction is important, but is also necessary to see
and visualizes the future scope. It is necessary for any system as the limitations
that cannot be denied by anybody. These limitations, can be overcome by better
technologies.
1. Python For Desktop Applications: How to develop, pack and deliver Python
applications with TkInter by Tran Duc Loi
2. Python in A Nutshell: A Desktop Quick Reference, Third Edition by Alex
Martelli , Anna Ravenscroft , Steve Holden
3. The Python Language Reference Manual (version 3.2) by Guido van Rossum,
and Fred L. Drake, Jr. (Editor)
4. Dr. Geeta Sharma, “Study of Internet Banking Scenario in India”, International
Journal of Emerging Research in Management &Technology, ISSN: 2278-
9359, Volume 5, Issue 5, 2016, pp.43-48.
5. Anju Dagar, “Online Banking : Benefits and Related Issues”, International
Journal of Commerce, Business and Management (IJCBM), ISSN: 2319–
2828,Vol. 3, No. 5, 2014, pp.715-719.
6. Ebubeogu Amarachukwu Felix, “ Bank Customers Management System”,
International Journal of Scientific & Technology Research Volume 4, Issue 08,
2015, pp.326- 343.
7. Mahmood Shah, “E-Banking Management: Issues, Solutions, and Strategies”,
2009.
8. Muhammad Abdus Sattar Titu and Md. Azizur Rahman, “ Online Banking
System-Its Application in Some Selected Private Commercial Banks in
Bangladesh”, IOSR Journal of Business and Management (IOSR-JBM) e-
ISSN: 2278- 487X, Volume 9, Issue 4,2013, pp.37-44.
9. Bahman Saeidipour, Hojat Ranjbar and Saeed Ranjbar, “Adoption of Internet
banking”, IOSR Journal of Business and Management (IOSR-JBM) e-ISSN:
2278-487X, Volume 11, Issue 2 2013, pp.46-51.
10. D.Amutha, “A Study of Consumer Awareness towards eBanking”, Int J Econ
Manag Sci, ISSN: 2162-6359, Volume 5, issue 4, 2016, pp.1-4.
APPENDIX
SORCE CODE
import tkinter
import os
import ctypes
import pathlib
user32 = ctypes.windll.user32
oldlist=[]
recordpos=0
wn = tkinter.Tk()
wn.geometry('800x600+{}+{}'.format(xpos, ypos))
ft = font.Font(size=12)
accno = tkinter.IntVar()
accname = tkinter.StringVar()
acctype = tkinter.StringVar()
amount = tkinter.IntVar()
tamount = tkinter.IntVar()
currentscreen=0
def writeAccount():
account = Account()
writeAccountsFile(account)
messagebox.showinfo('BMS', 'Account created')
clearvalues()
def displayAll():
showframe(7)
file = pathlib.Path("accounts.data")
for i in table.get_children():
table.delete(i)
if file.exists():
mylist = pickle.load(infile)
infile.close()
else:
def showframe(num):
clearvalues()
mainframe.pack_forget()
eval('frm{}'.format(num)).pack()
def getbalancedetails():
file = pathlib.Path("accounts.data")
if file.exists():
mylist = pickle.load(infile)
infile.close()
found = False
if item.accNo == accno.get():
amount.set(item.deposit)
accname.set(item.name)
acctype.set(item.type)
found = True
else:
messagebox.showinfo('BMS',"No Account were open ")
if not found:
def trans(ttype):
global oldlist
if ttype==1:
else:
if tamount.get()<=int(amount.get()):
oldlist[recordpos-1].deposit-=tamount.get()
else:
messagebox.showinfo('BMS','Insufficient Balance')
rew os.remove('accounts.data')
pickle.dump(oldlist, outfile)
outfile.close()
os.rename('newaccounts.data', 'accounts.data')
clearvalues()
messagebox.showinfo('BMS',"updated....")
def deleteAccount():
newlist = []
if item.accNo != accno.get():
newlist.append(item)
os.remove('accounts.data')
pickle.dump(newlist, outfile)
outfile.close()
os.rename('newaccounts.data', 'accounts.data')
clearvalues()
messagebox.showinfo('BMS',"Account Deleted......")
def modifyAccount():
global recordpos,oldlist
file = pathlib.Path("accounts.data")
if file.exists():
oldlist = pickle.load(infile)
infile.close()
recordpos=0
recordpos+=1
if item.accNo == accno.get():
accname.set(item.name)
acctype.set(item.type)
amount.set(item.deposit)
break
else:
else:
def updatedetails():
oldlist[recordpos-1].name=accname.get()
oldlist[recordpos-1].type =acctype.get()
os.remove('accounts.data')
pickle.dump(oldlist, outfile)
outfile.close()
os.rename('newaccounts.data', 'accounts.data')
clearvalues()
messagebox.showinfo('BMS',"updated....")
def writeAccountsFile(account):
file = pathlib.Path("accounts.data")
if file.exists():
oldlist = pickle.load(infile)
oldlist.append(account)
infile.close()
os.remove('accounts.data')
else:
oldlist = [account]
pickle.dump(oldlist, outfile)
outfile.close()
os.rename('newaccounts.data', 'accounts.data')
def showlink(opt):
frm=links.index(opt)
if frm<6:
showframe(frm+1)
elif frm==6:
displayAll()
elif frm==7:
wn.destroy()
def goback(frm):
eval('frm{}'.format(frm)).pack_forget()
mainframe.pack()
def clearvalues():
accno.set(0)
accname.set('')
acctype.set('Savings')
amount.set(0)
tamount.set(0)
mainframe = tkinter.Frame(wn)
links = ['New Account', 'Deposit', 'Withdrawal', 'Balance Enquiry', 'Update Details', 'Close Account
'Account List', 'Exit']
ft1=font.Font(size=24)
frm2 = tkinter.Frame(wn)
frm3 = tkinter.Frame(wn)
frm4 = tkinter.Frame(wn)
frm5 = tkinter.Frame(wn)
frm6 = tkinter.Frame(wn)
frm7=tkinter.Frame(wn)
colsize=(50,50,100,200,100)
for i in range(5):
table.heading(i, text=cols[i])
frm1 = tkinter.Frame(wn)
mainframe.pack()
wn.mainloop()