Swamy
Swamy
On
BANK ACCOUNT MANAGEMENT
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE AND ENGINEERING
(Artificial Intelligence and Machine Learning)
Submitted By
G.JAGAN - 228R1A6686
G.SHASHI - 228R1A6685
V.L.N.SWAM - 228R1A66C8
Y K.DANIEL - 228R1A6697
CERTIFICATE
This is to certify that the project entitled “BANK ACCOUNT MANAGEMENT”
is a bonafide work carried out by
G.JAGAN - 228R1A6686
G.SHASHI - 228R1A6685
V.L.N.SWAM - 228R1A66C8
Y K.DANIEL - 228R1A6697
in partial fulfillment of the requirement for the award of the degree of BACHELOR
OF TECHNOLOGY in COMPUTER SCIENCE AND ENGINEERING (AI & ML)
from CMR Engineering College, under our guidance and supervision.
The results presented in this project have been verified and are found to be satisfactory.
The results embodied in this project have not been submitted to any other university
for the award of any other degree or diploma.
This is to certify that the work reported in the present project entitled "BANK ACCOUNT
MANAGEMENT" is a record of bonafide work done by me in the Department of Computer Science
and Engineering (AI & ML), CMR Engineering College. The reports are based on the project work
done entirely by me and not copied from any other source. I submit my project for further development
by any interested students who share similar interests to improve the project in the future.
The results embodied in this project report have not been submitted to any other University or Institute
for the award of any degree or diploma to the best of our knowledge and belief.
G.JAGAN - 228R1A6686
G.SHASHI KUMAR - 228R1A6685
V.L.N.SWAMY - 228R1A66C8
K.DANIEL - 228R1A6697
CONTENTS
1. Abstract 1
2. Problem Statement 2
3. ER Diagram 3
4. Source Code 4
5. Relational model 6
6. Normalization 7
7. Conclusion 7
8. Future Enhancement 8
9. References 8
IV
ABSTRACT
The rapid evolution of technology in the financial sector has underscored the need for modern,
efficient, and secure systems for managing bank accounts. This project aims to develop a
comprehensive bank account management system that addresses the inherent challenges of traditional
manual methods. These challenges include frequent human errors in data entry and calculations, time-
consuming processes, data inconsistencies, difficulties in tracking and auditing transactions, and
significant security vulnerabilities.
The proposed system leverages the power of a relational database to automate and streamline the
management of customer information, account details, and transactions. This automation minimizes
the likelihood of human errors, ensuring higher accuracy in maintaining account balances and
recording transactions. By offering a user-friendly interface, the system enables bank staff to perform
account-related activities quickly and efficiently, thereby reducing customer wait times and enhancing
overall productivity.
Security is a paramount concern in the banking industry, and the proposed system addresses this by
incorporating robust security measures. These measures include encryption of sensitive data, stringent
access controls, and regular security audits to protect against unauthorized access and data breaches.
Additionally, automated backup and disaster recovery protocols are implemented to ensure data
integrity and availability even in adverse conditions.
The bank account management system developed in this project not only enhances operational
efficiency but also significantly improves customer satisfaction. By automating repetitive and error-
prone tasks, bank staff can focus more on customer service and other critical activities. Customers
benefit from quicker and more reliable banking services, leading to a better overall banking
experience.
Furthermore, the system is designed with scalability in mind, allowing for future enhancements and
integrations. Potential future developments include integration with online banking platforms to
provide customers with easy access to their accounts, the creation of mobile applications for on-the-go
banking, and the incorporation of advanced security features such as multi-factor authentication.
Additionally, the system could leverage data analytics and artificial intelligence to provide insights
into customer behavior, detect fraudulent activities, and offer personalized banking services.
In conclusion, this project demonstrates the significant advantages of automating bank account
management through a well-designed relational database system. It addresses critical issues of
accuracy, efficiency, and security, paving the way for a more modern and reliable banking experience.
The implementation of this system not only enhances current banking operations but also lays a strong
foundation for future technological advancements in the financial sector.
1
PROBLEM STATEMENT
Traditionally, bank account management refers to the strategic and operational processes involved in
effectively overseeing and controlling a company's bank accounts, including all functions related to
opening, maintaining, and optimizing bank accounts to achieve financial efficiency, security, and
compliance. Bank account management is a critical aspect of financial institutions. With the
increasing number of customers and transactions, managing bank accounts manually becomes
challenging and error-prone. This project aims to develop a bank account management system that
automates the process involved, providing a user-friendly interface for bank staff and customers.
The system will manage customer information, account details, transactions, and security, ensuring
data integrity and efficiency.
Existing Problem:
Human Errors: Manual data entry and calculations are prone to mistakes, leading to incorrect
account balances, erroneous transaction records, and ultimately, financial discrepancies. Such
errors undermine the trust customers place in the banking institution.
Time-Consuming Processes: Manual processing of account-related activities, such as opening
new accounts, updating customer information, and recording transactions, is labor-intensive and
slow. This inefficiency translates into longer wait times for customers and reduced productivity
for bank employees.
Data Inconsistency: Without a centralized and automated system, maintaining consistent and
accurate data across various branches and departments is challenging. Disparate records can lead
to confusion and errors during account management and auditing processes.
Security Vulnerabilities: Handling sensitive customer information manually increases the risk of
data breaches and unauthorized access. Ensuring the confidentiality, integrity, and availability of
customer data is a significant concern in a manual setup.
Proposed Solution:
The key features and benefits of the proposed system include:
Error Reduction: By automating data entry and processing, the system minimizes the likelihood
of human errors. Automated validation checks and standardized input methods ensure data
accuracy and reliability.
Efficiency and Speed: The system will provide a user-friendly interface for bank staff, enabling
quick and efficient processing of account-related activities. This will significantly reduce the time
required to open accounts, update information, and process transactions.
Data Consistency: A centralized database ensures that all customer and account data are
consistently updated and accessible across all branches and departments.
Enhanced Tracking and Auditing: The system will facilitate easy tracking and auditing of
transactions through comprehensive logging and reporting features. Historical data can be quickly
retrieved and analyzed, supporting efficient monitoring and compliance efforts.
2
ER DIAGRAM OF BANK ACCOUNT MANAGEMENT
This bank ER diagram illustrates key information about bank, including entities such as branches,
customers, accounts, and loans. It allows us to understand the relationships between entities. Entities
and their Attributes are :
Bank Entity : Attributes of Bank Entity are Bank Name, Code and Address.
Customer Entity : Attributes of Customer Entity are Customer_id, Name, Phone Number and Address.
Customer_id is Primary Key for Customer Entity
Branch Entity : Attributes of Branch Entity are Branch_id, Name and Address. Branch_id is primary
Key for Branch Entity.
Account Entity : Attributes of Account Entity are Account_number, Account_Type and Balance.
Account_number is Primary Key for Account Entity.
Loan Entity : Attributes of Loan Entity are Loan_id, Loan_Type and Amount. Loan_id is primary key
for Loan Entity.
3
SOURCE CODE
Database Schema(MySQL)
CREATE DATABASE BankManagement; USE BankManagement;
CREATE TABLE Customer (
CustomerID INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(100),
Address VARCHAR(255), Phone VARCHAR(15), Email VARCHAR(100)
);
CREATE TABLE Account (
AccountID INT AUTO_INCREMENT PRIMARY KEY,
AccountType VARCHAR(50), Balance DECIMAL(10, 2),
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);
CREATE TABLE Transaction (
TransactionID INT AUTO_INCREMENT PRIMARY KEY, Date DATETIME,
Amount DECIMAL(10, 2), Type VARCHAR(50),
AccountID INT,
FOREIGN KEY (AccountID) REFERENCES Account(AccountID)
);
4
Application Logic(Python with SQLAlchemy)
from sqlalchemy import create_engine, Column, Integer, String, Float, DateTime, ForeignKey from
sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
import datetime
Base = declarative_base() class
Customer(Base):
tablename = 'Customer'
CustomerID = Column(Integer, primary_key=True, autoincrement=True)
Name = Column(String(100))
Address = Column(String(255))
Phone = Column(String(15)) Email
= Column(String(100))
class Account(Base):
tablename = 'Account'
AccountID = Column(Integer, primary_key=True, autoincrement=True) AccountType
= Column(String(50))
Balance = Column(Float)
CustomerID = Column(Integer, ForeignKey('Customer.CustomerID')) customer
= relationship(Customer)
class Transaction(Base):
tablename = 'Transaction'
TransactionID = Column(Integer, primary_key=True, autoincrement=True)
Date = Column(DateTime, default=datetime.datetime.utcnow)
Amount = Column(Float)
Type = Column(String(50))
AccountID = Column(Integer, ForeignKey('Account.AccountID'))
account = relationship(Account)
engine = create_engine('mysql+pymysql://username:password@localhost/BankManagement')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine) session
= Session()
# Example Usage
new_customer = Customer(Name="John Doe", Address="123 Elm Street", Phone="555-1234",
Email="[email protected]")
session.add(new_customer)
session.commit()
5
RELATIONAL TABLES
ACCOUNT TABLE
Attribute Data type constraints Description
Account_ID INT PRIMARY KEY, Unique identifier for
AUTO_INCREMENT each account
CUSTOMER TABLE
Attribute Data type Constraints Description
Customer_ID INT PRIMARY KEY, Unique identifier for
AUTO_INCREMENT each customer
Name VARCHAR(100) NOT NULL Customer’s full name
Address VARCHAR(255) NOT NULL Customer’s address
Phone VARCHAR(15) NOT NULL Customer’s phone
number
Email VARCHAR(100) NOT NULL Customer’s email
address
TRANSACTION TABLE
6
EXPLANATION OF RELATIONSHIPS
Bank has Branches => 1 : N
One Bank can have many Branches but one Branch can not belong to many Banks, so the
relationship between Bank and Branch is one to many relationship.
NORMALIZATION
The tables are normalized to ensure data integrity and eliminate redundancy:
1NF: Each table has a primary key, and each column contains atomic values.
2NF: All non-key columns are fully functionally dependent on the primary key.
3NF: There are no transitive dependencies among non-key columns.
CONCLUSION
The bank account management system developed in this project automates and streamlines the processes
involved in managing bank accounts. The system enhances data accuracy, efficiency, and security,
benefiting both the bank staff and customers. The use of a relational database ensures data integrity and
facilitates easy tracking and auditing of transaction.
7
FUTURE ENHANCEMENTS
Integration with Online Banking: Allow customers to access and manage their accounts online.
Mobile Application: Develop a mobile app for convenient access and management of accounts.
Advanced Security Features: Implement multi-factor authentication and encryption for enhanced
security.
Data Analytics: Incorporate data analytics to provide insights into customer behaviour and bank
performance.
AI and Machine Learning: Use AI and ML for fraud detection and personalized banking services.
REFERENCES
Books and Articles
Elmasri, R., & Navathe, S. B. (2015). Fundamentals of Database Systems (7th Edition). Pearson.
Websites
GeeksforGeeks: MySQL CREATE Database