Aayusireport
Aayusireport
Submitted by:
Aayushi
2023078002
CSE (2023-202)
Submitted To:
Ms. Divya
Department of Computer Science and Engineering,
State Institute of Engineering and Technology, Nilokheri (Karnal)
(Affiliated to Kurukshetra University, Kurukshetra)
1
DECLARATION BY THE CANDIDATE
I hereby declare that the project report entitled " Bank Management system " submitted by me
to State Institute of Engineering & Technology, Nilokheri (Karnal) in partial fulfilment of the
requirement for the award of the degree of B. TECH in COMPUTER SCIENCE &
ENGINEERING is a record of bonafide project work carried out by me. I further declare that
the work reported in this project has not been submitted and will not be submitted, either in
part or in full, for the award of any other degree or diploma in this institute or any other institute
or university.
2
CERTIFICATE
3
ACKNOWLEDGEMENT
The success and outcome of this project required a lot of guidance and assistance from many
people, and I am extremely privileged to have got this all along the completion of my project.
All that I have done is only due to such supervision and assistance and I would not forget to
thank them.
I would like to place on record my deep sense of gratitude to Hartron Team who taught me the
usage of the various tools and techniques widely used in the field of user experience design.
Thank you Hartron for giving such a wonderful opportunity to study under their online training
program.
I am thankful to and fortunate enough to get constant encouragement, support and guidance
from all Teaching staffs of Department of Computer Science and Engineering who helped me
in successfully completing our project work.
Aayushi
CSE 3rd Semester
Roll no.-2023078002
4
ABSTRACT
The bank management system project is a program that keeps track of a client’s bank account.
This project demonstrates the operation of a banking account system and covers the essential
functions of bank management software. It develops a project for resolving a customer’s
financial applications in a banking environment to meet the needs of an end banking user by
providing multiple ways to complete banking chores. Additionally, this project is to provide
additional features to the user’s workspace that are not available in a traditional banking project.
The project’s bank management system is built on cutting-edge technologies. This project’s main
goal is to create software for a bank account management system. This project was designed to
make it simple and quick to complete previously impossible processes with manual systems
which are now possible with this software.
5
COMPANY PROFILE
Company Overview
• Company Name: HARTRON (Haryana State Electronics Development Corporation
Limited)
• Founded: 1982
• Headquarters: Chandigarh, India
• Website: www.hartron.org.in
HARTRON is a state government-owned electronics development corporation based in
Haryana, India. It was established with the primary objective of promoting the electronics and
IT industry in Haryana. Over the years, HARTRON has become a key player in the state's
technology development, particularly in the fields of electronics, computer education, software
development, and IT-enabled services.
Vision
To become a leading organization in the field of electronics and IT development, empowering
the people and businesses of Haryana through innovative technology solutions, educational
services, and efficient governance.
Mission
• To foster the growth of the electronics industry in the state.
• To promote computer education and software development.
• To enhance the use of information technology for the development of the state.
• To provide IT infrastructure and services for government and public sector
organizations.
6
o Digitalization of government processes to improve transparency, accountability,
and efficiency.
6. Project Management:
o Managing large-scale technology projects for the government and other clients.
o Expertise in the execution of IT infrastructure projects.
Key Achievements
• Implementation of E-Governance Solutions: HARTRON has successfully delivered
several e-governance initiatives to streamline government operations and improve
service delivery to citizens.
• Training Success: Thousands of individuals have been trained in various computer and
IT courses, significantly contributing to skill development in the state.
• Industry Partnerships: Collaborations with various global and national organizations to
bring innovative technology solutions to Haryana.
• Pioneering IT Solutions for Government: HARTRON has played a key role in the
automation of state government processes, increasing efficiency and transparency in
governance.
Outlook
HARTRON aims to:
• Expand its IT services to more regions and industries.
• Focus on Smart Cities and Digital India initiatives through collaboration with state and
central government projects.
• Develop and implement more e-governance solutions to enhance public service
delivery.
• Continue its efforts in skill development and training to meet the growing demands of
the IT industry.
7
LIST OF FIGURES
8
TABLE OF CONTENTS
9
CHAPTER 1
INTRODUCTION
10
1.2 History of Bank Account
The history of bank accounts stretches back thousands of years, evolving from primitive
systems for storing wealth to the advanced digital tools we use today.
In ancient civilizations, such as Mesopotamia around 3000 BCE, the first forms of banking
were created by temples that served as places to store valuables and grain, facilitating trade
and lending. Similarly, in ancient Egypt, temples acted as depositories, providing safe storage
for wealth and enabling early forms of credit. In ancient Greece and Rome, banking practices
evolved further, with Roman argentarii offering services like moneylending and currency
exchange, which laid the groundwork for more structured financial systems.
During the Middle Ages, the rise of trade in Europe led to the emergence of merchant banks
in cities like Venice and Florence. Wealthy families, such as the Medici, established banking
institutions that offered services such as deposit taking and lending. This period also saw the
introduction of banknotes in the 14th century, essentially paper money issued by banks as
receipts for deposited assets, which marked the beginnings of modern currency systems.
The development of modern banking began in the 17th century with the founding of the Bank
of England in 1694, which set the model for central banking and currency regulation. This era
also saw the emergence of more formalized bank accounts, including checking and savings
accounts, which allowed individuals to store money securely and conduct financial
transactions more efficiently.
In the 19th century, the Industrial Revolution spurred the need for more accessible banking
services. Personal banking accounts became available to ordinary citizens, and the use of
checks as a method of transferring money grew, providing a more secure and convenient way
to handle finances. As banking evolved, it became more integrated into daily life, especially
with the advent of automated teller machines (ATMs) in the 1960s, which allowed customers
24/7 access to their accounts.
The late 20th century brought further innovations in banking with the rise of credit and debit
cards, and by the 1990s, the internet transformed banking with the introduction of online
banking. This allowed customers to check balances, transfer money, and pay bills without
leaving their homes, bringing unprecedented convenience.
In the 21st century, mobile banking became mainstream, as smartphones enabled users to
manage their bank accounts and conduct financial transactions via apps. Additionally, the rise
of cryptocurrencies like Bitcoin and the underlying blockchain technology have introduced
decentralized forms of banking, presenting new challenges and opportunities for the financial
sector.
From ancient deposit systems to the digital banking landscape of today, the history of bank
accounts reflects the ongoing evolution of how people manage money and interact with
financial institutions. Each step forward has made banking more accessible, secure, and
efficient, and the trend toward digitalization suggests an even more streamlined future.
12
1.4 Types of Banks
1. Checking Account:
• Designed for everyday use.
• Allows deposits, withdrawals, writing checks, and making payments.
• Typically has low or no interest but offers high liquidity (easy access to funds).
• Features may include a debit card, ATM access, and online banking.
2. Savings Account:
• Used for saving money over a longer period.
• Typically earns interest on the balance.
• Withdrawals may be more limited compared to checking accounts.
• Ideal for accumulating funds for future needs or emergencies.
3. Fixed Deposit Account (Time Deposit):
• A type of savings account where funds are deposited for a fixed period (e.g., 1 year,
5 years).
• Offers a higher interest rate than regular savings accounts.
• Funds are usually locked until the maturity date.
4. Current Account:
• Primarily used by businesses for frequent transactions.
• Often comes with overdraft facilities and allows for larger transactions.
• May not earn interest and could have higher fees and charges compared to savings
accounts.
5. Joint Account:
• An account shared by two or more individuals.
• Can be used for shared financial goals or family management.
• All account holders can deposit, withdraw, or manage funds.
6. Online or Mobile Bank Account:
• Accounts that are primarily managed through online banking apps or websites.
• Offers convenience and may have lower fees due to reduced physical
infrastructure.
13
CHAPTER 2
2.1.1 TESTING
Testing is the process of executing a program with the intent of finding errors. Although
software testing is itself an expensive activity, yet launching of software without may lead to
cost potentially much higher than that of testing, especially in systems where human safety is
involved. Effective software testing will contribute to the delivery of higher quality software
products, more satisfied users, and lower maintenance costs, more accurate and reliable
results.
Software testing is necessary and important activity of software development process.
Structural Testing considers the internal mechanism of a system or component. Fatigue Testing
is carried out with the objective of determining the relationship between the stress range and
the number of times it can be applied before causing failure. So, when your product’s structural
durability needs to be predicted, verified and validated, turn to DTB's Structural Testing and
Fatigue Testing experts. We provide you with the necessary structural testing and fatigue
testing equipment and personnel to test the design and manufacturing integrity of your product.
Call upon our vast experience in commercial and military applications.
Software structure testing is a 2-day course designed to provide an excellent knowledge base
and practical skills for anyone interested in improving Software Structural Testing techniques
and practices in their organization. This course starts with an overview of software testing
basics, including discussions of the importance of software testing, the different levels of
testing and basic testing principles. Basic testing terminology is defined. Techniques for
ensure test coverage of requirements, different types of testing documentation and various test
activities are discussed.
2.1.3 FUNCTIONAL TESTING
It is very useful and convenient in support of functional testing. Although JMeter is known
more as a performance testing tool, functional testing elements can be integrated within the
Test Plan, which was originally designed to support load testing. Many other load-testing tools
provide little or none of this feature, restricting themselves to performance-testing purposes.
14
Besides integrating functional-testing elements along with load-testing elements in the Test
Plan, you can also create a Test Plan that runs these exclusively. In other words, aside from
creating a Load Test Plan, it also allows you to create a Functional Test Plan. This flexibility
is certainly resource-efficient for the testing project.
This will give a walkthrough on how to create a Test Plan as we incorporate and/or configure
its elements to support functional testing. This created a Test Plan for a specific target web
server. We will begin the chapter with a quick overview to prepare you with a few expectations;
we will create a new Test Plan, only smaller. The Test Plan we will create and run at the end
of this chapter will incorporate elements that support functional testing, exclusively.
2.1.4 UNIT TESTING
Unit testing focuses on the modules independently locate the errors. This enables the tester to
detect errors in coding. It is the process of taking a module and running it in isolation from
rest of the software product by using prepared test cases and comparing the actual result with
the result redirected with the specifications and design of the module. One purpose of testing
is to find and remove as many errors in the software as practical. There are number of reasons
in support of unit testing-:
• The size of module single module is small that we can locate an error fairly easily.
• The module is small enough that we can attempt to test it in some demonstrably
exhaustive fashion.
• Confusing interactions of multiple errors in widely different parts of software are
eliminated.
There are problems associated with testing a module in isolation. How do we run a module
without anything to call it, to be called by it, possibly to output intermediate values obtained
during execution? One approach is to construct an appropriate driver routine to call it, and
simply stubs to be called by it, and to insert output statements in it. Stubs serve to replace
modules that are subordinate to the module to be tested. A stub or dummy subprogram uses
the subordinate module’s interface, may do minimal data manipulation, prints verification of
entry and returns.
2.1.5 INTEGRATION TESTING
This is a systematic technique for constructing the program structure while at the same time
to uncover the errors associated with the interface. The objective is to take unit tested module
and build a program structure that has been detected by designing. The main purpose of
integration testing is to determine that the interfaces between modules are correct or not. One
specific target of integration testing is the interface: whether parameter matches on both sides
as to type, permissible ranges, meaning & utilization. There are 3 types of integration testing-
• Top-Down Approach: Top-Down integration proceeds down the invocation hierarchy,
adding one module at a time until an entire tree level is generated.
• Bottom-Up Approach: The Bottom-up strategy works similarly from the bottom to up.
• Sandwich Strategy: A sandwich strategy runs from top and bottom simultaneously.
16
o Transaction Type: Withdrawal (ATM)
3. Transfer (IMPS):
o Transaction ID: TXN10003
o Amount: ₹2000.00
o Source Account: 123456789012 (Ramesh Kumar)
o Destination Account: 112233445566 (Deepak Yadav)
o Balance Before (Source): ₹6000.00
o Balance After (Source): ₹4000.00
o Balance After (Destination): ₹2000.00
3. Loan Data
Test data for loan management ensures the system can handle loan applications, approvals,
and repayments. In India, common types of loans include personal loans, home loans, and car
loans.
• Loan ID: LN1001, LN1002, LN1003
• Loan Amount: ₹100000.00, ₹500000.00, ₹2000000.00
• Interest Rate: 7%, 9%, 10.5%
• Loan Term: 12 months, 24 months, 36 months
• Instalment Amount: ₹10000.00, ₹25000.00, ₹40000.00
• Start Date: "2024-01-01", "2024-05-01", "2024-08-01"
• Due Date: "2025-01-01", "2026-05-01", "2027-08-01"
• Loan Status: Approved, Pending, Rejected
• Repayment Status: Paid, Overdue, Partial
Example Loan Data:
1. Home Loan:
o Loan ID: LN1001
o Amount: ₹500000.00
o Interest Rate: 8%
o Term: 24 months
o Instalment: ₹25000.00/month
o Status: Approved
2. Personal Loan:
o Loan ID: LN1002
o Amount: ₹100000.00
o Interest Rate: 10.5%
o Term: 12 months
o Instalment: ₹10000.00/month
o Status: Pending
4. Bill Payment Data (Indian Context)
Test data for bill payments ensures that the system can handle utility bill payments, mobile
recharges, and credit card payments common in India. Payment systems like UPI, IMPS, and
NEFT are widely used.
• Bill Payment ID: BP1001, BP1002, BP1003
• Bill Type: Electricity Bill, Credit Card, Mobile Recharge, Water Bill
• Amount: ₹500.00, ₹1500.00, ₹3000.00
• Payment Method: UPI, NEFT, Credit Card, Debit Card
• Bill Due Date: "2024-10-01", "2024-11-01", "2024-12-01"
• Payment Status: Success, Failed, Pending
Example Bill Payments:
1. Electricity Bill:
o Bill ID: BP1001
17
o Amount: ₹500.00
o Bill Type: Electricity
o Payment Method: UPI
o Due Date: "2024-10-01"
o Payment Status: Success
2. Mobile Recharge:
o Bill ID: BP1002
o Amount: ₹200.00
o Bill Type: Mobile Recharge (Airtel)
o Payment Method: UPI
o Due Date: "2024-10-10"
o Payment Status: Success
3. Credit Card Payment:
o Bill ID: BP1003
o Amount: ₹2000.00
o Bill Type: Credit Card (HDFC)
o Payment Method: NEFT
o Due Date: "2024-11-01"
o Payment Status: Failed
5. Security Data (for Authentication)
Test data for security ensures the system handles login attempts, password changes, and user
authentication in line with common security practices in Indian banks.
• User ID: user001, user002, user003
• Password: "password123", "Secure@2024", "Pass@456"
• Login Attempt: Success, Failure
• Failed Login Attempts: 1, 3, 5 (for account lockout scenarios)
6. User Interface (UI) Data
Test data for the UI ensures that inputs like customer details, transaction amounts, and other
data are correctly handled.
• Customer Name: "Ramesh Kumar", "Priya Sharma"
• Account Type: "Savings Account", "Current Account", "Fixed Deposit"
• Transaction Amount: ₹1000.00, ₹2000.00, ₹500.00
• Loan Type: "Personal Loan", "Home Loan"
• Bill Type: "Electricity", "Credit Card", "Water"
• Payment Mode: "UPI", "NEFT", "Debit Card"
2.3 Implementation
Implementation is the stage in the project where the theoretical design is turned into the
working system and is giving confidence to the new system for the users i.e. will work
efficiently and effectively. It involves careful planning, investigation of the current system and
its constraints on implementation, design of method to achieve the changeover, an evaluation,
of change over methods. Apart from planning major task of preparing the implementation is
education of users. The more complex system is implemented, the more involved will be the
system analysis and design effort required just for implementation. An implementation
coordinating committee based on policies of individual organization has been appointed. The
implementation process begins with preparing a plan for the implementation for the system.
According to this plan, the activities are to be carried out; discussions may regarding the
equipment have to be acquired to implement the new system.
18
Implementation is the final and important phase. The most critical stage is in achieving a
successful new system and in giving the users confidence that the new system will work and
be effective. The system can be implemented only after thorough testing is done and if it found
to working according to the specification. This method also offers the greatest security since
the old system can take over if the errors are found or inability to handle certain types of
transaction while using the new system.
At the beginning of the development phase a preliminary implementation plan is created to
schedule and manage the many different activities that must be integrated into plan. The
implementation plan is updated throughout the Development phase, culminating in a
changeover plan for the operation phase. The major elements of implementation plan are test
plan, training plan, equipment installation plan, and a conversion plan.
There are three types of implementations:
A conversion is the process of changing from the old system to the new one. It must be properly
planned and executed. Four methods are common in use. They are Parallel Systems, Direct
Conversion, Pilot System and Phase In method.
2.3.2 Parallel system:
The most secure method of converting from an old to new system is to run both systems in
parallel. This method is safest one because it ensures that in case of any problem in using new
system, the organization can still fall back to the old system without the loss of time and
money.
The disadvantages of parallel systems approach are: •
It doubles operating costs.
• The new system may not get fair trial.
19
CHAPTER 3
PROJECT BRIEF
3.1 Profile of the Problem
The Bank Management System was created in response to several challenges faced by
traditional banking operations and to address the increasing complexity of financial transactions
in modern economies. Here are the key problems that led to the development of automated
banking management systems:
20
Customers and auditors often faced challenges in ensuring that their transactions and
balances were accurate.
2. System Design
Objective: The purpose of this phase is to define the overall system architecture and design
the database, user interface (UI), and software components.
• Activities:
o High-level system architecture design: Decide whether the system will be a
web-based or desktop-based application.
21
o Database design: Create ER diagrams (Entity-Relationship diagrams) to model
the database. Define tables for customer details, transaction records, loan
accounts, etc.
o UI/UX design: Design wireframes for the user interface that allows easy access
to features like balance inquiry, loan applications, bill payments, and
transaction history.
o Security design: Plan for secure login systems (e.g., multi-factor
authentication), encryption of sensitive data, and compliance with regulations
such as KYC (Know Your Customer) and AML (Anti-Money Laundering).
• Output:
o System architecture document
o UI/UX wireframes
o Database schema
o Security protocols
3. Implementation (Coding/Development)
Objective: In this phase, actual coding takes place based on the designs created in the previous
step. Development teams write the code, implement the logic, and integrate various system
components.
• Activities:
o Set up the development environment, including tools, frameworks, and
programming languages (e.g., Python, Java, C++, etc.).
o Develop modules for core banking functionalities:
▪ Account management (create, update, delete, view)
▪ Transaction handling (deposits, withdrawals, transfers)
▪ Loan processing and payment
▪ Bill payments and service request management
o Implement the database and connect it to the application.
o Write unit tests for individual components to ensure correct functionality.
• Output:
o Source code
o Unit test results
o Database and application integration
4. Testing
Objective: The goal of the testing phase is to identify and fix bugs, verify system functionality,
and ensure that the Bank Management System meets the specified requirements.
• Activities:
o Unit Testing: Test individual components (functions or modules) to ensure they
work as expected.
o Integration Testing: Ensure that different system modules, like the account
module and transaction module, work seamlessly together.
o System Testing: Test the entire system for functionality, performance, security,
and stability.
o Acceptance Testing: Conduct User Acceptance Testing (UAT) with real users
(e.g., bank employees) to ensure the system meets business needs.
o Security Testing: Conduct vulnerability scans, penetration testing, and data
encryption validation.
• Output:
o Test reports
o Bug and issue reports
22
o Finalized system ready for deployment
5. Deployment
Objective: This phase involves deploying the completed Bank Management System into the
live environment where it will be used by the bank staff and customers.
• Activities:
o Set up the live environment, ensuring that hardware, network, and software
resources are ready for deployment.
o Deploy the application on a production server or cloud infrastructure.
o Migrate data from legacy systems (if any) to the new banking system.
o Configure security measures and backup procedures.
o Provide training for bank staff on how to use the system.
• Output:
o Live system
o Deployment documentation
o User training materials
23
1. Manual Processing and Human Errors
Problem: In traditional banking systems, many tasks such as account management, transaction
processing, and record-keeping were performed manually. This resulted in human errors, such
as incorrect entries, miscalculations, and delayed transactions. These errors caused
discrepancies in financial records, leading to financial mismanagement and customer
dissatisfaction.
• Impact: Increased chances of errors in financial transactions, account balance
discrepancies, delayed updates, and poor customer experience.
Solution: An automated Bank Management System reduces human intervention and ensures
accuracy in processing transactions, managing accounts, and generating reports, thereby
reducing errors and increasing efficiency.
24
• Impact: Difficulty in managing loan applications, loan repayment schedules, and
interest calculations, leading to customer dissatisfaction, errors in loan accounting, and
delays in approvals.
Solution: The Bank Management System automates loan management, ensuring that loan
applications are processed quickly, repayment schedules are followed accurately, and interest
is calculated correctly. Automated integration across modules improves coordination between
accounts, loans, and transactions.
25
10. Customer Experience and Satisfaction
Problem: Long queues, slow transaction processing, limited access to services, and poor
communication between the bank and its customers resulted in a poor customer experience.
• Impact: Loss of customers, reduced customer loyalty, and negative impact on the bank’s
reputation.
Solution: A Bank Management System enhances customer experience by offering fast, efficient
services, 24/7 access to accounts through mobile apps, automated notifications for transactions
and loan updates, and self-service options such as ATMs and online banking platforms.
1. Technical Feasibility
Objective: To assess whether the required technology and resources are available to
successfully implement the Bank Management System.
• Technology Requirements:
o Programming Languages: The system can be developed using programming
languages like Python, Java, or C++ for backend development, and HTML, CSS,
JavaScript, or frameworks like React.js or Angular for the frontend (if web-
based).
o Database: MySQL, PostgreSQL, or Oracle can be used for managing customer
data, transactions, and account information.
o Platform: The system can be web-based, desktop-based, or mobile-based
(iOS/Android) depending on the bank's needs.
o Security Tools: Implementation of secure protocols like SSL/TLS for data
encryption, OAuth for authentication, and AES for securing sensitive customer
data.
o Integration with Existing Infrastructure: The system should integrate with
existing systems such as ATMs, payment gateways, and legacy software for
smooth transition and operation.
• Evaluation:
o The current technological infrastructure (servers, database management
systems) is capable of handling the required resources and expected user load.
o Development tools and technologies are readily available, and developers have
the required skillset.
o The system is scalable and capable of handling increasing amounts of data and
users over time.
• Conclusion:
o Technically feasible: The required technologies, infrastructure, and tools are
available, and development teams have the necessary skills to execute the
project.
26
2. Operational Feasibility
Objective: To evaluate whether the Bank Management System will work effectively within the
current operational structure of the bank and meet user needs.
• Stakeholder Requirements:
o The system must cater to the needs of bank employees, customers, and system
administrators.
o It must allow for easy access to accounts, transaction history, and loan
information for employees and customers.
o The system should support real-time transactions and provide easy-to-navigate
interfaces for self-service banking.
• Operational Challenges:
o User Adoption: The system must be user-friendly and intuitive for both tech-
savvy and non-technical users (bank staff, customers).
o Training Requirements: Bank staff must be trained to use the new system, which
could take time and resources.
o Data Migration: Migrating data from older systems to the new system without
causing disruptions to existing services.
• Evaluation:
o The new system aligns with the bank's operational workflows and integrates
with existing processes (such as account opening, loan approval, and payment
processing).
o The system is easy to use, and staff training requirements are manageable.
o There is a clear plan for data migration, and any operational disruptions are
minimized.
• Conclusion:
o Operationally feasible: The system can be implemented effectively in the bank’s
current operations, with appropriate training and minimal disruption.
3. Economic Feasibility
Objective: To assess whether the development and implementation of the Bank Management
System will be financially viable for the bank.
• Cost Estimates:
o Development Costs: Includes costs for software development (coding, testing,
debugging), project management, and initial setup costs.
o Hardware Costs: Includes any upgrades needed for servers, storage, or network
infrastructure.
o Operational Costs: Recurring expenses such as system maintenance, support
staff, software updates, and cloud hosting costs.
o Training Costs: Costs for training employees and customers on the new system.
• Benefits:
o Efficiency Gains: Reduced time spent on manual tasks like data entry and
transaction processing, leading to higher productivity.
o Cost Savings: Reduced operational costs due to automation, especially in areas
like account management, loan processing, and transaction handling.
o Improved Customer Satisfaction: Faster service, reduced errors, and better
access to banking services lead to increased customer loyalty and new
customers.
27
• Return on Investment (ROI):
o The initial investment in the system can be offset by long-term benefits,
including reduced labour costs, higher customer retention, and the ability to
scale services more efficiently.
• Evaluation:
o Initial costs for development and implementation may be high, but the long-term
savings and revenue benefits from improved operational efficiency and
customer satisfaction justify the investment.
o The bank can expect a positive ROI in a few years due to efficiency
improvements and enhanced service offerings.
• Conclusion:
o Economically feasible: The project is financially viable, with high long-term
benefits that outweigh the initial costs.
4. Legal Feasibility
Objective: To ensure that the Bank Management System complies with all applicable laws,
regulations, and standards in the banking industry.
• Regulatory Compliance:
o The system must adhere to KYC (Know Your Customer) regulations for
customer verification, which require secure data management practices.
o The system must comply with AML (Anti-Money Laundering) requirements,
ensuring that it can flag suspicious transactions and keep detailed logs for
auditing purposes.
o The system must ensure data protection in accordance with GDPR (General Data
Protection Regulation) or Indian IT Act to ensure the security and privacy of
customer data.
• Data Security Laws:
o The Bank Management System should be compliant with data encryption
standards, such as AES (Advanced Encryption Standard), and provide secure
communication channels for online transactions.
o There should be audit trails to ensure traceability of every action performed in
the system, ensuring accountability and transparency.
• Evaluation:
o All necessary security measures, including data encryption, audit logs, and
secure communication, will be implemented.
o Compliance with regulations like KYC, AML, and data privacy laws will be
ensured through the inclusion of automated compliance features.
• Conclusion:
o Legally feasible: The system will comply with all relevant laws and regulations,
ensuring it can be implemented without legal complications.
28
• Establish the high-level acceptance criteria.
SIZE
COST DEVELOPMENT
ESTIMATION TIME
RESOURCES
REQUIREMENT
PROJECT
SCHEDULING
29
3.7 Size estimation:
Size estimation is the process of determining the size of the software based on its functionality,
complexity, and required resources. For a Bank Management System, the goal is to estimate
how large the system is in terms of its components and the effort needed to develop it.
There are various methods to estimate the size of a software project. Below is a basic overview
of the most common methods for size estimation:
4. COCOMO Model
COCOMO (Constructive Cost Model) uses the number of lines of code (LOC) to estimate
the effort (in person-months) required to develop the system. It’s a mathematical model that
factors in the type of project (simple, medium, complex) and the team's productivity.
• Example: If you have 1,300 lines of code (LOC), the COCOMO model can be used
to calculate the estimated effort (in terms of person-months).
2. Development
• Coding in C++: The actual development of the system's core features, including
customer account management, transaction processing, security, etc.
• Time: 3–6 months of full-time development.
• Estimated Cost:
o ₹1,245,000–₹7,968,000
4. Testing
• Types of Testing: Unit testing, integration testing, system testing, and user acceptance
testing.
• Time: 1–2 months.
• Estimated Cost:
o ₹415,000–₹1,660,000
6. Additional Costs
• Software Licensing: If third-party libraries or commercial tools (e.g., for encryption,
security) are required.
o Estimated Cost: ₹41,500–₹415,000
• Hardware: If you need special infrastructure (e.g., servers for deployment).
o Estimated Cost: ₹83,000–₹830,000
• Security and Compliance: Adherence to regulatory standards such as PCI-DSS, GDPR,
or others.
o Estimated Cost: ₹415,000–₹1,660,000
31
Key Factors Affecting the Cost:
• Project Scope: More features (e.g., online banking, mobile integration, complex loan
systems) will drive costs up.
• Development Team: The hourly rate of developers in India varies based on experience
and location. Freelancers may charge less, while developers in top cities (Bengaluru,
Mumbai, Delhi) or with specialized skills (security, advanced C++) may charge more.
• Security & Compliance: Financial systems need high-level security and adherence to
legal standards, which can add to the cost.
These estimates are indicative and will vary depending on the specific requirements, region,
and complexity of the project. To get a more accurate estimate, it's essential to define the
scope and specific features of the bank management system clearly before initiating
development.
1. Hardware Requirements
The hardware requirements for a BMS can vary based on the size and complexity of the system.
Here’s a breakdown for small to medium-scale systems, along with scalability considerations
for larger systems:
A. Server Requirements
• Processor (CPU):
o For small-scale systems: Intel i5 or equivalent (4 cores, 2.5 GHz+)
o For medium-scale systems: Intel Xeon or AMD Ryzen (6–8 cores, 3.0 GHz+)
o For large-scale systems: High-end Xeon or AMD EPYC (12–16 cores, 3.0
GHz+)
• RAM:
o Small-scale: 8 GB RAM
o Medium-scale: 16 GB to 32 GB RAM
o Large-scale: 64 GB+ RAM
• Storage (Hard Disk):
o Small-scale: 500 GB SSD or 1 TB HDD (for testing and low traffic)
o Medium-scale: 2 TB SSD / RAID Array for redundancy and faster I/O
o Large-scale: 5 TB+ SSD or Enterprise-class RAID for high availability and data
protection
• Network:
o Gigabit Ethernet (1 Gbps) for regular traffic
o 10 Gbps network cards and switches for larger systems or systems with heavy
transaction loads.
• Backup:
o Backup storage (e.g., external HDD or Cloud backup services) for data
protection and disaster recovery.
B. Workstations/Client Devices
• For Development & Testing:
o Processor: Intel i5 / i7 or equivalent
o RAM: 8 GB to 16 GB
o Storage: 250 GB SSD (minimum)
o Display: Full HD (1920x1080) or better
o OS: Windows 10/11 or Linux (Ubuntu, CentOS, etc.)
32
• For Client Access (End users, bank staff, admins):
o Devices with standard internet connectivity, such as desktops, laptops, or
terminals.
o OS: Windows, macOS, or Linux (depending on organizational standards).
2. Software Requirements
A Bank Management System developed in C++ typically uses various software tools, libraries,
and frameworks to ensure smooth functioning, security, and scalability. Here's a breakdown of
the core software requirements:
A. Development Environment
• Programming Language: C++ (with libraries like STL, Boost, OpenSSL for security,
etc.)
• Integrated Development Environment (IDE):
o Visual Studio (for Windows-based systems)
o CLion, Eclipse CDT, or Code::Blocks (cross-platform options)
o GCC (GNU Compiler Collection) for Linux development.
• Version Control:
o Git (for source code management)
o GitHub / GitLab / Bitbucket (for repository hosting and collaboration)
• Build Tools:
o CMake (build automation tool)
o Make or Ninja (for compiling and managing builds)
E. Operating System
• For Development:
o Windows 10/11 (for C++ development in Visual Studio)
o Linux (for server-side deployment and development using GCC)
o macOS (for macOS-specific applications or cross-platform development)
• For Server-side Deployment:
o Linux (Ubuntu, CentOS, RedHat) – most used for server deployment due to its
stability, security, and cost-effectiveness.
o Windows Server (for enterprise environments that prefer Microsoft-based
solutions)
F. Security Software
• Antivirus / Anti-malware Software: Essential for protecting the development and
production environments.
• Firewall: Ensuring secure access to databases and applications.
• SSL Certificates: For encrypting sensitive data during transmission (e.g., HTTPS).
• Encryption Software: Tools for securing sensitive information, especially for financial
transactions.
35
e. #include <conio.h>
• Usage: This header is specific to DOS/Windows-based environments and provides
functions like getch(), clrscr(), gotoxy(), etc.
• Front-End Use:
o getch() is often used for capturing a single character input, useful for password
entry where characters are not displayed on the screen.
o clrscr() can be used to clear the screen, which is useful for refreshing the
console UI after each operation.
o gotoxy() can be used for cursor positioning, allowing better control over where
text appears in the terminal.
f. #include <ctime>
• Usage: Provides functions for date and time handling.
• Front-End Use:
o Useful for recording timestamps for transactions (e.g., when a deposit or
withdrawal occurs).
o Displaying current date/time on the user interface (e.g., showing the last login
time, or time of transaction).
g. #include <stdlib.h>
• Usage: Provides functions for memory allocation, random number generation, process
control, and conversions.
• Front-End Use:
o Functions like system("cls") (to clear the screen) and exit() (to terminate the
program) can be used.
o Random number generation (rand()) can be used for generating random account
numbers or PINs.
h. #include <bits/stdc++.h>
• Usage: This is a common catch-all header that includes most of the C++ Standard
Library headers. It's often used in competitive programming or projects where multiple
libraries are required.
• Front-End Use:
o It can be useful if your system needs various C++ Standard Library functions,
such as data structures (e.g., vectors, maps), input/output functions, etc.
o May also include functionalities for advanced string manipulations, file
handling, and more.
36
• File Handling: The account information is saved in a file (accounts.txt), making it
persistent across application rest
Draw context
Diagram
Draw
Prototypes
Model the
Requirement
Finalize the
Requirement
37
1. Draw Context Diagrams
The context diagram is a simple model that defines the boundaries and interfaces of the
proposed system with the external world. It identifies the entities outside the proposed system
that interact with the system
2. Development of Prototype
One effective way to find out what the customer really wants is to construct a prototype,
something that looks and preferably acts like a part of the system they want.
38
CHAPTER 4
FUNCTIONAL REQUIREMENTS
A Bank Management System (BMS) is designed to handle essential banking operations such
as account creation, deposits, withdrawals, transaction history, and other banking
functionalities. These operations ensure that both customers and bank staff can perform
necessary tasks in a secure, efficient, and user-friendly manner.
Below are the functional requirements for a Bank Management System developed in C++.
3. Transaction Management
• Deposit Funds:
o Customers should be able to deposit money into their accounts.
o The system should update the account balance accordingly and provide a
receipt of the deposit.
o The transaction should be logged with the date and time of the deposit.
• Withdraw Funds:
o Customers should be able to withdraw money from their accounts.
o The system should check if the balance is sufficient for the requested
withdrawal and prevent overdrafts.
39
o The transaction should be logged, and a receipt should be provided.
• Transfer Funds:
o Customers should be able to transfer funds between their own accounts or to
other customers' accounts within the same bank.
o The system should verify the account numbers and balance before processing
the transfer.
o A transaction receipt should be generated.
4. Transaction History
• View Transaction History:
o Customers should be able to view their transaction history, including deposits,
withdrawals, and transfers.
o The history should show details such as transaction ID, date, amount, and
balance after transaction.
o Bank staff should also be able to view transaction histories for individual
customers as part of account management.
40
• Secure File Handling:
o When using files to store account and transaction data, ensure that files are
protected from unauthorized access. Sensitive data should be securely stored and
properly validated before use.
41
1. Performance Requirements
• Response Time:
o The system should respond to user input within 2-3 seconds for typical
operations such as login, account balance inquiry, and transaction processing.
o For complex tasks like generating transaction history reports, the system should
respond within 5-10 seconds depending on the volume of data.
• Throughput:
o The system should be capable of handling multiple transactions simultaneously,
with the ability to handle at least 50 transactions per second for moderate-scale
usage.
• Transaction Processing Time:
o For deposit, withdrawal, or fund transfer operations, the system should process
the transaction and update the database (or files) within 1 second.
2. Reliability Requirements
• System Availability:
o The system should be available and operational at least 99.9% of the time, with
minimal downtime for maintenance.
o The system should allow for scheduled backups to ensure data safety without
significant disruption to normal operations.
• Error Handling and Fault Tolerance:
o The system should gracefully handle input errors (e.g., invalid account number,
insufficient balance) and show clear, understandable error messages to the user.
o The system should not crash or cause data corruption in case of errors, such as
invalid input or transaction failures.
• Backup and Recovery:
o The system should have the capability to perform regular backups of account
data, and it should ensure that the data can be recovered in case of a system
failure (e.g., from backups or logs).
3. Security Requirements
• Data Encryption:
o All sensitive data, such as account details, passwords, and transaction history,
should be encrypted when stored or transmitted to protect against unauthorized
access.
o Passwords should be hashed and salted before storing them in files or databases
to prevent exposure of user credentials.
• Authentication and Authorization:
o Only authorized users (bank customers and staff) should be allowed to access
specific features based on their role. Customers should only access their own
account details, while bank staff should have broader access for account
management.
o The system should implement multi-level authentication for staff access, such
as login credentials combined with security codes for admin roles.
• Session Management:
o Sessions should automatically expire after a period of inactivity (e.g., 15
minutes), requiring the user to log in again to prevent unauthorized access.
o Users should be logged out securely when they choose to exit the system.
42
• Audit Trails and Logging:
o The system should maintain an audit trail for all user actions, including login
attempts, transactions, account modifications, etc. This log helps track and
review actions for security and compliance purposes.
4. Usability Requirements
• User Interface (UI) Design:
o The user interface (console-based in this case) should be simple, intuitive, and
easy to navigate.
o Clear prompts should be provided for each user action (e.g., "Enter your account
number", "Deposit amount").
o Error messages should be concise and provide suggestions for correction (e.g.,
"Invalid account number. Please try again.").
• Documentation:
o Comprehensive user documentation should be provided to help users understand
how to interact with the system, including how to create an account, deposit
funds, check balances, and manage transactions.
o Admin users should have separate documentation for managing system
operations, reports, and account issues.
• User Training:
o The system should include help screens or guides for new users (bank staff and
customers) to assist in their initial interactions with the system.
5. Scalability Requirements
• Data Storage Scalability:
o The system should be designed in a way that it can handle a growing number of
customers and accounts. As the number of users increases, the system should be
able to handle larger data files or move to a more scalable database solution if
needed.
• Performance under Load:
o As the user base grows, the system should be able to handle increased
transaction volume without significant degradation in response time.
o The system should be able to scale to hundreds or thousands of accounts and
handle increased transaction frequencies.
8. Compliance Requirements
• Regulatory Compliance:
o The system must comply with local financial regulations, such as maintaining
user privacy, storing personal data securely, and ensuring that all banking
transactions are properly recorded and auditable.
o If applicable, the system should comply with data protection laws (e.g., GDPR
for EU-based systems, CCPA for California-based systems) for storing personal
information and user data.
• Transaction Logging:
o The system should keep detailed logs of all transactions, including the time of
occurrence, user ID, amount, and account involved. These logs may be used for
auditing and dispute resolution.
44
the desired functionality. In this case, since we are discussing a console-based C++
application, the system design focuses on the structure of the application, how components
interact with each other, and how data is stored and managed.
1. High-Level Architecture
The Bank Management System is designed using a modular architecture. Each module
focuses on a specific functionality, and modules communicate with each other as needed.
Key Components of the System:
• User Interface (UI): Handles user input and displays results.
• Account Management: Handles operations like creating accounts, viewing account
details, and updating account information.
• Transaction Management: Manages deposits, withdrawals, transfers, and transaction
history.
• Data Storage: Stores account and transaction data persistently, usually in text files or
binary files.
• Security: Ensures authentication, authorization, and secure handling of data (passwords,
transaction details).
• Logging and Audit: Logs user actions and maintains an audit trail for security and
troubleshooting.
The architecture is client-server-like, where users (clients) interact with the system through the
UI, and the system (server) processes the data and communicates with the storage layer.
2. Functional Components
The system can be broken down into the following functional components:
D. Security Module
• Description: Ensures the security of user data and access control.
• Responsibilities:
o Handle user login with username/password (authentication).
o Encrypt sensitive data such as passwords.
o Ensure users only have access to their own accounts.
o Log out users after a timeout or manual logout.
• Tools Used:
o Password Handling: Use basic string manipulation and encryption
techniques (e.g., hashing passwords using std::hash).
o Access Control: Define roles (customer, bank staff) and restrict access to
certain features based on roles.
o File I/O: For storing user credentials (securely, using hashing or simple
encryption).
4. Data Models
A. Account Data Model
Each account will have the following attributes:
• Accounts are stored in a text file or binary file, with each account's data on a
new line.
B. Transaction Data Model
Each transaction will be recorded with:
• Transactions are stored in a separate file (transactions.txt).
47
these data, and the output data generated by the system. The main reason why the DFD
technique is so popular is probably because DFD is a very simple formalism-it is simple to
understand and use. A DFD uses a very limited number of primitive symbols to represent the
functions performed by a system and the data flow among these functions. Starting with a set
of high-level functions that a system performs, a DFD model hierarchically represents various
sub functions
48
2. Bank Staff / Administrator
Description:
• A bank staff member (or administrator) manages customer accounts, performs
administrative tasks, and supervises daily operations. This role has more privileges than
a customer.
Key Characteristics:
• Role: Bank staff, typically employees such as clerks or administrators responsible for
handling customer accounts and supervising transactions.
• Access Rights:
o Full Account Access: Bank staff can view and modify all customer accounts
(e.g., change account details, deactivate accounts).
o Transaction Oversight: Bank staff can view transaction history for all customers
and can perform administrative transactions like modifying account balances.
o Add/Remove Users: Can create new accounts for customers and remove or
suspend accounts in case of fraud or other issues.
o Generate Reports: Can generate transaction and account-related reports for
internal auditing or customer inquiries.
Expected Behaviour:
• Bank staff will typically:
o Log in using a secure staff account with administrative privileges.
o Access and modify customer accounts, such as changing account details or
performing administrative actions.
o Handle customer inquiries related to account balance, transaction status, etc.
o Administer system configurations or user account settings.
o Manage and update the system logs for auditing purposes.
System Interaction:
• User Interface:
o Bank staff will interact with the system through a more comprehensive admin
interface that allows access to all customers’ data and administrative
functionalities.
o The interface might include additional menus for handling customer account
management, reporting, and other administrative functions.
• Authentication:
o Bank staff will have more robust authentication mechanisms, such as multi-
factor authentication (e.g., username/password and a one-time passcode) to
ensure secure access to sensitive operations.
• Error Handling:
o The system should alert the bank staff to issues that need administrative
attention, such as potential fraud alerts, or insufficient permissions for a certain
operation.
49
• Access Rights:
o Complete Access: Has full access to the entire system, including user
management, system configurations, security settings, and data backups.
o Security and Privacy: Responsible for ensuring data privacy, implementing
encryption, and auditing user activities.
o Backup Management: Manages backups of the system, ensuring data is regularly
backed up and can be restored in the event of a failure.
o System Monitoring: Monitors the health of the system and ensures that it is
operating as expected without disruptions.
Expected Behaviour:
• The system administrator will:
o Configure the system and assign roles to users (such as customers and bank
staff).
o Perform regular security checks (e.g., ensure passwords are hashed, encryption
is active).
o Monitor system logs for errors, unauthorized access, and potential security
threats.
o Manage system updates and patches.
System Interaction:
• User Interface:
o The system administrator interacts with a specialized interface (e.g., command-
line or management console) for configuring the system and managing user roles
and security settings.
o The administrator interface may have features to reset user passwords, configure
access control lists (ACLs), and perform other administrative tasks.
• Authentication:
o The system administrator will authenticate with the most secure access method
available, likely involving multiple layers of security (e.g., encrypted passwords,
two-factor authentication).
• Error Handling:
o The system should generate alerts in case of security breaches, unauthorized
access attempts, or system failures.
52
CHAPTER 5
53
Figure 5.3: Account Management Menu
54
CHAPTER 6
Conclusion
The Bank Management System (BMS) developed in C++ aims to provide an efficient, reliable,
and secure solution for managing customer accounts, transactions, and administrative functions
in a banking environment. The system successfully implements key functionalities such as:
• Account Management: Allows customers to create, view, and modify their accounts. It
provides the flexibility to manage account details such as balance and account type.
• Transaction Handling: Facilitates transactions like deposits, withdrawals, and transfers,
with proper validation to ensure secure and accurate operations.
• Security: The system incorporates basic security mechanisms, including user
authentication (login using username/password), to protect sensitive data and ensure
that only authorized users can perform certain actions.
• Data Storage: Implements persistent storage using file handling (e.g., text files) to store
account details, transaction history, and logs, ensuring data is retained even after the
system is shut down.
• User Interface: A simple and intuitive text-based menu system, which allows both bank
customers and bank staff to interact with the system easily.
The project has met the initial goals of creating a functional, console-based application that
manages various aspects of banking. It can perform essential banking operations, ensuring data
integrity, and providing a secure environment for users.
Future Scope
While the current Bank Management System serves its basic purpose, there are several areas
where the system can be enhanced and expanded in the future. Below are some potential
improvements and future scope of this project:
1. Integration with Database Management System (DBMS)
• Current Limitation: The system uses text files for storing data, which can be inefficient
and prone to data corruption in case of system crashes.
• Future Scope: Transitioning the storage system from text files to a robust Database
Management System (DBMS) like MySQL, SQLite, or PostgreSQL would allow better
data management, data integrity, and more complex queries. A relational database would
enable scalable data storage, facilitate complex reporting, and provide greater flexibility
for future expansion.
2. Graphical User Interface (GUI)
• Current Limitation: The current system is a console-based application, which may not
be as user-friendly or visually appealing as a modern GUI-based application.
• Future Scope: Implementing a Graphical User Interface (GUI) using frameworks such
as Qt or wxWidgets in C++ would enhance the user experience. A GUI would make it
easier for users to navigate through the system, visually monitor account balances and
transaction history, and perform actions using buttons, forms, and interactive elements.
3. Multi-User and Multi-Session Support
• Current Limitation: The current system does not support concurrent access by multiple
users or handle multiple sessions at the same time.
55
• Future Scope: Implementing multi-threading or networking functionality could allow
multiple users to interact with the system simultaneously. A server-client model could
be implemented to allow a multi-user environment where different customers and bank
staff members can access the system at the same time without interfering with each
other’s sessions.
4. Mobile Application Integration
• Current Limitation: The system is designed for desktop usage and is not optimized for
mobile devices.
• Future Scope: With the increasing reliance on mobile devices for banking, the system
could be extended into a mobile banking app. Developing a mobile application for
Android or iOS using cross-platform tools such as Flutter or React Native could provide
greater accessibility to customers. This would allow users to access their accounts,
check balances, and perform transactions on-the-go.
5. Advanced Security Features
• Current Limitation: The current system implements basic security measures like
password authentication but lacks advanced security features.
• Future Scope: To enhance security, the system could integrate two-factor authentication
(2FA), data encryption for sensitive information (e.g., account balances, transaction
data), and role-based access control (RBAC) for more granular security measures.
Biometric authentication (e.g., fingerprint or face recognition) could be added to
improve the security of the system.
6. Reporting and Analytics
• Current Limitation: The system does not currently offer advanced reporting or analytics
features.
• Future Scope: Incorporating reporting and analytics features would allow bank staff and
administrators to generate reports on customer activity, transaction trends, and system
usage. Features such as transaction summaries, account statistics, and audit logs would
provide valuable insights for decision-making and system optimization.
7. Integration with Real-time Payment Systems
• Current Limitation: The system currently only supports basic local transactions within
the bank (e.g., deposits and withdrawals) and does not support real-time transactions or
integration with external payment systems.
• Future Scope: Integrating the BMS with real-time payment systems (e.g., UPI, NEFT,
RTGS) or digital wallet services (e.g., Paytm, Google Pay) could allow users to perform
external transactions, pay bills, and transfer money between different banks and
payment services in real-time.
8. Support for Multiple Currencies
• Current Limitation: The current system is designed for a single currency (presumably
INR).
• Future Scope: The system could be enhanced to support multiple currencies, allowing
users to manage accounts in different currencies and perform cross-currency
transactions. This could be especially useful in banks that deal with international clients
or multiple regions.
9. Artificial Intelligence (AI) and Chatbot Integration
• Current Limitation: The system currently lacks advanced AI features.
• Future Scope: AI can be integrated to provide automated customer support via a chatbot.
The chatbot could assist with basic banking queries, guide customers through
transaction processes, and answer common questions. Additionally, AI could be used to
detect fraudulent activities by analyzing transaction patterns and alerting the bank staff.
10. Cloud Deployment
56
• Current Limitation: The system is currently designed to run on a local machine or
desktop environment.
• Future Scope: Migrating the system to the cloud (e.g., AWS, Azure) would make it
easier to scale, access remotely, and provide more robust backup and disaster recovery
features. Cloud deployment would also ensure better performance and availability.
57
REFERENCES
Web References Date Accessed
• https://www.cplusplus.com/reference/ 1.10.24
• https://www.geeksforgeeks.org/file-handling-c-classes/ 1.10.24
• https://www.tutorialspoint.com/cplusplus/index.htm 2.10.24
• https://owasp.org/ 2.10.24
• https://www.geeksforgeeks.org/cryptography-in-cpp/ 2.10.24
• https://dev.mysql.com/doc/ 6.10.24
• https://www.sqlite.org/docs.html 6.10.24
• https://www.geeksforgeeks.org/c-plus-plus/ 8.10.24
• https://stackoverflow.com/questions/tagged/c%2b%2b 8.10.24
• https://medium.com/tag/software-engineering 9.10.24
• https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm 9.10.24
58