INDEX
SNO. TITLE PAGE NO.
1 INTRODUCTION
2 AIM OF THE PROJECT
3 LIMITATIONS OF THE EXISTING SYSTEM
4 SYSTEM REQUIREMENTS
5 SOURCE CODE
6 SAMPLE INPUT/OUTPUT
7 CONCLUSION
8 BIBLIOGRAPHY
INTRODUCTION
Python is an easy to learn, powerful programming language. Python
programming language was developed by Guido Van Rossum in February 1991.
Python is based on or influenced with two programming languages: ABC language
and Modula-3. It has efficient high-level data structures and a simple but effective
approach to object-oriented programming. Python’s elegant syntax and dynamic
typing, together with its interpreted nature, make it an ideal language for scripting
and rapid application development in many areas on most platforms. The Python
interpreter is easily extended with new functions and data types implemented in C or
C++ (or other languages callable from C). Python is also suitable as an extension
language for customizable applications.
MySQL is an open-source relational database management system that works
on many platforms. It provides multi-user access to support many storage engines
and is backed by Oracle. SQL is the core of a relational database which is used for
accessing and managing the database. By using SQL, you can add, update or delete
rows of data, retrieve subsets of information, modify databases and perform many
actions.
This software is developed in the programming language Python in
association with MySQL i.e. available in the syllabus of CBSE Class XII for the
academic year 2024-2025.
The Bank Account Management System is an application for maintaining a
person's account in a bank. In this project I tried to show the working of a banking
account system and cover the basic functionality of a Bank Account Management
System. To develop a project for solving financial applications of a customer in
banking environment in order to nurture the needs of an end banking user by
providing various ways to perform banking tasks. Also to enable the user’s work
space to have additional functionalities which are not provided under a conventional
banking project. The Bank Account Management System undertaken as a project is
based on relevant technologies. The main aim of this project is to develop software
for Bank Account Management System. 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. This project is developed using Python
language and MYSQL. Creating and managing requirements is a challenge of IT,
systems and product development projects or indeed for any activity where you have
to manage a contractual relationship. Organization need to effectively define and
manage requirements to ensure they are meeting needs of the customer, while
proving compliance and staying on the schedule and within budget. The impact of a
poorly expressed requirement can bring a business out of compliance or even cause
injury or death. Requirements definition and management is an activity that can
deliver a high, fast return on investment. The project analyzes the system
requirements and then comes up with the requirements specifications. It studies
other related systems and then come up with system specifications. The system is
then designed in accordance with specifications to satisfy the requirements. The
system design is then implemented with Python and MYSQL. The system is
designed as an interactive and content management system. The content
management system deals with data entry, validation, confirmation and updation
while the interactive system deals with system interaction with the administration
and users. Thus, above features of this project will save transaction time and
therefore increase the efficiency of the system.
AIM OF THE PROJECT
This project "BANK MANAGEMENT SYSTEM" is useful for the bank
employees as well as customers to keep a track of account details. The emerging of
digital system made information available on finger tips. By automating the
transactions one can view the details as and when required. This project emphasises
the creation of new customer accounts and managing the existing account holders in
the bank by making digital system. At the same time one can generate daily reports,
monthly reports and annual reports which can enhance the smooth working of the
system.
This project is on how to perform Bank management effectively, fast and
easily. Management using pen and paper is absurd in the modern era. On the other
hand, a virtual Bank management system eliminates all these burdens. By using this
system, all reports can be generated quickly. Thus the project aims in creating a
good user-friendly Bank management system reducing human strain to a large
extent.
LIMITATIONS OF THE EXISTING SYSTEM
File lost
When computerized system is not implemented file is always lost because of
human environment. Sometimes due to some human error there may be a loss of
records.
File damaged
When a computerized system is not there file is always lost due to some
accident like spilling of water by some member on file accidentally, besides some
natural disaster like floods or fires may also damage the files.
When there is no computerized system there is always a difficulty in searching
of records if the records are large in number.
Space consuming
After the number of records becomes large the space for physical storage of
file and records also increases if no computerized system is implemented.
Cost consuming
As there is no computerized system, to add each record paper will be needed
which will increase the cost for the management of library.
SYSTEM REQUIREMENTS
HARDWARE REQUIREMENTS
x86 64-bit CPU (Intel / AMD architecture)
4 GB RAM.
5 GB free disk space.
SOFTWARE REQUIREMENTS
Operating System: Windows 98, 2000, XP, 7, 8, 8.1, 10 Tools: Python 3.5, Mysql
SOURCE CODE
MODULE : Main_bank.py
import mysql.connector as sql
conn=sql.connect(user='root', passwd='Smic123@',host='localhost',database='bank')
cur = conn.cursor()
#cur.execute('create table user_table(username varchar(25) primary key,passwrd varchar(25) not
null )')
print('=========================WELCOME TO BANK OF INDIA
=============================')
import datetime as dt
print(dt.datetime.now())
print()
print()
print('1.REGISTER')
print()
print('2.LOGIN')
print()
n=int(input('enter your choice='))
print()
if n== 1:
name=input('Enter a Username=')
print()
passwd=int(input('Enter a 4 DIGIT Password='))
print()
V_SQLInsert="INSERT INTO user_table (passwrd,username) values (" + str (passwd) + ",' "
+ name + " ') "
cur.execute(V_SQLInsert)
conn.commit()
print()
print('USER created succesfully')
import menu
if n==2 :
name=input('Enter your Username=')
print()
passwd=int(input('Enter your 4 DIGIT Password='))
V_Sql_Sel="select * from user_table where passwrd='"+str (passwd)+"' and username= ' "
+name+ " ' "
cur.execute(V_Sql_Sel)
if cur.fetchone() is None:
print()
print('Invalid username or password')
else:
print()
import menu
MODULE : Menu.py
import datetime as dt
import mysql.connector as sql
conn=sql.connect(user='root', passwd='Smic123\"',host='localhost',database='bank')
cur = conn.cursor()
conn.autocommit = True
c = 'y'
while c == 'y':
print()
print('1.CREATE BANK ACCOUNT')
print()
print('2.TRANSACTION')
print()
print('3.CUSTOMER DETAILS')
print()
print('4.TRANSACTION DETAILS')
print()
print('5.DELETE ACCOUNT')
print()
print('6.QUIT')
print()
n=int(input('Enter your CHOICE='))
print()
if n == 1:
acc_no=int(input('Enter your ACCOUNT NUMBER='))
print()
acc_name=input('Enter your ACCOUNT NAME=')
print()
ph_no=int(input('Enter your PHONE NUMBER='))
print()
add=(input('Enter your place='))
print()
cr_amt=int(input('Enter your credit amount='))
V_SQLInsert="INSERT INTO customer_details values (" + str (acc_no) + ",' "
+ acc_name + " ',"+str(ph_no) + ",' " +add + " ',"+ str (cr_amt) + " ) "
cur.execute(V_SQLInsert)
print()
print('Account Created Succesfully!!!!!')
conn.commit()
if n == 2:
acct_no=int(input('Enter Your Account Number='))
cur.execute('select * from customer_details where acct_no='+str (acct_no) )
data=cur.fetchall()
count=cur.rowcount
conn.commit()
if count == 0:
print()
print('Account Number Invalid Sorry Try Again Later')
print()
else:
print()
print('1.WITHDRAW AMOUNT')
print()
print('2.ADD AMOUNT')
print()
print()
x=int(input('Enter your CHOICE='))
print()
if x == 1:
amt=int(input('Enter withdrawl amount='))
cr_amt=0
cur.execute('update customer_details set cr_amt=cr_amt-'+str(amt) + '
where acct_no=' +str(acct_no) )
V_SQLInsert="INSERT INTO transactions values ({} , '{}' , {} , {})
".format(acct_no,dt.datetime.today(),amt,cr_amt)
cur.execute(V_SQLInsert)
conn.commit()
print()
print('Account Updated Succesfully!!!!!')
if x== 2:
amt=int(input('Enter amount to be added='))
cr_amt=0
cur.execute('update customer_details set cr_amt=cr_amt+'+str(amt) + '
where acct_no=' +str(acct_no) )
V_SQLInsert="INSERT INTO transactions values ({} , '{}' , {} , {})
".format(acct_no,dt.datetime.today(),cr_amt,amt)
cur.execute(V_SQLInsert)
conn.commit()
print()
print('Account Updated Succesfully!!!!!')
if n == 3:
acct_no=int(input('Enter your account number='))
print()
cur.execute('select * from customer_details where acct_no='+str(acct_no) )
if cur.fetchone() is None:
print()
print('Invalid Account number')
else:
cur.execute('select * from customer_details where acct_no='+str(acct_no) )
data=cur.fetchall()
for row in data:
print('ACCOUNT NO=',acct_no)
print()
print('ACCOUNT NAME=',row[1])
print()
print('PHONE NUMBER=',row[2])
print()
print('ADDRESS=',row[3])
print()
print('cr_amt=',row[4])
if n == 4:
acct_no=int(input('Enter your account number='))
print()
cur.execute('select * from customer_details where acct_no='+str(acct_no) )
if cur.fetchone() is None:
print()
print('Invalid Account number')
else:
cur.execute('select * from transactions where acct_no='+str(acct_no) )
data=cur.fetchall()
for row in data:
print('ACCOUNT NO=',acct_no)
print()
print('DATE=',row[1])
print()
print('WITHDRAWAL AMOUNT=',row[2])
print()
print('AMOUNT ADDED=',row[3])
print()
if n == 5:
print('DELETE YOUR ACCOUNT')
acct_no=int(input('Enter your account number='))
cur.execute('delete from customer_details where acct_no='+str(acct_no) )
print('ACCOUNT DELETED SUCCESFULLY')
if n == 6:
c='n'
else:
print('THANK YOU PLEASE VISIT AGAIN')
DATABASE & TABLE DETAILS
import mysql.connector as sql
conn=sql.connect(user='root', passwd='Smic123@',host='localhost',database='bank')
if conn.is_connected():
print('connected succesfully')
cur = conn.cursor()
cur.execute('create table customer_details(acct_no int primary key,acct_name varchar(25)
,phone_no bigint(25) check(phone_no>11),address varchar(25),cr_amt float )')
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
import mysql.connector as sql
conn=sql.connect(user='root', passwd='Smic123@',host='localhost',database='bank')
cur = conn.cursor()
cur.execute('create table transactions(acct_no int(11),date date ,withdrawal_amt
bigint(20),amount_added bigint(20) )')
print('transaction table successfully created')
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
import mysql.connector as sql
conn=sql.connect(user='root', passwd='Smic123@',host='localhost',database='bank')
cur = conn.cursor()
cur.execute('create table user_table(username varchar(25) primary key,passwrd varchar(25) not
null )')
print('user table successfully created')
SAMPLE INPUT/OUTPT
===============WELCOME TO BANK OF INDIA =============================
2022-10-27 09:32:03.612826
1.REGISTER
2.LOGIN
enter your choice=1
Enter a Username=aniletw
Enter a 4 DIGIT Password=2022
USER created successfully
1.REGISTER
2.LOGIN
enter your choice=2
Enter your Username=aniletw
Enter your 4 DIGIT Password=2022
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=1
Enter your ACCOUNT NUMBER=1111
Enter your ACCOUNT NAME=ANKIT SHARMA
Enter your PHONE NUMBER=8877665533
Enter your place=ETAWAH
Enter your credit amount=12000
Account Created Succesfully!!!!!
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=2
Enter Your Account Number=1111
1.WITHDRAW AMOUNT
2.ADD AMOUNT
Enter your CHOICE=2
Enter amount to be added=500
Account Updated Succesfully!!!!!
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=2
Enter Your Account Number=1111
1.WITHDRAW AMOUNT
2.ADD AMOUNT
Enter your CHOICE=1
Enter withdrawl amount=200
Account Updated Succesfully!!!!!
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=3
Enter your account number=1111
ACCOUNT NO= 1111
ACCOUNT NAME= ANKIT SHARMA
PHONE NUMBER= 8877665533
ADDRESS= ETAWAH
cr_amt= 12300.0
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=4
Enter your account number=1111
ACCOUNT NO= 1111
DATE= 2022-10-27
WITHDRAWAL AMOUNT= 0
AMOUNT ADDED= 500
ACCOUNT NO= 1111
DATE= 2022-10-27
WITHDRAWAL AMOUNT= 200
AMOUNT ADDED= 0
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=5
DELETE YOUR ACCOUNT
Enter your account number=1111
ACCOUNT DELETED SUCCESFULLY
1.CREATE BANK ACCOUNT
2.TRANSACTION
3.CUSTOMER DETAILS
4.TRANSACTION DETAILS
5.DELETE ACCOUNT
6.QUIT
Enter your CHOICE=6
THANK YOU PLEASE VISIT AGAIN
CONCLUSION
After we have completed the project we are sure the problems in the existing system
would overcome. The “BANK MANAGEMENT SYSTEM” process made
computerized to reduce human errors and to increase the efficiency. The main focus
of this project is to reduce Human efforts. The maintenance of the records is made
efficient, as all the records are stored in the data file, through which data can be
retrieved easily. The navigation control is provided in all the forms to navigate
through the large amount of records. If the numbers of records are very large then
user has to just type in the search string and user gets the results immediately. The
Account holders are given a particular unique id no, so that they can be accessed
correctly and without errors. Our main aim of the project is to get the correct
information about a particular Account holder available in the bank. The problems,
which existed in the earlier system, have been removed to a large extent. And it is
expected that this project will go a long way in satisfying user’s requirements. The
computerization of the Bank Management System will not only improves the
efficiency but will also reduce human stress thereby indirectly improving human
recourses.
BIBLIOGRAPHY
Websites:
https://www.analyticsvidhya.com/blog/2021/07/3-interesting-python-projects-with-
code-for-beginners/
https://realpython.com/tutorials/projects/
Books:
Sumita Arora (Class XII) Textbook
Sumita Arora (Class XI) Textbook