0% found this document useful (0 votes)
9 views42 pages

Bank Management System - T.tonijey Benhar (21.10.24)

The document outlines a project on a Bank Management System developed by T. Tonijey Benhar under the guidance of Mrs. J. Minita. It details the system's objectives, proposed functionalities, and the technologies used, including Python and SQLite3, to automate banking operations and enhance customer service. The project aims to improve efficiency, security, and compliance within banking institutions through a comprehensive software solution.

Uploaded by

abeshimmanuel07
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views42 pages

Bank Management System - T.tonijey Benhar (21.10.24)

The document outlines a project on a Bank Management System developed by T. Tonijey Benhar under the guidance of Mrs. J. Minita. It details the system's objectives, proposed functionalities, and the technologies used, including Python and SQLite3, to automate banking operations and enhance customer service. The project aims to improve efficiency, security, and compliance within banking institutions through a comprehensive software solution.

Uploaded by

abeshimmanuel07
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

A project on

BANK MANAGEMENT SYSTEM

Done by

T. TONIJEY BENHAR

Under the Guidance of

Mrs. J. MINITA M.Sc., B.Ed., M.A.,

King of Kings School (CBSE)

V.G.P. Pannerpuram

Thoothukudi – 628 002


ACKNOWLEDGEMENT

I would like to express my sincere gratitude to Mrs. J. MINITA M.Sc.,

B.Ed., M.A., for her invaluable guidance and support throughout the

completion of this project. Her expertise and encouragement have been

instrumental in shaping my understanding of the subject matter.

I am also thankful to Mrs. JULIYA GRENAB RAJAMMAL M.Sc.,

M.Ed., for providing the necessary resources and environment conducive

to learning, which enabled me to undertake this project.

Additionally, I extend my appreciation to my classmates and friends

for their assistance and cooperation during the course of this project. Their

insights and feedback have greatly contributed to its overall quality.

I also, would like to acknowledge the support of my family for their

patience and understanding during this endeavor.

Finally, I thank all those who had helped me directly or indirectly for

the completion of the project.

T.TONIJEY BENHAR
TABLE OF CONTENTS

S. NO. CONTENTS PAGE NO.

1 INTRODUCTION 1

1.1. About Python 1

1.2. About SQLite3 2

1.3. About Bank Management System 2

2 OBJECTIVE OF THE PROJECT 3

3 PROPOSED SYSTEM 4

4 SYSTEM DEVELOPMENT LIFE CYCLE 7

4.1. Python IDE: Python Characteristics 7

4.2. SQLite3: Key Features of SQLite3 8

4.3. Creating Database and Tables 10

4.4. Life Cycle 11

4.4.1. Requirement Gathering and Analysis

4.4.2. System Design 11

4.4.3. Development 12

4.4.4. Testing 12

4.4.5. Deployment 12
4.4.6. Maintenance and Support 13

4.4.7. Evaluation and Evolution 13

4.4.8. Key Considerations in the Life Cycle 14

5 REQUIREMENTS 15

5.1. Hardware Requirements 15

5.2. Software Requirements 15

6 MODULES USED 16

7 FLOW CHART 18

8 SOURCE CODE 19

9 OUTPUT SCREEN 29

10 LIMITATION/ FUTURE SCOPE 34

10.1. Limitations 34

10.2. Future Scope 35

11 BIBLIOGRAPHY 38
CHAPTER - 1

INTRODUCTION

A Bank Management System (BMS) is a comprehensive software solution


designed to manage and streamline the operations of a banking institution. It
automates core banking functions such as account management, transaction
processing, loan handling, and customer service, thereby improving efficiency,
accuracy, and customer satisfaction. The system is essential for both large
commercial banks and small financial institutions to handle the daily challenges
of banking, including security, data management, compliance, and operational
scalability.
In today’s fast-paced financial world, traditional banking methods are no
longer sufficient to meet the growing demands of customers who expect quick,
reliable, and secure services. A Bank Management System replaces outdated,
manual processes with a centralized, digital solution that allows for real-time
monitoring, reporting, and decision-making. By integrating various banking
operations such as deposits, withdrawals, loan applications, and account inquiries
into a single platform, BMS enhances productivity and reduces human error.

1.1. About Python


Python is an object-oriented programming language created by Guido Rossum in
1989. It is ideally designed for rapid prototyping of complex applications. It has
interfaces to many OS system calls and libraries and is extensible to C or C++.
Many large companies use the Python programming language include NASA,
Google, YouTube, BitTorrent, etc. Python programming is widely used in
Artificial Intelligence, Natural Language Generation, Neural Networks and other
advanced fields of Computer Science. Python had deep focus on code readability
& this class will teach you python from basics.

1.2. About SQLite3


SQLite3 is a lightweight, self-contained, serverless relational database
management system (RDBMS) that is widely used for embedding databases
within applications. It is part of the SQLite family and uses SQL (Structured
Query Language) to manage data. Unlike traditional database systems like
MySQL or PostgreSQL, SQLite does not require a separate server process,
making it ideal for applications that need a simple, zero-configuration database
solution.

1.3. About Bank Management System


In this project we have created a Virtual Bank (COLONY BANK OF INDIA)
using Python and MySQL. Data entered by the user are stored in MYSQL
database in tabular form. Here We have done CRUD Operation. The Best Part of
this code is that it is 100% user friendly because of excess use of exceptional
handling.
This project is designed for The Bank Staffs to keep the record of their
customers. Only authorized Users can have the accessibility to the program. User
after Logging in have the support to display all records, and modify it accordingly.
If someone is not having Login Id, password he/she could make a new id. Further
it can also check overall record of a local customer or full detail of a single a/c as
per transactions, create a new record for new customer, Update an old customer
record, Delete a record of a customer and Update Loans of the customer. Python
is used as Front End and MySQL is used as Back End.
UserName is the Primary Key in Bank Table and UserName1 is the Foreign
key in Transaction Table.

2
CHAPTER - 2

OBJECTIVE OF THE PROJECT

The “Bank Management System” project is to develop a software solution that


automates and streamlines the core functions of a bank, improving operational
efficiency and enhancing customer service. Specifically, the project aims to:

1. Customer Account Management: Create a system for managing customer


accounts, including account creation, updating information, and tracking
transaction histories.
2. Transaction Management: Facilitate secure deposits, withdrawals, fund
transfers, and balance inquiries in real-time, ensuring accuracy and
preventing errors.
3. Loan and Mortgage Management: Provide functionalities to manage loans
and mortgages, track payments, calculate interest rates, and monitor
repayment schedules.
4. Security and Privacy: Ensure the security of customer data and transactions
through encryption, authentication, and authorization measures.
5. Reporting and Analytics: Generate financial reports, transaction
summaries, and performance analytics for both bank employees and
customers.
6. User Roles and Permissions: Implement user access controls for
administrators, employees, and customers to ensure proper role-based
permissions.
7. Customer Support: Integrate customer service features such as inquiries,
support requests, and complaint management.
8. Regulatory Compliance: Ensure the system complies with relevant banking
regulations and standards for data protection and financial reporting.

3
CHAPTER – 3

PROPOSED SYSTEM

The Bank Management System involves the design and development of a


comprehensive, user-friendly platform that will streamline various banking
operations. The system will offer improved security, efficiency, and ease of use
for both customers and bank staff. The proposed system will be divided into
several core modules and functionalities to achieve this:

Account Management Module

Customer Registration: Allow new customers to open accounts by providing


personal details (name, address, contact info, etc.).
Account Types: Support different account types such as Savings, Current,
and Business accounts.
Account Information: Enable customers and bank staff to view account
details (balance, account number, transaction history, etc.).

Transaction Management Module

Deposits and Withdrawals: Enable customers to make deposits and withdrawals


online and at branches.
Fund Transfers: Facilitate easy fund transfers between accounts within the
same bank and other banks (e.g., wire transfers).
Transaction History: Maintain and display all customer transactions with
real-time updates.

4
Bill Payments: Provide the ability to pay bills such as utilities, loans, or
credit card payments through the system.

Security and Authentication

Multi-factor Authentication (MFA): Implement strong authentication


mechanisms (passwords, OTPs, biometric authentication).
Data Encryption: Ensure that all sensitive customer data and transactions are
encrypted both in storage and during transmission.
Role-based Access Control (RBAC): Assign permissions based on roles
(e.g., Admin, Teller, Customer) to prevent unauthorized access to sensitive
information.

Customer Support Module

Inquiries and Support: Provide customers with a portal to raise inquiries or


complaints regarding their accounts, transactions, or other banking services.
FAQs and Help Desk: Include a knowledge base and chatbot or automated
system to answer common queries.
Live Support: Provide a ticketing system for live support with customer
service representatives.

Admin Management Module

User Management: Manage bank staff, assign roles and permissions, and monitor
system usage.
Audit Trail: Keep track of every action taken by both customers and bank
staff for accountability and transparency.
System Backup and Recovery: Implement automatic data backup
mechanisms and disaster recovery plans in case of system failures.

5
Benefits of the Proposed System

Efficiency: Automates manual processes and reduces human errors.


Security: Implements modern security measures to safeguard sensitive
customer data.
Convenience: Provides customers with 24/7 access to banking services
through mobile and online platforms.
Scalability: Designed to handle increasing user demand and transaction
volumes as the bank grows.
Regulatory Compliance: Ensures the bank adheres to necessary regulations
and standards.

6
CHAPTER - 4

SYSTEM DEVELOPMENT LIFE CYCLE

4.1. Python IDE: Python Characteristics


➢ It provides rich data types and easier to read syntax than any other
programming languages
➢ It is a platform independent scripted language with full access to operating
system API's
➢ Compared to other programming languages, it allows more run-time
flexibility
➢ It includes the basic text manipulation facilities of Perl and Awk
➢ A module in Python may have one or more classes and free functions
➢ Libraries in Pythons are cross-platform compatible with Linux, Macintosh,
and Windows
➢ For building large applications, Python can be compiled to byte-code
➢ Python supports functional and structured programming as well as OOP
➢ It supports interactive mode that allows interacting Testing and debugging
of snippets of code
➢ In Python, since there is no compilation step, editing, debugging and testing
is fast.

Key Features of Python IDEs


➢ Docstring Support: IDEs help developers document their code with
docstrings, which can later be used by documentation generation tools (like
Sphinx). Some IDEs even generate docstrings automatically.
➢ Markdown and reStructuredText Support: IDEs like PyCharm and VS
Code provide live previews of Markdown and reST files, which are

7
commonly used for writing documentation (README files, project wikis,
etc.).
➢ Documentation Generation Tools Integration: Tools like Sphinx and
MkDocs can be run from within the IDE to generate professional
documentation (HTML, PDF, etc.) from docstrings and Markdown/reST
files.
➢ Version Control Integration: Documentation files are often part of the
version-controlled codebase (using Git, for example), and IDEs help track
changes to these files, allowing for collaborative and organized
documentation development.

Examples of Python IDEs Features


➢ PyCharm: Offers integrated support for docstrings, Sphinx, and
Markdown/reST preview. It also has powerful version control features to
manage project and documentation changes.
➢ VS Code: Highly customizable with extensions for Python docstrings,
Markdown, and Sphinx. Ideal for creating and managing documentation
alongside the code.
➢ JupyterLab: Particularly useful for data science projects, allowing inline
documentation within Jupyter notebooks using Markdown cells. Notebooks
can be exported as well-structured documentation in various formats.
➢ Atom: A lightweight editor that supports Markdown and Python docstring
extensions, as well as the integration of Sphinx for documentation generation.

4.2. SQLite3: Key Features of SQLite3


➢ Serverless: SQLite3 operates directly from a file on the disk. There is no need
for a server or database daemon running in the background. The database is
stored in a single file that can be easily managed and transferred.

8
➢ Self-contained: SQLite3 is a single library that implements the entire
database engine. There are no dependencies, making it highly portable across
platforms and environments.
➢ Zero Configuration: There is no need to install or configure a server, create
users, or set permissions. The database file can be opened directly and used
right away.
➢ Lightweight: SQLite3 is designed to be minimal in size and resources,
making it ideal for embedded systems, mobile devices, and small desktop
applications.
➢ SQL Compliance: SQLite3 supports most of the SQL-92 standard, allowing
for complex queries, joins, triggers, and views.
➢ Cross-platform: It works across various operating systems (Windows,
macOS, Linux, etc.) and is compatible with a wide range of programming
languages, including Python, C, C++, Java, and more.
➢ Durable and Reliable: Despite being lightweight, SQLite3 provides ACID
(Atomicity, Consistency, Isolation, Durability) compliance, ensuring data
integrity and safety even in cases of crashes or power failures.
➢ Transactional Support: SQLite3 supports transactions, meaning multiple
changes to the database can be bundled together, either fully committing or
fully rolling back changes in case of an error.

Common Use Cases for SQLite3


➢ Embedded Databases: Used in applications such as mobile apps
(Android/iOS), web browsers, and IoT devices where a lightweight,
standalone database is needed.
➢ Prototyping: Ideal for small projects, prototyping, or proof-of-concept
applications where a full-fledged RDBMS is overkill.
➢ Testing and Development: SQLite is commonly used for local development
and testing because of its simplicity.

9
➢ Data Storage for Small Applications: Desktop and small applications that
do not require multi-user access often use SQLite3 for data persistence.

4.3. Creating Database and Tables


Creating Table Bank

create table bank(

name varchar(30),

UserName varchar(30),

password tinytext,

Date_of_birth date,

address varchar(40),

Mobile_Number varchar(30),

Aadhar_no varchar(30),

Balance int);

Creating Table Transaction

create table Transaction(

credited int,

debited int,

username1 varchar(20),

foreign key(username1) references bank(username));

10
4.4. Life Cycle
The Life Cycle of a Bank Management System (BMS) follows the traditional
phases of the Software Development Life Cycle (SDLC). These phases ensure
the system is properly planned, developed, tested, and maintained to meet the
requirements of the bank. Here's an overview of each phase:

4.4.1. Requirement Gathering and Analysis


Understand and document the needs of the bank, stakeholders, and customers.
Conduct meetings with bank management and other stakeholders to understand
the core functionalities required. Gather requirements related to account
management, transactions, loans, reporting, security, etc. Define system goals,
expected outcomes, and any constraints (like legal compliance and regulatory
requirements). System Requirements Specification (SRS) document detailing
both functional and non-functional requirements.

4.4.2. System Design


Create the architectural blueprint of the system based on the gathered
requirements. Design the database schema for handling customer data,
transactions, loans, etc. Develop a high-level system architecture including the
user interface, backend, security layers, and integrations. Define module
relationships (e.g., how the account management module interacts with the
transaction module). Choose appropriate technologies (frontend, backend,
database, cloud).
High-Level Design (HLD) document. Low-Level Design (LLD) document
for detailed specifications of system components. UI/UX design mockups and
database schemas.

4.4.3. Development
Build the actual software system based on the designs.

11
Frontend Development: Create the user interface for customers and bank
employees (web portal, mobile app).
Backend Development: Build the server-side logic, including transaction
processing, account management, and security mechanisms.
Database Development: Set up the database to store and retrieve customer
and transaction data efficiently.
API Development: Integrate third-party services like payment gateways,
SMS alerts, and other financial services.
Deliverables: Functional codebase with version control (e.g., Git). Initial
working version of the system (minimum viable product or MVP).

4.4.4. Testing
Ensure the system functions correctly, securely, and efficiently by identifying and
fixing issues.
Unit Testing: Test individual modules like account management,
transactions, etc.
Integration Testing: Verify that all modules work together as expected.
System Testing: Test the entire system as a whole, including workflows like
loan approval and transaction history.
Security Testing: Check for vulnerabilities, ensuring strong encryption,
authentication, and authorization mechanisms.
Performance Testing: Test system scalability under various loads (e.g., how
the system handles thousands of transactions).
Deliverables: Test cases and test results. Bug reports and fixes. Verified,
tested system ready for deployment.

4.4.5. Deployment
Launch the system in a live environment for real-world use by bank customers
and staff. Deploy the system to a production environment (cloud or on-premise
servers). Set up the required hardware and network infrastructure (if on-premise).

12
Migrate existing customer data from legacy systems (if any) to the new system.
Set up backups, disaster recovery systems, and server monitoring. Train bank
staff on how to use the system effectively.
Deliverables: Live, operational Bank Management System. User manuals
and training materials for bank employees.

4.4.6. Maintenance and Support


Provide ongoing support and updates to ensure the system remains functional,
secure, and up-to-date. Monitor system performance and address any
performance issues. Fix bugs and resolve customer support issues. Release
software patches and updates to ensure compatibility with new banking
regulations, security standards, or technologies. Add new features or make
improvements based on user feedback (e.g., adding new payment methods).
Ensure continuous system backups and implement recovery procedures in case
of failure.
Deliverables: Regular updates and maintenance reports. Documentation of
any changes or enhancements. Customer support tickets and resolution logs.

4.4.7. Evaluation and Evolution


Continuously evaluate system performance, gather feedback, and improve the
system to meet future needs. Conduct system performance reviews periodically
to check if the system meets business objectives. Gather feedback from customers
and bank staff on the system's usability and features. Implement major upgrades
or overhauls if required, such as migrating to newer technologies or enhancing
user experience. Assess compliance with evolving banking regulations and make
necessary updates.
Deliverables: Enhancement plan or roadmap for future development.
Feedback reports from users and stakeholders.

13
4.4.8. Key Considerations in the Life Cycle
Security: Since the system deals with sensitive financial data, security should be
a focus at every stage, especially during design, development, and testing.
Compliance: The system must adhere to banking regulations and standards,
including data privacy laws (like GDPR) and financial reporting requirements.
Scalability: The system should be designed to handle growing customer
numbers and transaction volumes over time.
User Experience: The system must be user-friendly for both customers
(online banking) and bank employees (internal management).

14
CHAPTER – 5

REQUIREMENTS

5.1. Hardware Requirements


The most common set of requirements defined by any operating system or
software application is the physical computer resources, also known as hardware.
The minimal hardware requirements are as follows,
1. Processor: Intel (R) Celeron(R)
2. RAM: 4 GB
3. Processor: 1.80 GHz
4. Main Memory: 4GB RAM
5. Hard Disk Drive: 500GB
6. Keyboard: 104 Keys

5.2. Software Requirements


Software requirements deals with defining resource requirements and
prerequisites that needs to be installed on a computer to provide functioning of
an application. The minimal software requirements are as follows.
1. Front end: python
2. Back end: SQLite3
3. IDE: python 3.13
4. Operating System: Windows 10 Pro

15
CHAPTER – 6

MODULES USED

The Bank Management System (BMS) consists of several interconnected


modules designed to handle different aspects of banking operations. Each module
addresses specific functionalities to ensure efficient, secure, and reliable services
for customers and bank employees. Below are the key modules commonly used
in a Bank Management System:

Customer Account Management Module


Handles the creation and management of customer accounts, including personal
details, account types, and related information. Customer registration (new
account opening). Account types (Savings, Checking, Business). Updating
customer details (name, contact information). View account balance, profile, and
transaction history.

Transaction Management Module


Manages all financial transactions such as deposits, withdrawals, transfers, and
payments. Real-time deposits and withdrawals. Funds transfer between accounts
(within the bank or interbank). View detailed transaction history for customers
and bank staff. Scheduled payments or recurring transactions. Alerts and
notifications for significant transactions.

User Management and Authentication Module


Manages user access and ensures secure authentication of customers and bank
employees. Role-based access control (Admin, Teller, Customer). Multi-factor
authentication (MFA) for enhanced security. User login and logout management.

16
Password management and reset options. Session management and activity
logging.

Reporting and Analytics Module


Provides comprehensive reporting and analytics for the bank’s operational and
financial performance. Generate daily, weekly, monthly financial reports
(income, expenses, etc.). Transaction reports for auditing and reconciliation.
Customer behavior analysis (spending patterns, loan repayment history).
Regulatory reports to ensure compliance with legal standards. Predictive
analytics for loan default risks, fraud detection, etc.

Security Management Module


Ensures the confidentiality, integrity, and availability of customer data and
transactions. Data encryption (in transit and at rest). Fraud detection algorithms
for identifying suspicious activities. Access control policies and audit trails for all
transactions. Regular system security checks and vulnerability scans. Backup and
disaster recovery mechanisms.

Customer Support and Service Module


Facilitates customer service inquiries, complaints, and support ticket
management. Submit inquiries or complaints related to accounts, loans, or
transactions. Support ticket generation and tracking. FAQs and knowledge base
for common customer queries. Live chat or chatbot for real-time support.
Feedback collection for service improvements.
These modules work together to provide a seamless, secure, and efficient
banking experience for customers and employees. Depending on the bank’s size,
scale, and business model, additional modules or customizations may be included
in the system.

17
CHAPTER – 7

FLOW CHART

18
CHAPTER – 8

SOURCE CODE

bank-project.py
import sqlite3
import datetime as date

# Special characters allowed in passwords


SpecialSym = ['$', '@', '#', '%']

# Connect to the SQLite database


mycon = sqlite3.connect("bankDB.db")
mycur = mycon.cursor()

# Create the 'bank' table if it doesn't exist


mycur.execute('''
CREATE TABLE IF NOT EXISTS bank (
Name TEXT,
UserName TEXT UNIQUE,
Password TEXT,
DOB TEXT,
Address TEXT,
Mobile_Number TEXT,
Aadhar_no TEXT,
Balance REAL DEFAULT 0
)''')

# Create the 'transaction' table if it doesn't exist

19
mycur.execute('''
CREATE TABLE IF NOT EXISTS "transaction" (
Credited REAL DEFAULT NULL,
Debited REAL DEFAULT NULL,
UserName1 TEXT,
Date TEXT
)''')

# Main loop
while True:
print("\n")

print("______________________________________________________________")
print("************* Welcome To Colony Bank Of India *******************")
print("______________________________________________________________")
print("Press 1 to Sign Up ")
print("Press 2 to Sign In ")

try:
ch = int(input("Enter Your Choice: "))
if ch < 1 or ch > 2:
raise ValueError("Invalid choice. Please select 1 or 2.")
except ValueError as ve:
print(ve)
continue

if ch == 1:
# Sign Up
while True:
try:
ut = input("Enter Your Name Here: ")
if any(sym in ut for sym in SpecialSym):

20
raise ValueError("Special characters are not allowed.")
break
except ValueError as e:
print(e)

while True:
try:
p = input("Enter Your User Name: ")
if any(sym in p for sym in SpecialSym):
raise ValueError("Special characters are not allowed.")
break
except ValueError as e:
print(e)

while True:
try:
z = input("Enter Your Password: ")
if (len(z) < 6 or not any(char.isdigit() for char in z) or
not any(char.isupper() for char in z) or
not any(char.islower() for char in z) or
not any(char in SpecialSym for char in z)):
raise ValueError("Password must contain at least 6 characters, including
uppercase, lowercase, digits, and special characters.")
break
except ValueError as e:
print(e)

while True:
try:
dob = input("Enter Your Date of Birth (DD/MM/YYYY): ")
date.datetime.strptime(dob, "%d/%m/%Y")
break

21
except ValueError:
print("Please enter the date of birth in the correct format (DD/MM/YYYY).")

s = input("Enter Your Address: ")

while True:
try:
d = input("Enter Your Phone Number (10 digits): ")
if len(d) != 10 or not d.isdigit():
raise ValueError("Please enter a valid 10-digit phone number.")
break
except ValueError as e:
print(e)

while True:
try:
f = input("Enter Your 12 Digit Aadhar Number: ")
if len(f) != 12 or not f.isdigit():
raise ValueError("Please enter a valid 12-digit Aadhar number.")
break
except ValueError as e:
print(e)

# Insert the new account into the database


try:
mycur.execute("INSERT INTO bank (Name, UserName, Password, DOB,
Address, Mobile_Number, Aadhar_no) VALUES (?, ?, ?, ?, ?, ?, ?)",
(ut, p, z, dob, s, d, f))
mycon.commit()
print("Account has been created successfully. Kindly Login.")
except sqlite3.IntegrityError:
print("Username is already taken. Please choose a different one.")

22
elif ch == 2:
# Sign In
u = input("Enter Your Username: ")
p = input("Enter Your Password: ")

mycur.execute("SELECT * FROM bank WHERE UserName=? AND


Password=?", (u, p))
data = mycur.fetchall()

if data:
print("\nWelcome to your account!")
while True:
print("\n")
print("Press 1 To Withdraw Money")
print("Press 2 To Deposit Money")
print("Press 3 to view Last Five Transactions")
print("Press 4 To View Your Profile")
print("Press 5 To Update Account Details")
print("Press 6 to Delete Your Account Permanently")
print("Press 7 for Log Out")

try:
ch1 = int(input("Enter Your Choice: "))
if ch1 < 1 or ch1 > 7:
raise ValueError("Invalid choice. Please select a valid option.")
except ValueError as ve:
print(ve)
continue

if ch1 == 1:
# Withdraw Money

23
mycur.execute("SELECT Balance FROM bank WHERE UserName=?",
(u,))
bal = mycur.fetchone()[0]
print(f"Your Account Balance is: {bal}")

while True:
try:
a1 = float(input("Enter the amount for withdrawal: "))
if a1 <= 0 or a1 > bal:
raise ValueError("Invalid amount. Please enter a valid withdrawal
amount.")
break
except ValueError as e:
print(e)

new_balance = bal - a1
mycur.execute("UPDATE bank SET Balance=? WHERE UserName=?",
(new_balance, u))
mycur.execute("INSERT INTO \"transaction\" (Debited, UserName1,
Date) VALUES (?, ?, ?)",
(a1, u, date.datetime.now().strftime("%Y-%m-%d
%H:%M:%S")))
mycon.commit()
print(f"Withdrawal of {a1} successful. New balance: {new_balance}")

elif ch1 == 2:
# Deposit Money
while True:
try:
a11 = float(input("Enter the amount to deposit: "))
if a11 <= 0:
raise ValueError("Please enter a valid deposit amount.")

24
break
except ValueError as e:
print(e)

mycur.execute("SELECT Balance FROM bank WHERE UserName=?",


(u,))
bal = mycur.fetchone()[0]
new_balance = bal + a11
mycur.execute("UPDATE bank SET Balance=? WHERE UserName=?",
(new_balance, u))
mycur.execute("INSERT INTO \"transaction\" (Credited, UserName1,
Date) VALUES (?, ?, ?)",
(a11, u, date.datetime.now().strftime("%Y-%m-%d
%H:%M:%S")))
mycon.commit()
print(f"Deposit of {a11} successful. New balance: {new_balance}")

elif ch1 == 3:
# View Last Five Transactions
mycur.execute("SELECT Credited, Debited, Date FROM \"transaction\"
WHERE UserName1=? ORDER BY Date DESC LIMIT 5", (u,))
transactions = mycur.fetchall()
print("Last Five Transactions:")
for trans in transactions:
credited, debited, trans_date = trans
if credited:
print(f"Credited: {credited}, Date: {trans_date}")
if debited:
print(f"Debited: {debited}, Date: {trans_date}")

elif ch1 == 4:
# View Profile

25
mycur.execute("SELECT Name, UserName, Address, Mobile_Number,
Aadhar_no, Balance FROM bank WHERE UserName=?", (u,))
profile = mycur.fetchone()
print("Profile Details:")
print(f"Name: {profile[0]}, Username: {profile[1]}, Address: {profile[2]},
Mobile: {profile[3]}, Aadhar: {profile[4]}, Balance: {profile[5]}")

elif ch1 == 5:
# Update Account Details
while True:
print("Press 1 to Update Your Name")
print("Press 2 to Update Your Password")
print("Press 3 to Update Your Phone Number")
print("Press 4 to Update Address")
print("Press 5 to Go Back")
try:
ch2 = int(input("Enter Your Choice: "))
if ch2 < 1 or ch2 > 5:
raise ValueError("Invalid choice. Please select a valid option.")
except ValueError as ve:
print(ve)
continue

if ch2 == 1:
new_name = input("Enter Your New Name: ")
mycur.execute("UPDATE bank SET Name=? WHERE
UserName=?", (new_name, u))
mycon.commit()
print("Name updated successfully.")

elif ch2 == 2:
while True:

26
new_password = input("Enter Your New Password: ")
if (len(new_password) < 6 or not any(char.isdigit() for char in
new_password) or
not any(char.isupper() for char in new_password) or
not any(char.islower() for char in new_password) or
not any(char in SpecialSym for char in new_password)):
print("Password must contain at least 6 characters, including
uppercase, lowercase, digits, and special characters.")
else:
mycur.execute("UPDATE bank SET Password=? WHERE
UserName=?", (new_password, u))
mycon.commit()
print("Password updated successfully.")
break

elif ch2 == 3:
while True:
new_phone = input("Enter Your New Phone Number: ")
if len(new_phone) != 10 or not new_phone.isdigit():
print("Please enter a valid 10-digit phone number.")
else:
mycur.execute("UPDATE bank SET Mobile_Number=?
WHERE UserName=?", (new_phone, u))
mycon.commit()
print("Phone number updated successfully.")
break

elif ch2 == 4:
new_address = input("Enter Your New Address: ")
mycur.execute("UPDATE bank SET Address=? WHERE
UserName=?", (new_address, u))
mycon.commit()

27
print("Address updated successfully.")

elif ch2 == 5:
break

elif ch1 == 6:
# Delete Account
mycur.execute("DELETE FROM bank WHERE UserName=?", (u,))
mycur.execute("DELETE FROM \"transaction\" WHERE UserName1=?",
(u,))
mycon.commit()
print("Your account has been deleted permanently.")
break

elif ch1 == 7:
print("Logged out successfully.")
break

else:
print("Invalid username or password. Please try again.")

# Closing the database connection at the end of the script


mycur.close()
mycon.close()

28
CHAPTER - 9

OUTPUT SCREEN

Python 3.13.0 (tags/v3.13.0:60403a5, Oct 7 2024, 09:38:07) [MSC v.1941 64 bit


(AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.

= RESTART: C:\Users\ADMIN\AppData\Local\Programs\Python\Python313\bank-
project.py

_____________________________________________________________________
******************* Welcome To Colony Bank Of India *******************
_____________________________________________________________________
Press 1 to Sign Up
Press 2 to Sign In
Enter Your Choice: 1
Enter Your Name Here: Tonijey
Enter Your User Name: Toni
Enter Your Password: 21Toni@18
Enter Your Date of Birth (DD/MM/YYYY): 18/04/2008
Enter Your Address: Thoothukudi
Enter Your Phone Number (10 digits): 8098111575
Enter Your 12 Digit Aadhar Number: 899012452786
Account has been created successfully. Kindly Login.

_____________________________________________________________________
******************* Welcome To Colony Bank Of India *******************

29
_____________________________________________________________________
Press 1 to Sign Up
Press 2 to Sign In
Enter Your Choice: 2
Enter Your Username: Toni
Enter Your Password: 21Toni@18

Welcome to your account!

Press 1 To Withdraw Money


Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 2
Enter the amount to deposit: 2000
Deposit of 2000.0 successful. New balance: 2000.0

Press 1 To Withdraw Money


Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 100
Invalid choice. Please select a valid option.

30
Press 1 To Withdraw Money
Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 2
Enter the amount to deposit: 200
Deposit of 200.0 successful. New balance: 2200.0

Press 1 To Withdraw Money


Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 1
Your Account Balance is: 2200.0
Enter the amount for withdrawal: 300
Withdrawal of 300.0 successful. New balance: 1900.0

Press 1 To Withdraw Money


Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
31
Press 7 for Log Out
Enter Your Choice: 3
Last Five Transactions:
Debited: 300.0, Date: 2024-10-17 19:11:46
Credited: 200.0, Date: 2024-10-17 19:11:18
Credited: 2000.0, Date: 2024-10-17 19:10:59

Press 1 To Withdraw Money


Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 5
Press 1 to Update Your Name
Press 2 to Update Your Password
Press 3 to Update Your Phone Number
Press 4 to Update Address
Press 5 to Go Back
Enter Your Choice: 4
Enter Your New Address: Eral
Address updated successfully.
Press 1 to Update Your Name
Press 2 to Update Your Password
Press 3 to Update Your Phone Number
Press 4 to Update Address
Press 5 to Go Back
Enter Your Choice: 5
Press 1 To Withdraw Money
Press 2 To Deposit Money

32
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 4
Profile Details:
Name: Tonijey, Username: Toni, Address: Eral, Mobile: 8098111575, Aadhar:
899012452786, Balance: 1900.0

Press 1 To Withdraw Money


Press 2 To Deposit Money
Press 3 to view Last Five Transactions
Press 4 To View Your Profile
Press 5 To Update Account Details
Press 6 to Delete Your Account Permanently
Press 7 for Log Out
Enter Your Choice: 7
Logged out successfully.

33
CHAPTER – 10

LIMITATION/ FUTURE SCOPE

10.1. Limitations
Scalability Issues: As the bank grows and the number of customers increases, the
system may face performance bottlenecks, particularly during peak usage
periods. Existing infrastructure may not support a high volume of transactions
and concurrent users.
Integration Challenges: Integrating with third-party services, such as
payment gateways, financial services, or government systems, can be complex,
and the system may not support smooth integrations or updates. Legacy systems
or incompatible technologies can make integration more difficult.
Limited Mobile and Online Banking Features: Many traditional Bank
Management Systems may not offer a fully optimized experience for mobile
banking, lacking advanced features such as biometric authentication, voice
commands, or AI-powered personal financial management.
Data Security and Privacy Risks: Despite implementing encryption and
security protocols, no system is entirely immune to cyberattacks or data breaches,
especially in the case of sophisticated hacking attempts. Systems may struggle
with complying with new and evolving data privacy regulations (e.g., GDPR,
CCPA).
Manual Interventions: Some processes, such as loan approvals or regulatory
reporting, may still require significant manual intervention or approvals, which
can lead to delays or human errors.
Customer Experience Gaps: Limited personalization of services based on
customer behavior and preferences. Traditional systems may not offer features
such as AI-driven insights, smart notifications, or customized financial advice.

34
Compliance and Regulatory Adaptability: The system may struggle to adapt
quickly to new regulations or changes in compliance requirements. This is
particularly challenging in international banking environments where multiple
jurisdictions are involved.
Limited Analytics and Reporting: The system may lack advanced data
analytics and reporting tools, making it difficult to gain actionable insights from
customer and transactional data. Lack of real-time reporting capabilities can
hinder decision-making.
Disaster Recovery Limitations: Some bank management systems might not
have robust disaster recovery systems, leading to potential data loss in case of
server failures, cyber-attacks, or natural disasters.
High Cost of Maintenance and Upgrades: Maintaining and upgrading a Bank
Management System, especially with outdated infrastructure or legacy
technologies, can be expensive and time-consuming.

10.2. Future Scope


AI and Machine Learning Integration: Incorporate AI-driven features for fraud
detection, risk assessment, and predictive analytics for loans and investments.
Use AI chatbots for customer support, providing real-time assistance to users
without needing human intervention. Machine learning algorithms can analyze
customer spending habits and provide personalized financial advice or
recommendations.
Blockchain Technology: Integrate blockchain for secure, transparent, and
tamper-proof transactions, particularly in cross-border payments, loan
processing, and identity verification. Use decentralized ledgers to reduce fraud
and increase the speed and reliability of international transactions.
Enhanced Mobile Banking Features: Develop more sophisticated mobile
banking apps with features like biometric authentication (fingerprint, facial
recognition), AI-driven financial planning tools, and smart push notifications.

35
Implement voice-based banking, allowing customers to use voice commands for
banking operations.
Cloud-based Solutions: Transition the system to a cloud-based infrastructure
for better scalability, flexibility, and cost-efficiency. Cloud services can offer
improved disaster recovery options, real-time data processing, and better security
measures.
Big Data Analytics: Utilize big data to gather insights on customer behavior,
market trends, and transaction patterns to offer personalized services. Predictive
analytics can help the bank offer targeted products (like loans, credit cards, etc.)
based on customer preferences and creditworthiness.
Omnichannel Banking: Create a seamless banking experience across
multiple channels such as mobile apps, ATMs, online banking, and in-branch
services. Allow customers to start a transaction on one platform (e.g., mobile) and
complete it on another (e.g., at an ATM or branch).
Robust Cybersecurity Measures: Strengthen the system’s defenses with AI-
powered security systems that detect and mitigate threats in real time. Implement
advanced multi-factor authentication (MFA) options such as biometric data and
behavioral analytics for a more secure banking environment. Regularly update
security measures to comply with emerging cyber risks and regulatory
requirements.
Enhanced Customer Personalization: Leverage AI and data analytics to offer
customized banking services, such as personalized offers, targeted loan products,
or tailored financial advice based on individual spending patterns. Enable
personalized dashboards where customers can see their financial health, budget
insights, and recommendations based on their specific needs.
Integration with Financial Technology (FinTech) Services: Collaborate with
or integrate third-party FinTech solutions such as digital wallets, robo-advisors,
or peer-to-peer lending platforms. Offer more diverse and modern financial
services by integrating innovative financial technologies.

36
Regulatory Compliance Automation: Implement automation tools to
automatically adjust the system to comply with new regulations and changes in
financial law. Integrate real-time regulatory compliance checking, reducing the
need for manual audits.
Smart Contract Capabilities: Incorporate smart contracts for automating
complex financial agreements such as loan terms, mortgages, or insurance
policies. This can improve transparency and enforceability.

37
CHAPTER – 11

BIBLIOGRAPHY

1. Books
o Laudon, K. C., & Laudon, J. P. (2020). Management Information Systems:
Managing the Digital Firm (16th ed.). Pearson Education.
o Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database System
Concepts (7th ed.). McGraw-Hill.
o Varshney, U. (2005). Mobile and Wireless Financial Services: Security and
Applications. Wiley.
2. Articles and Papers
o Dandapani, K. (2014). "Banking on the Cloud: Managing Security Issues."
Journal of Internet Banking and Commerce, 19(1), 1-10.
o McDonald, R. (2012). "Banking Systems and Risk Management."
International Journal of Financial Management, 7(3), 25-39.
3. Websites
o MySQL. (2023). MySQL 8.0 Reference Manual. Retrieved from
https://dev.mysql.com/doc/ on October 15, 2023.
o OWASP Foundation. (2023). OWASP Top Ten Security Risks. Retrieved from
https://owasp.org/Top10/ on September 20, 2023.
o "Bank Management System Overview." (2022). Retrieved from
https://www.examplebankprojectdocs.com/bms-overview on April 10, 2023.

38

You might also like