Professional Documents
Culture Documents
Pblfinal
Pblfinal
On
BANK ACCOUNT MANAGEMENT
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE AND ENGINEERING
(Artificial Intelligence and Machine Learning)
Submitted By
G.JAGAN - 228R1A6686
G.SHASHIDAR - 228R1A6685
V.L.N.SWAMY - 228R1A66C8
K.DANIEL - 228R1A6697
BABU
CERTIFICATE
This is to certify that the project entitled “BANK ACCOUNT MANAGEMENT”
is a bonafide work carried out by
G.JAGAN - 228R1A6686
G.SHASHIDAR
V.L.N.SWAMY - 228R1A6685
K.DANIEL BABU - 228R1A66C8
- 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.SHASHIDAR - 228R1A6685
V.L.N.SWAMY - 228R1A66C8
1. Abstract 2.
Introduction 3.
Problem Statement
Existing Problem
Proposed Solution
4. ER Diagram
5. Source Code
Database Schema (MySQL)
Application Logic (Python with SQLAlchemy)
6. Relational Model
7. Normalization
First Normal Form (1NF)
Second Normal Form
(2NF) Third Normal Form
(3NF)
8. Conclusion
9. Future Enhancements
10. References
BANK ACCOUNT MANAGEMENT
ABSTRACT
Effective bank account management is a cornerstone of financial stability and
growth for both individuals and businesses. This comprehensive examination
delves into the multifaceted aspects of managing bank accounts, emphasizing
its critical role in financial planning, budgeting, and overall economic health.
The process involves a series of strategic activities including monitoring
account balances, ensuring timely transactions, safeguarding against fraud, and
optimizing cash flow. Advanced digital banking technologies have
revolutionized account management by providing real-time access to financial
data, enabling automated transactions, and offering sophisticated analytical
tools. The significance of bank account management extends beyond mere
balance tracking; it encompasses a holistic approach to financial stewardship.
Key components include the regular reconciliation of accounts to identify
discrepancies, the strategic use of various account types (such as savings,
checking, and investment accounts) to meet specific financial goals, and the
importance of maintaining accurate records for tax purposes and financial
audits.
1
PROBLEM STATEMENT
Existing Problem
Manual management of bank accounts leads to several issues, including:
Human errors in data entry and calculations.
Time-consuming processes for bank staff and customers.
Inconsistent data storage and retrieval. - Difficulty in tracking and auditing
transactions.
Security vulnerabilities in handling sensitive information.
Proposed Solution
The proposed bank account management system will: - Automate data entry
and calculations to minimize human errors.
Provide a user-friendly interface for quick and efficient processing.
Ensure consistent and secure data storage and retrieval.
Enable easy tracking and auditing of transactions.
Implement robust security measures to protect sensitive information.
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.
Code is Primary Key for Bank Entity.
Customer Entity : Attributes of Customer Entity are Customer_id, Name,
Phone Number and Address.
Customer_id is Primary Key for Customer Entity.
3
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.
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="john.doe@example.com")
session.add(new_customer)
session.commit()
5
Relational Model
Customer
Table
Attribute Data type Constraints Description
Customer_I INT PRIMARY KEY, Unique identifier for
D 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
Account Table
6
Transaction Table
7
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.
8
CONCLUSION
FUTURE ENHANCEMENTS
REFERENCES
Books and Articles
Elmasri, R., & Navathe, S. B. (2015). Fundamentals of
Database Systems (7th Edition). Pearson.
Websites
GeeksforGeeks: MySQL CREATE
Database