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

Project File Bank Management System

The Bank Management System project, developed using Python, aims to provide a user-friendly application for managing banking activities such as account creation, secure login, balance inquiries, and transaction history tracking. It emphasizes data security and a simple command-line interface, making it accessible for users of all backgrounds. Future enhancements may include persistent data storage and a graphical user interface to improve usability.

Uploaded by

Nischhal Arora
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 views17 pages

Project File Bank Management System

The Bank Management System project, developed using Python, aims to provide a user-friendly application for managing banking activities such as account creation, secure login, balance inquiries, and transaction history tracking. It emphasizes data security and a simple command-line interface, making it accessible for users of all backgrounds. Future enhancements may include persistent data storage and a graphical user interface to improve usability.

Uploaded by

Nischhal Arora
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/ 17

Bank Management System

Using Python

A Computer Science Project

Project By:
Bhavya. P. Kapatel
11M06
V&C Patel English School
Index

1. Acknowledgement
2. Objective of the Project
3. Project Overview
4. Python Input Code and Output
5. Conclusion
6. References
Acknowledgement

I would like to express my sincere gratitude to my teacher, Jay Patel, for their invaluable
guidance and support throughout the development of the Bank Management System project.
Their expertise and encouragement were instrumental in helping me navigate ch allenges
and enhance my understanding of programming concepts. I also appreciate the assistance of
my classmates and family, whose support motivated me to complete this project successfully.
This experience has significantly enriched my learning journey, and I am thankful for the
opportunity to apply my skills in a practical context.
Objective: Empowering Users in Banking

The primary objective of the Bank Management System project is to create a user-friendly
application that allows individuals to manage their banking activities efficiently and securely.

The specific goals include:

1. Account Management:

- Enable users to create new bank accounts by providing essential information such as a
unique username and a secure 4-digit PIN.

- Ensure that account creation is straightforward, allowing users to start using the system
with minimal effort.

2. Secure Login System:

- Implement a robust login mechanism requiring users to enter their username and PIN to
access their accounts.

- Protect sensitive information through secure authentication processes, preventing


unauthorized access.

3. Balance Inquiry:

- Allow users to check their current account balance easily.

- Provide real-time updates of the account balance after transactions, ensuring users have
accurate financial information at their fingertips.

4. Deposit and Withdraw Funds:

- Facilitate seamless deposit and withdrawal transactions, enabling users to add or remove
money from their accounts as needed.

- Include validation checks to ensure that deposits are positive amounts and withdrawals
do not exceed the available balance, thus preventing overdrafts.
5. Transaction History Tracking:

- Maintain a detailed record of all transactions performed by the user, including deposits,
withdrawals, and balance inquiries.

- Allow users to view their transaction history at any time, promoting transparency and
helping them manage their finances effectively.

6. User-Friendly Interface:

- Design a simple command-line interface (CLI) that is easy to navigate for users of all ages
and technical backgrounds.

- Ensure that instructions and prompts are clear and concise, making it accessible for first-
time users.

7. Data Security:

- Implement measures to protect user data, including secure storage of account details
and transaction history.

- Ensure that sensitive information such as PINs is handled securely to maintain user
privacy.

By achieving these objectives, the Bank Management System will serve as a practical tool
for users to manage their banking needs efficiently while promoting financial literacy and
responsibility.
Project Overview: A Comprehensive Banking Solution

The Bank Management System project is designed as an educational tool that simulates
basic banking operations through a simple command-line interface built using Python. This
project aims not only to provide functional banking features but also to enhance
understanding of software development concepts.

Below are the key components and features of the project:

1. System Architecture
- The project utilizes a structured approach where user data is stored in a dictionary format
in Python. Each user's account information (username, PIN, balance, transaction history)
is stored as a nested dictionary.

- This architecture allows for efficient data retrieval and manipulation while maintaining
simplicity in code structure.

2. Key Features
- Account Creation: Users can create an account by entering a unique username and
setting a PIN. The system checks for existing usernames to prevent duplicates.

- Login Functionality: Users must log in using their credentials (username and PIN). The
system verifies these credentials before granting access to account features.

- Balance Inquiry: Once logged in, users can check their current balance at any time,
which reflects real-time updates after each transaction.

- Deposits and Withdrawals: Users can deposit money into their accounts or withdraw
funds. The system ensures that only valid transactions are processed (e.g., no negative
deposits or overdrafts).

- Transaction History: Every action taken by the user is recorded in their transaction
history. Users can view this history at any time, which helps them track their financial
activities over time.
3. User Interaction
- The command-line interface provides an interactive experience where users are
prompted with options at each stage (main menu and user menu).

- Clear instructions guide users through account creation, login procedures, and
transaction processes.

4. Data Handling
- User data (accounts) are stored in memory during execution. This means that once the
program is closed, all data will be lost unless additional functionality is added for
persistent storage (e.g., saving data to a file).

- For educational purposes, this approach simplifies implementation while focusing on


core functionalities without delving into database management systems.

5. Learning Outcomes
- Through this project, students will gain hands-on experience with Python programming
concepts such as data structures (dictionaries), control flow (if statements, loops),
functions, and error handling.

- Students will also learn about basic software design principles by creating an application
that meets user needs while ensuring usability and security.

6. Future Enhancements
- Although this version of the Bank Management System serves its purpose well for
educational use, future enhancements could include:

- Persistent data storage using databases or files so that user information remains
available between sessions.

- A graphical user interface (GUI) for improved user experience.


- Additional features such as loan management or investment tracking.

By providing these functionalities in an accessible format, the Bank Management System


project serves as an excellent introduction to both programming concepts and basic
financial management principles.
Input Code

# Banking System

print("Welcome to Your Banking System!")

# Initialize the bank database

accounts = {} # Stores account information as {username: {PIN, balance, history}}

while True:

print("\nMain Menu:")

print("1. Create Account")

print("2. Login")

print("3. Exit")

main_choice = input("Enter your choice (1-3): ")

if main_choice == '1':

# Account Creation

username = input("Enter a new username: ").strip()

if username in accounts:

print("Username already exists. Please choose a different username.")

else:

try:

pin = int(input("Set a 4-digit PIN: "))

if len(str(pin)) == 4:
accounts[username] = {'PIN': pin, 'balance': 0.0, 'history': []}

print("Account created successfully for " + username + "!")

else:

print("PIN must be exactly 4 digits.")

except ValueError:

print("Invalid input. PIN must be a 4-digit number.")

elif main_choice == '2':

# Login

username = input("Enter your username: ").strip()

if username in accounts:

try:

pin = int(input("Enter your 4-digit PIN: "))

if pin == accounts[username]['PIN']:

print("Welcome back, " + username + "!")

# User menu

while True:

print("\nUser Menu:")

print("1. Check Balance")

print("2. Deposit Money")

print("3. Withdraw Money")

print("4. View Transaction History")

print("5. Logout")

user_choice = input("Enter your choice (1-5): ")


if user_choice == '1':

# Check Balance

print("Your current balance is: ₹" + str(accounts[username]['balance']) + "0")

accounts[username]['history'].append("Checked balance")

elif user_choice == '2':

# Deposit Money

try:

deposit = float(input("Enter amount to deposit: ₹"))

if deposit > 0:

accounts[username]['balance'] += deposit

print("₹" + str(deposit) + " deposited successfully. New balance: ₹" +


str(accounts[username]['balance']) + "0")

accounts[username]['history'].append("Deposited ₹" + str(deposit) + "0")

else:

print("Deposit amount must be positive.")

except ValueError:

print("Invalid input. Please enter a numeric value.")

elif user_choice == '3':

# Withdraw Money

try:

withdrawal = float(input("Enter amount to withdraw: ₹"))

if withdrawal > 0:

if withdrawal <= accounts[username]['balance']:

accounts[username]['balance'] -= withdrawal
print("₹" + str(withdrawal) + " withdrawn successfully. Remaining
balance: ₹" + str(accounts[username]['balance']) + "0")

accounts[username]['history'].append("Withdrew ₹" + str(withdrawal) +


"0")

else:

print("Insufficient balance.")

else:

print("Withdrawal amount must be positive.")

except ValueError:

print("Invalid input. Please enter a numeric value.")

elif user_choice == '4':

# View Transaction History

print("\nTransaction History:")

history = accounts[username]['history']

if history:

for idx, record in enumerate(history, 1):

print(str(idx) + ". " + record)

else:

print("No transactions yet.")

elif user_choice == '5':

# Logout

print("Logging out " + username + ". See you again!")

break
else:

print("Invalid choice. Please try again.")

else:

print("Incorrect PIN. Access denied.")

except ValueError:

print("Invalid input. PIN must be a 4-digit number.")

else:

print("Account not found. Please create an account first.")

elif main_choice == '3':

# Exit

print("Thank you for using the banking system. Goodbye!")

break

else:

print("Invalid choice. Please try again.")


Output

Welcome to Your Banking System!

Main Menu:

1. Create Account

2. Login

3. Exit

Enter your choice (1-3): 1

Enter a new username: JohnDoe

Set a 4-digit PIN: 1234

Account created successfully for JohnDoe!

Main Menu:

1. Create Account

2. Login

3. Exit

Enter your choice (1-3): 2

Enter your username: JohnDoe

Enter your 4-digit PIN: 1234

Welcome back, JohnDoe!

User Menu:
1. Check Balance

2. Deposit Money

3. Withdraw Money

4. View Transaction History

5. Logout

Enter your choice (1-5): 1

Your current balance is: ₹0.00


Conclusion

The Bank Management System project serves as a practical tool for users to manage their
banking operations efficiently. It allows individuals to create accounts, check balances,
deposit and withdraw funds, and view transaction histories, all within a secur e environment.
The system emphasizes user-friendly design and robust security features, ensuring safe
access to financial information. This project is valuable for educational purposes, enhancing
programming skills in Python while illustrating key software development concepts. Future
improvements could include persistent data storage and a graphical user interface, further
enhancing usability and aligning with the evolving landscape of digital banking.
References

1. Python Documentation -

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

2. Online Tutorials and Resources - [Mohit Codes]

https://youtu.be/KDIt2YO6euw?si=1x5xS5xupH7UVU7u

3. Programming Books - [Sumita Arora]

Computer Science with Sumita Arora

You might also like