Shivanshu Mishra Python Project Report
Shivanshu Mishra Python Project Report
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
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
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
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"
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"
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 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): "))
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
7- MODIFY AN ACCOUNT
8- ACC0UNT STATEMENT
9- LOAN CALCULATON
10- EXIT
CONCLUSION
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.
Key Takeaways:
Future Recommendations: