0% found this document useful (0 votes)
15 views41 pages

Shivanshu Mishra Python Project Report

The document is a project report for a Bank Management System developed by Shivanshu Mishra as part of his Computer Science curriculum at SR Global School for the academic year 2024-2025. It includes sections on project introduction, system requirements, advantages, limitations, features, source code, and future scope, highlighting the project's focus on basic banking functionalities using Python. The report also acknowledges the guidance of teachers and outlines the project's development process and potential improvements.

Uploaded by

priyanshus9415
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)
15 views41 pages

Shivanshu Mishra Python Project Report

The document is a project report for a Bank Management System developed by Shivanshu Mishra as part of his Computer Science curriculum at SR Global School for the academic year 2024-2025. It includes sections on project introduction, system requirements, advantages, limitations, features, source code, and future scope, highlighting the project's focus on basic banking functionalities using Python. The report also acknowledges the guidance of teachers and outlines the project's development process and potential improvements.

Uploaded by

priyanshus9415
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/ 41

SR GLOBAL SCHOOL

COMPUTER SCIENCE (083)


PROJECT REPORT
ON
(BANK MANAGEMENT SYSTEM)
2024-2025

SUBMITTED TO: SUBMITTED BY:


MOHAMMAD BILAL AHMAD SHIVANSHU MISHRA
ASST TEACHER Board Roll No: 23729459
(PGT- Computer Science) 12- A1
CERTIFICATE
This is to certify that SHIVANSHU MISHRA of class 12 – A1
from SR Global School, Lucknow has successfully completed his
computer Science Project report (Bank Management System) based
on Python and Binary File programming under the guidance of MR .
MOHAMMAD BILAL AHMAD for the academic session 2024-
2025. Hehas taken proper care and show utmost sincerity in the
completion of this project report . I certify that this project report is
up to my expectation and as per the guidelines issued by C.B.S.E .

Mr. MOHAMMAD BILAL AHMAD Mrs. RICHA MISHRA


Internal examiner External examiner
S R Global School,
Lucknow

MR. C.K OJHA (Observer)


( Principal) Appoint by CBSE
S.R Global School,
LUCKNOW
ACKNOWLEDGEMENT
I would like to express a deep sense of thanks and gratitude to
my Computer Teacher Mr. Mohammad Bilal Ahmad , he always
evinced keen interest in my work. His constructive advice and
constant motivation have been responsible for the successful
completion of this project file and I am also thankful to my
Principal Mr. C. K Ojha sir who gave me the golden opportunity
to do this wonderful project based on programming concept
(Python language) which also helped me in doing a lot of
research and I came to know about so many new things and I
am really thankful to them and I am also thankful to my parents
who helped me for completing this Python Project reports
with in the limited time frame.

SHIVANSHU MISHRA
12-A1
Board Roll No ~ 23729459
Contents
1. Introduction of the Project.
2. System Requirements of the Project.
3.Scope
4.Advantages
5. Limitation
6. Features
7. Future scope
8. Source Code
9. Output Screenshot
10. Conclusion
11. Biblography
Introduction of the Project
We the students of CLASS XII A1 of S R GLOBAL SCHOOL have
been assigned the work of Bank Management System. To perform this
task SHIVANSHU MISHRA has been assigned the work of coding and
programming. I have been assigned the work of analysing the overall
mistakes and have done the conclusion work.
The project starts with-
1. NEW ACCOUNT
2. DEPOSIT AMOUNT
3. WITHDRAW AMOUNT
4. BALANCE ENQUIRY
5. ALL ACCOUNT HOLDER LIST
6. CLOSE AN ACCOUNT
7. MODIFY AN ACCOUNT
8. ACCOUNT STATEMENT
9. LOAN MENU
10. EXIT
I am so glad that this work have been assigned to us, yet we haven’t
done this work before BILAL SIR our subject teacher have also helped
us a lot to complete this project. I feel so blessed that I have learnt all
this work with the help of our sir, I am also thankful to our respected
principal CK OJHA SIR for providing us various facilities to complete
this project. As I am the students of CLASS XII A1 and I haven’t done
this type of project before, we have performed all that which we have
learnt from our CBSE PROGRAMMING . Hence, we know that this
programming would be further done on a big platform. Since we have
started this programming from SEPTEMBER month ,we believe that
this programming would further help us a lot in our future .We are also
thankful to our groupmates for cooperating with each other while
performing this task we have also polished the skills of group activity.
PROCESS FIRSTLY, we have done the planning in a paper work
regarding what have to do on the assigned project BANK
MANAGEMENT SYSTEM. SECONDLY, we discussed our planning
with our subject teacher and then he provided us the right path to
perform the work. NEXT, we started our project on foot paths of our
subject teacher. THEN, we started our coding, coding took around 2 and
half months for completion. NEXT, we analysed the mistakes done and
then we corrected them. THEN, we prepared the project format as
shown above. THANKS TO ALL OF WORTHY TEACHERS AND
PRINCIPAL AND MY DEAR GROUP MATES ALSO A GREAT
THANKS TO S R GLOBAL SCHOOL FOR PROVIDING US THIS
GOLDEN OPPORTUNITY …..
System Requirements of the Project

Recommended System Requirements Processors:

Intel® Core™ i3 processor 4300M at 2.60 GHz.


Disk space: 2 to 4 GB.
Operating systems:Windows® 11, MACOS, and
UBUNTU.
Python Version: 3.11.2 .

Minimum System Requirements Processors:

Intel Atom® processor or Intel® Core™ i3 processor.


Disk space: 1 GB.
Operating systems: Windows 7 or later, MACOS, and UBUNTU.
Python Version: 3.11.2
SCOPE
The scope of the Bank Management System is primarily focused on
providing basic banking services like account management, transaction
processing, and loan management. It allows users to create and manage
accounts, deposit and withdraw money, check account balances, and
retrieve account statements.

The system is suitable for small-scale banking operations or personal


projects, but not for large-scale or real-world banking operations due to
limitations related to security, scalability, and user interface. It can be
used for educational purposes or as a starting point for more complex
banking systems.
ADVANTAGES
1. Improved Efficiency
- Automates various banking tasks, reducing manual labor and
increasing efficiency.
- Enables fast and accurate processing of transactions, deposits, and
withdrawals.
2. Enhanced Security
- Provides secure storage and retrieval of sensitive customer data.
- Implements authentication and authorization mechanisms to prevent
unauthorized access.
3. Better Customer Service
- Allows customers to perform various banking operations online,
reducing the need for physical branch visits.
- Enables customers to access their account information and transaction
history online.
4. Data Analysis and Reporting
- Provides tools for data analysis and reporting, enabling banks to make
informed decisions.
- Generates reports on customer transactions, account balances, and
other key performance indicators.
5. Scalability and Flexibility
- Designed to handle a large volume of transactions and customer data.
- Can be easily modified and extended to meet changing banking
requirements.
6. Cost Savings
- Reduces the need for manual labor, paper-based records, and physical
infrastructure.
- Enables banks to allocate resources more efficiently and reduce
operational costs.
7. Improved Compliance
- Ensures compliance with regulatory requirements and industry
standards.
- Provides tools for auditing, logging, and tracking transactions and
system changes.
8. Enhanced User Experience
- Provides an intuitive and user-friendly interface for customers and
bank staff.
- Enables customers to perform banking operations online, reducing the
need for physical branch visits.
9. Real-time Updates
- Provides real-time updates on account balances, transaction history,
and other key information.
- Enables customers to stay informed and up-to-date on their financial
situation.
LIMITATIONS
Technical Limitations
1. Scalability: The system may not be able to handle a large volume of
transactions and customer data, leading to performance issues.
2. Security: The system may be vulnerable to cyber-attacks and data
breaches, compromising sensitive customer information.
3. Integration: The system may not be able to integrate with other
banking systems, such as payment gateways, credit scoring systems, and
more.
4. Data Storage: The system may not be able to handle large amounts
of data, leading to storage capacity issues.
Functional Limitations
1. Limited Transaction Types: The system may only support basic
transaction types, such as deposits, withdrawals, and transfers.
2. Limited Account Types: The system may only support basic account
types, such as savings and checking accounts.
3. Limited Customer Information: The system may not be able to
store and manage detailed customer information, such as credit history
and employment status.
4. Limited Reporting Capabilities: The system may not be able to
generate detailed reports on customer transactions, account balances,
and other key performance indicators.
User Interface Limitations
1. Limited User Accessibility: The system may not be accessible to
users with disabilities, such as visual or hearing impairments.
2. Limited User Experience: The system may not provide a user-
friendly interface, leading to confusion and frustration among users.
3. Limited Mobile Compatibility: The system may not be compatible
with mobile devices, limiting user access.
Maintenance and Support Limitations
1. Limited Maintenance Capabilities: The system may not be easy to
maintain and update, leading to technical issues and downtime.
2. Limited Support Resources: The system may not have adequate
support resources, such as documentation, training, and technical
support.
3. Limited Upgrade Path: The system may not have a clear upgrade
path, making it difficult to adapt to changing banking requirements.
Features
1. Account Management: Create new accounts, deposit/withdraw
money, check balance, and close accounts.
2. Account Holder List: Display a list of all account holders.
3. Account Statement: Generate an account statement for a specific
account number.
4. Loan Management: Create, display, search, delete, and modify loans.
5. Interest Calculation: Calculate interest on loans.

Code Organization
The code is organized into several functions, each responsible for a
specific task. The main menu is displayed in a loop, allowing users to
select options and perform actions.

Data Storage
Account and loan data are stored in files using the pickle module.

Security
The system does not implement any robust security measures, such as
encryption or access controls. This is a significant concern, as sensitive
financial data is being stored and processed.

Improvements
1. Security: Implement encryption, access controls, and secure data
storage.
2. Error Handling: Improve error handling and input validation to
prevent crashes and data corruption.
3. User Interface: Enhance the user interface to make it more intuitive
and user-friendly.
4. Code Refactoring: Refactor the code to improve organization,
readability, and maintainability.
5. Testing: Implement comprehensive testing to ensure the system
works correctly and securely.
Future Scope
The provided code is a basic implementation of a bank management
system that includes features like account creation, deposit, withdrawal,
balance inquiry, and loan management. Here are some potential future
scopes for this project:

Security Enhancements

1. Encryption: Implement encryption algorithms to secure sensitive


data like account numbers, passwords, and transaction history.
2. Authentication: Introduce a robust authentication system to ensure
only authorized users can access and modify account information.
3. Access Control: Implement role-based access control to restrict
access to certain features and data based on user roles (e.g., admin,
customer, teller).

Additional Features
1. Fund Transfers: Implement a feature to transfer funds between
accounts, including inter-bank transfers.
2. Bill Payments: Allow customers to pay bills (e.g., utility bills, credit
card bills) directly from their accounts.
3. Account Alerts: Introduce a system to send alerts to customers via
email or SMS for transactions, low balance, or other account-related
events.
4. Loan Management: Enhance the loan management system to include
features like loan application, approval, and repayment tracking.
User Interface Improvements

1. Graphical User Interface (GUI): Develop a GUI for the system


using a framework like Tkinter or PyQt to provide a more user-friendly
interface.
2. Web Interface: Create a web-based interface for the system using a
framework like Flask or Django to allow customers to access their
accounts online.
3. Mobile App: Develop a mobile app for the system to provide
customers with on-the-go access to their accounts.

Data Analytics and Reporting

1. Data Visualization: Integrate data visualization tools like Matplotlib


or Seaborn to provide insights into customer behavior, transaction
patterns, and account usage.
2. Reporting: Generate reports on account activity, transaction volume,
and customer demographics to help bank management make informed
decisions.

Integration with Other Systems

1. Core Banking System: Integrate the system with a core banking


system to provide real-time updates and synchronization of account data.
2. Payment Gateways: Integrate the system with payment gateways
like PayPal or Stripe to enable online transactions and payments.
SOURCE CODE
import pickle
import os
import random

def intro():
print("\t\t\t\t*************************")
print("\t\t\t\tBANK MANAGEMENT SYSTEM")
print("\t\t\t\t*************************")
print("\t\t\t\tMADE BY SHIVANSHU MISHRA")
print("\t\t\t\tOF CLASS 12 A1")
print("\tSelect Your Option (1-10) ")

def create_account():
account_number = random.randrange(1000000000,10000000000)
account_name = input("Enter account name: ")
initial_balance = float(input("Enter initial balance: "))
account = {
"account_number": account_number,
"account_name": account_name,
"balance": initial_balance
}
with open("accounts.dat", "ab") as file:
pickle.dump(account, file)
print("Account created successfully and your account number is
:",account_number)
def delete_account():
account_number = int(input("Enter account number to delete: "))
found = False
temp_file = "temp.dat"

with open("accounts.dat", "rb") as file, open(temp_file, "wb") as


temp:
while True:
try:
account = pickle.load(file)
if account["account_number"] != account_number:
pickle.dump(account, temp)
else:
found = True
except EOFError:
break

os.remove("accounts.dat")
os.rename(temp_file, "accounts.dat")

if found:
print("Account deleted successfully!")
else:
print("Account not found!")
def deposit():
account_number = int(input("Enter account number to deposit
amount: "))
amount = float(input("Enter amount to deposit: "))

found = False
temp_file = "temp.dat"

with open("accounts.dat", "rb") as file, open(temp_file, "wb") as


temp:
while True:
try:
account = pickle.load(file)
if account["account_number"] == account_number:
account["balance"] += amount
found = True
pickle.dump(account, temp)
except EOFError:
break

os.remove("accounts.dat")
os.rename(temp_file, "accounts.dat")

if found:
print(f"Amount deposited successfully! New balance:
{account['balance']}")
else:
print("Account not found!")

def withdraw_money(account_number, amount):


found = False
temp_file = "temp.dat"
with open("accounts.dat", "rb") as file, open(temp_file, "wb") as
temp:
while True:
try:
account = pickle.load(file)
if account["account_number"] == account_number:
if account["balance"] >= amount:
account["balance"] -= amount
found = True
else:
print("Insufficient balance!")
pickle.dump(account, temp)
except EOFError:
break
os.remove("accounts.dat")
os.rename(temp_file, "accounts.dat")
if found:
print(f"Withdrawal successful!")
else:
print("Account not found!")

def balance_enquiry():
account_number = int(input("Enter account number for balance
enquiry: "))
found = False
with open("accounts.dat", "rb") as file:
while True:
try:
account = pickle.load(file)
if account["account_number"] == account_number:
print(f"Account balance: {account['balance']}")
found = True
except EOFError:
break
if not found:
print("Account not found!")

def get_account_statement():
account_number = int(input("Enter account number to retrieve
statement: "))
found = False
with open("accounts.dat", "rb") as file:
while True:
try:
account = pickle.load(file)
if account["account_number"] == account_number:
print("Account Statement:")
print(f"Account Number: {account['account_number']}")
print(f"Account Holder's Name:
{account['account_name']}")
print(f"Account Balance: {account['balance']}")
found = True
except EOFError:
break
if not found:
print("Account not found!")

def display_all_accounts():
with open("accounts.dat", "rb") as file:
while True:
try:
account = pickle.load(file)
print("------------------------------------------")
print("Account Number:", account["account_number"])
print("Account Name:", account["account_name"])
print("Balance:", account["balance"])
print("------------------------------------------")
except EOFError:
break

def modify_account():
account_number = int(input("Enter account number to modify: "))
found = False
temp_file = "temp.dat"
with open("accounts.dat", "rb") as file, open(temp_file, "wb") as
temp:
while True:
try:
account = pickle.load(file)
if account["account_number"] == account_number:
print("Enter new details:")
account["account_name"] = input("Enter new account
holder's name: ")
account["balance"] = float(input("Enter new balance: "))
found = True
pickle.dump(account, temp)
except EOFError:
break
os.remove("accounts.dat")
os.rename(temp_file, "accounts.dat")
if found:
print("Account modified successfully!")
else:
print("Account not found!")

def create_loan():
print("Create Loan")
loan_id = int(input("Enter loan ID: "))
account_number = int(input("Enter account number: "))
loan_amount = float(input("Enter loan amount: "))
interest_rate = float(input("Enter interest rate (in %): "))
loan_term = int(input("Enter loan term (in years): "))

loan = [loan_id, account_number, loan_amount, interest_rate,


loan_term]

with open('loans.data', 'ab') as outfile:


pickle.dump(loan, outfile)

print("Loan created successfully!")


def display_loans():
file = pathlib.Path("loans.data")
if file.exists():
with open('loans.data', 'rb') as infile:
loans = []
while True:
try:
loan = pickle.load(infile)
loans.append(loan)
except EOFError:
break
print("Loan Details:")
print("--------------------")
for loan in loans:
print("LOAN ID:")
print(loan[0])
print("ACCOUNT NUMBER: ")
print(loan[1])
print("LOAN AMOUNT: ")
print(loan[2])
print("LOAN INTEREST RATE (%):")
print(loan[3])
print("LOAN TERMS (YEARS): ")
print(loan[4])
print("--------------------")
else:
print("No loans to display")
def search_loan(loan_id):
file = pathlib.Path("loans.data")
if file.exists():
with open('loans.data', 'rb') as infile:
while True:
try:
loan = pickle.load(infile)
if loan[0]== loan_id:
print("LOAN ID:")
print(loan[0])
print("ACCOUNT NUMBER: ")
print(loan[1])
print("ACCOUNT NUMBER: ")
print(loan[2])
print("LOAN INTEREST RATE (%):")
print(loan[3])
print("LOAN TERMS (YEARS): ")
print(loan[4])
return
except EOFError:
break
print("Loan not found")
else:
print("No loans to search")
def delete_loan(loan_id):
file = pathlib.Path("loans.data")
if file.exists():
with open('loans.data', 'rb') as infile:
loans = []
while True:
try:
loan = pickle.load(infile)
if loan[0]!= loan_id:
loans.append(loan)
except EOFError:
break
with open('loans.data', 'wb') as outfile:
for loan in loans:
pickle.dump(loan, outfile)
print("Loan deleted successfully")
else:
print("No loans to delete")
def modify_loan(loan_id):
file = pathlib.Path("loans.data")
if file.exists():
with open('loans.data', 'rb') as infile:
loans = []
c=0
while True:
try:
loan = pickle.load(infile)
if loan_id not in loan:
print("THIS LOAN ID DOES NOT EXIST")
else:
loan_amount = int(input("Enter new loan amount: "))
interest_rate = float(input("Enter new interest rate: "))
loan_term = int(input("Enter new loan term (in years): "))
loans.append(loan)
print("Loan modified successfully")

except EOFError:
break
with open('loans.data', 'wb') as outfile:
for loan in loans:
pickle.dump(loan, outfile)
if c==1:
print("Loan not modified successfully")
else:
print("No loans to modify")
def main():
while True:
print("1. Create Loan")
print("2. Display Loans")
print("3. Search Loan")
print("4. Delete Loan")
print("5. Modify Loan")
print("6. Calculate Interest")
print("7. Exit")
choice = input("Enter your choice: ")
if choice == "1":
create_loan()
elif choice == "2":
display_loans()
elif choice == "3":
loan_id = int(input("Enter loan ID: "))
search_loan(loan_id)
elif choice == "4":
loan_id = int(input("Enter loan ID: "))
delete_loan(loan_id)
elif choice == "5":
loan_id = int(input("Enter loan ID: "))
modify_loan(loan_id)
elif choice == "6":
calculate_interest_menu()
elif choice == "7":
break
else:
print("Invalid choice")

ch=''
num=0
intro()
while ch != 8:
#system("cls");
print("\tMAIN MENU")
print("\t1. NEW ACCOUNT")
print("\t2. DEPOSIT AMOUNT")
print("\t3. WITHDRAW AMOUNT")
print("\t4. BALANCE ENQUIRY")
print("\t5. ALL ACCOUNT HOLDER LIST")
print("\t6. CLOSE AN ACCOUNT")
print("\t7. MODIFY AN ACCOUNT")
print("\t8. ACCOUNT STATEMENT")
print("\t9. LOAN MENU")
print("\t10. EXIT")
ch = input("Enter your choice : ")
#system("cls");
if ch == '1':
create_account()
elif ch =='2':
deposit()
elif ch == '3':
a = int(input("Enter Account Number : "))
m = float(input("Enter Amount"))
withdraw_money(a,m)
elif ch == '4':
balance_enquiry()
elif ch == '5':
display_all_accounts()
elif ch == '6':
delete_account()
elif ch == '7':
modify_account()
elif ch == '8':
get_account_statement()
elif ch == '9':
main()
elif ch == '10':
print("\t----------------------------------------")
print("\t****************************************")
print("\tThanks for using bank management system")
print("\t****************************************")
print("\t----------------------------------------")
break
else :
print("Invalid choice")
main()
Screenshots
MAIN MENU

1-NEW ACCOUNT
2- DEPOSITE ACCOUNT

3- WIDTHDRAW ACCOUNT
4- BALANCE ENQUIRY

5- ALL ACCOUNT HOLDER LIST


6- CLOSE AN ACCOUNT

7- MODIFY AN ACCOUNT
8- ACC0UNT STATEMENT

9- LOAN CALCULATON
10- EXIT
CONCLUSION

he Bank Management System program is a comprehensive and user-


friendly application that provides a range of features to manage bank
accounts and transactions. The program is designed to simulate a real-
world banking system, allowing users to create accounts, deposit and
withdraw money, check balances, and perform other banking operations.

The program demonstrates a good understanding of object-oriented


programming concepts, file handling, and data structures. The use of a
simple and intuitive interface makes it easy for users to navigate and
perform banking operations.

While the program has several strengths, there are also areas for
improvement. For example, the program could benefit from additional
security features, such as encryption and access controls, to protect
sensitive customer data. Additionally, the program could be enhanced
with more advanced features, such as online banking and mobile
banking capabilities.

Overall, the Bank Management System program is a well-designed and


functional application that demonstrates a good understanding of
programming concepts and banking operations. With some additional
enhancements and security features, the program could be even more
robust and user-friendly.

Key Takeaways:

1. Comprehensive banking features


2. User-friendly interface
3. Good understanding of programming concepts
4. Areas for improvement: security features, advanced features
5. Potential for enhancement and expansion

Future Recommendations:

1. Implement additional security features


2. Enhance the program with online and mobile banking capabilities
3. Consider using a database to store customer data
4. Expand the program to include additional banking features and
services.
Bibliography

Python Software Foundation. (n.d.). Python 3.8.5 documentation :


https://docs.python.org/3/

Python Software Foundation. (n.d.). Pickle — Python object


serialization : https://docs.python.org/3/library/pickle.html

You might also like