Bank Manegment
Bank Manegment
Objective:
The objective of this project is to develop a Bank Management System using
Python, which will automate common banking operations like account creation, fund
deposits, withdrawals, and account closure.
Scope:
This system aims to simplify and streamline the manual processes involved in
managing bank accounts by automating key operations.
Problem Statement:
Banks need a computerized system that can handle customer details, account
transactions, and generate reports efficiently to avoid human error and enhance
speed.
4. Project Description
System Purpose:
The Bank Management System automates various banking functions. It provides
services like account management, customer management, transaction processing
(deposits and withdrawals), and balance inquiry.
Modules:
1. Customer Management: Allows bank employees to create, update, or
delete customer profiles.
2. Account Management: Provides functionality for opening, managing, and
closing accounts.
3. Transactions: Handles deposits, withdrawals, and tracks transaction
histories.
4. Loan Management (Optional): Manages customer loan applications and
repayments.
6. System Requirements
Hardware Requirements:
Processor: Intel i3 or higher.
RAM: 4GB or more.
Disk Space: At least 500MB for storage of data files.
Software Requirements:
Programming Language: Python 3.x
Database: SQLite or MySQL for storing customer and account data.
IDE: PyCharm, Visual Studio Code, or Jupyter Notebook for development.
7. UML Diagrams
7.1 Use Case Diagram:
This diagram shows the interactions between actors and the system functionalities.
Actors include:
Bank Employee: Manages accounts, handles deposits, and closes accounts.
Customer: Views balance, deposits, and withdraws money.
7.2 Class Diagram:
The Class Diagram outlines the structure of the system, including key classes like:
Bank
Customer
Account
Transaction
7.3 Sequence Diagram:
A sequence diagram showing how a deposit transaction is processed step by step,
including actions like "Validate Account" and "Update Balance."
7.4 Activity Diagram:
An activity diagram that shows the flow of activities in the system, such as the steps
involved in opening an account or processing a withdrawal.
9. Testing
The Bank Management System underwent the following tests to ensure functionality
and reliability:
Unit Testing: Each method, such as deposit(), withdraw(), and
check_balance(), was tested individually.
Integration Testing: The interaction between different modules like
Customer and Account was tested.
User Acceptance Testing: Simulated real-world scenarios like opening
accounts, making deposits, and checking balances to ensure the system
works as expected.
Test Cases:
1. Test Case 1: Verify that the system allows account creation.
o Input: Customer details.
o Expected Output: Account created successfully.
10. Conclusion
The Bank Management System meets the primary objectives by automating key
banking operations such as account management, deposits, withdrawals, and
generating transaction histories. Future enhancements could include adding mobile
banking features or integrating an online payment gateway.
11. References
Python Documentation: https://docs.python.org/3/
SQLite Documentation: https://www.sqlite.org/docs.html
UML Resources: https://www.uml-diagrams.org/
Uml Daigrams
User Side Use Case
Transaction :-
Customer :-