PROJECT 09: BANKING
MANAGEMENT SYSTEM
DATCOM Lab
NEU-College of Technology
National Economics University
Email: [email protected]
Project Objective
The objective of this project is to build a comprehensive system for managing bank-
ing operations including customer accounts, transactions, employees, and branch-level
administration. The system should ensure data security, transaction accuracy, and easy
reporting.
Database and Programming Languages
• Database Management System: MySQL
• Programming Language: Python
Detailed Project Requirements
System Analysis and Requirements
• Store and manage detailed records of customers, their accounts, transactions, bank-
ing employees, and branches.
Main Functionalities
• Customer management (add/update customer profiles).
• Account management (open/close accounts, track balance).
• Transaction management (deposit, withdrawal, transfer).
• Employee and branch management.
• Reporting on transaction history, account summaries, and daily banking activities.
1
Database Design and Implementation
1. Data Model Design
• Design an ER diagram representing the banking system.
• Convert ER model to relational schema including PKs, FKs, and constraints.
2. Table Structures
• Customers (CustomerID, CustomerName, PhoneNumber, Address)
• Accounts (AccountID, CustomerID, Balance, OpenDate)
• Transactions (TransactionID, AccountID, TransactionDate, Amount, Transac-
tionType)
• Employees (EmployeeID, EmployeeName, Position, BranchID)
• Branches (BranchID, BranchName, Address)
3. Sample Data
• Insert 5–10 rows for each table.
• Create a database diagram using MySQL Workbench.
Advanced Database Objects
• Indexes: Optimize performance for account lookups and transaction history.
• Views: Create views for customer balances, transaction summaries.
• Stored Procedures: Automate transaction processing (deposit, withdrawal).
• User Defined Functions: Compute interest, minimum balance checks.
• Triggers: Monitor suspicious activities or log transactions automatically.
Database Security and Administration
• Assign user roles such as manager, teller, and auditor with access control.
• Apply encryption and secure storage of sensitive data (e.g., balance).
• Setup automated backup and recovery procedures.
• Optimize queries and indexing strategies for performance.
Python Application Development
• Database Connection: Use mysql-connector-python or SQLAlchemy.
• Banking Operations: Write Python scripts for opening accounts, processing trans-
actions, and retrieving account info.
• Reports and Queries: Generate financial summaries, daily transactions, and bal-
ance reports.
2
• Interactive Interface: Create a command-line or GUI interface for tellers or man-
agers.
Deliverables
• Complete report (20–30 pages) with full documentation and screenshots.
• ER diagrams, SQL scripts, and Python application source code.
• Test results demonstrating core banking functionalities.
Conclusion and Recommendations
• Evaluate the reliability and functionality of the system.
• Recommend future enhancements such as online banking, fraud detection, or mobile
integration.
References
• Include all resources, documentation, and tools referenced during the project.