Shreelekha1 Project(Final)
Shreelekha1 Project(Final)
Submitted by
SHREELEKHA DHALI
INDEX
S.NO TOPIC PAGE NO.
1 INTRODUCTION 7- 10
5 TESTING 30- 34
7 BIBLIOGRAPHY 36
PROJECT ABSTRACT
The ATM System is the project which is used to access
their bank accounts in order to make cash withdrawals.
Whenever the user needs to make cash withdraws, they
can enter their PIN number (personal identification
number) and it will display the amount to be withdrawn
in the form of 50's, 100's and 500's. Once their withdrawn
was successful, the amount will be debited in their
account. The ATM System is developed in python. Python
and back-end database as SQL. Python is the one of the
powerful versions of Framework and object -oriented
programming. Hence, we use this software in our project.
The ATM will service one customer at a time. A customer
will be required to enter ATM Card number, personal
identification number (PIN)-both of which will be sent to
the database for validation as part of each transaction.
Thecustomer will then be able to perform one or more
transactions. Also, customer must be able to make a
balance inquiry of any account linked to the card. The
ATM will communicate eachtransaction to the database
and obtain verification that it was allowed by the
database. In the case of a cash withdrawal, a second
message will be sent after the transaction has
been physically completed (cash dispensed or envelope
accepted). If the database determines that the customer's
PIN is invalid, the customer will be required to re-enter
the PIN before atransaction can proceed. If a transaction
fails for any reason other than an invalid PIN, the ATM will
display an explanation of the problem, and will then ask
the customer whether he/ she wants to do another
transaction. The ATM will provide the customer with a
printed receipt for each successful transaction, showing
the date, time, machine location, type of transaction,
account (s), amount, and ending and available balance (s)
of the affected account "to" account for transfers.
The ATM system also includes an administrative
interface for bank staff to perform maintenance tasks
like adding new users, resetting passwords, and
monitoring transaction logs.
Overall, this ATM system project serves as both a
learning tool for understanding key concepts in
software development and database management, as
well as a model for creating real-world banking
solutions.
▪ Introduction:
Automated Teller Machine enables the clients of a
bank to have access to their account without going to
the bank. This is achieved only by development the
application using online concepts. When the product
is implemented, the user who uses this product will
be able to see all the information and services
provided by the ATM, when he enters the necessary
option and arguments. The product also provides
services like request for cheques, deposit cash and
other advanced requirement of the user. The data is
stored in the database and is retrieved whenever
necessary. The implementation needs ATM machine
hardware to operate or similar simulated conditions
can also be used to successfully use the developed
product. To develop this ATM system the entire
operation has been divided into the following step:
1. verification process
2. language, service and account selection
3. Banking services
4. Transactions
5. Special services
The program is designed in such a way that the user
has to card and pin number. Once verified, he is
provided a menu and he/ she had to enter the option
provided in the menu. For example, when the user
wants to view the list of payment history than he/ she
had to enter the option for payment history provided
in the main menu. When the option is entered alone
with the respective argument, then the payment
history is displayed on the screen. The user also must
be given option to browse through the pages like
previous page, next page, etc. The user may
experience a delay in retrieving or viewing the data,
when there are many users logged on to the same
bank branch system.
1.4. Scope:
It can be implemented in ATM machine by owner of
bank or in charge of branch. It is easy to learn the task.
1.5. Objectives:
Our main objective is to speed up the transactions done
by customers. No manual transactions needed
generally. The second objective is to save the time
which is very important now-a-days. It will include other
objectives such as; To render accurate services to
customer. The reduction of fraudulent activities. To
achieve speedy processing of customer data. To reduce
error processing, the guarantee of increase security.
▪ System Analysis:
2.1. Study of current/ Existing system:
In the manual system, firstly the bank manager and its
staff have to manage information regarding the
accounts and transaction of all the customers manually.
Doing this manual transaction was really tedious job.
Secondly information regarding accounts and
transactions of customers were to be maintained. This
process is time consuming and it requires a great
manual effort. Disadvantages: More time is consumed.
More hard work to maintain all records. Bulk of paper is
to be searched for a single search. While existing ATM
systems provide essential services for customers, they
also present a number of challenges related to security,
accessibility, functionality, and maintenance. To
understand the functionality and limitations of current
10
ATM systems, the study focuses on their architecture,
features, and challenges.
11
economic feasibility of deploying an ATM system
depends on various factors such as initial setup costs,
ongoing maintenance, transaction volume, and revenue
generation from transaction fees.
12
❖ SOFTWARE DEVELOPMENT
LIFE CYCLE (SDLC)
• Purpose
o Lead to good software
o Reduce risk
o Enable visibility and measurement
o Enable teaming
• Key attributes
o Outcomes/results of processes are key
deliverables or products
o Roles are clear
o Pre and post conditions are understood and
held true.
13
6. Evolution/Maintenance
The Software Development Life Cycle (SDLC) is a
structured approach to software development,
consisting of several key phases. These phases ensure
that the development process is systematic, efficient,
and results in a high-quality product.
14
❖ Stages(phases) of System
Development Life Cycle:
1. Planning:
This phase involves defining the project scope,
objectives, and requirements. It includes gathering
information from stakeholders, conducting feasibility
studies, and creating a project plan. The goal is to
establish a clear understanding of what needs to be built
and how it will be accomplished.
2. Analysis:
During this phase, the requirements gathered in the
planning phase are analysed in detail. This involves
identifying and documenting user needs, functional
requirements, and system specifications. It may also
include assessing risks and constraints that could impact
the project.
3. Design:
In this phase, the system architecture and design are
developed based on the requirements and analysis. This
includes designing the user interface, database
15
structure, software components, and other system
elements. The design phase often produces detailed
technical specifications that guide the implementation
process.
4. Implementation:
Also known as the development phase, this is where the
actual system is built according to the design
specifications. Programmers write code, developers
integrate components, and system configurations are
implemented. Testing is typically performed throughout
this phase to identify and fix defects early.
5. Testing:
In this phase, the system is rigorously tested to ensure
that it meets the specified requirements and performs
as expected. This includes functional testing to verify
that all features work correctly, as well as non-
functional testing to assess performance, security, and
reliability. Testing may involve different techniques such
as unit testing, integration testing, system testing, and
user acceptance testing. Objective: Ensure that the
developed software is free of defects and meets the
requirements specified in the first phase.
16
6. Deployment:
Once the system has been thoroughly tested and
approved, it is deployed to the production environment.
This involves installing the software, configuring the
system, and migrating data from old systems if
necessary. Deployment may also include user training
and documentation to support the transition to the new
system.
7. Maintenance:
After the system is deployed, it enters the maintenance
phase where it is monitored, updated, and maintained
over time. This includes fixing bugs, implementing
enhancements, and addressing any issues that arise in
production. Maintenance may also involve supporting
users, troubleshooting problems, and optimizing
performance. Effective maintenance is crucial for
ensuring the reliability, security, and efficiency of ATM
systems. A robust maintenance strategy that combines
preventive, corrective, adaptive, and perfective
maintenance will help banks reduce downtime, improve
customer satisfaction, and protect against security
breaches.
17
FLOWCHART
18
PROGRAMMING CODE
#in sql
CREATE DATABASE atm_db;
USE atm_db;
19
CODE#
import mysql.connector
# Display menu
def display_menu():
print("\nATM Machine")
print("1. Check Balance")
20
print("2. Withdraw Money")
print("3. Deposit Money")
print("4. Exit")
# Withdraw money
21
from decimal import Decimal #convert code to decimal
22
print(f"Withdrawal successful! New balance:
${new_balance:.2f}")
else:
print("Account not found.")
except ValueError:
print("Invalid input. Please enter a valid number.")
except Exception as e:
print(f"Error: {e}")
# Deposit money
from decimal import Decimal #convert input to
decimal
23
if result:
balance = result[0]
new_balance = balance + amount
cursor.execute("UPDATE accounts SET balance =
%s WHERE account_id = %s", (new_balance,
account_id))
db.commit()
print(f"Deposit successful! New balance:
${new_balance:.2f}")
else:
print("Account not found.")
except ValueError:
print("Invalid input. Please enter a valid number.")
except Exception as e:
print(f"Error: {e}")
if user:
print(f"Welcome, {user[1]}!") # Assuming
user[1] contains the account holder's name
while True:
display_menu()
25
try:
choice = int(input("Choose an option: "))
if choice == 1:
check_balance(cursor, account_id)
elif choice == 2:
withdraw_money(cursor, db,
account_id)
elif choice == 3:
deposit_money(cursor, db, account_id)
elif choice == 4:
print("Thank you for using the ATM.
Goodbye!")
break
else:
print("Invalid choice. Please try again.")
except ValueError:
print("Invalid input. Please select a valid
option.")
break
else:
26
print("Invalid Account ID or PIN. Please try
again.")
except ValueError:
print("Invalid input. Please enter numeric values
for Account ID and PIN.")
else:
print("Too many failed attempts. Access denied.")
cursor.close()
db.close()
27
OUTPUT
28
29
TESTING
Testing for an ATM machine project involves multiple
phases to ensure that the system operates accurately,
securely, and efficiently. Below are the key areas and
steps to include in your testing strategy:
1. Functional Testing
Ensure all core functionalities work as expected.
• Authentication:
o Test card insertion and reading.
o Validate PIN input (correct, incorrect, and
blocked cases).
o Check for card timeout and retrieval
functionality.
• Transactions:
o Cash withdrawal (valid amounts, exceeding
limits, and insufficient funds).
o Balance inquiry.
o Mini-statement generation.
o Fund transfers.
o Account deposits (if supported).
30
• Error Handling:
o Invalid card detection.
o PIN retries exceeding the limit.
o ATM out-of-cash scenarios.
o Transaction cancellation.
2. Security Testing
Protect sensitive user and transaction data.
• Encryption:
o Verify end-to-end encryption of PINs and
transaction data.
• Authentication:
o Test multi-factor authentication if
implemented.
• Card Skimming:
o Test detection/prevention mechanisms for
tampered hardware.
• Unauthorized Access:
o Ensure unauthorized users cannot access
admin or maintenance panels.
31
3. Performance Testing
Assess the ATM's performance under varying
conditions.
• Load Testing:
o Simulate multiple concurrent transactions.
• Stress Testing:
o Test system behaviour under extreme
conditions (e.g., high transaction volume).
• Response Time:
o Measure time taken for each transaction type.
4. Usability Testing
Ensure the ATM interface is user-friendly and
accessible.
• Test screen readability in different lighting
conditions.
• Validate menu navigation and prompt clarity.
• Ensure multilingual support works correctly.
• Verify accessibility features (e.g., voice prompts for
visually impaired users).
32
5. Compatibility Testing
Ensure compatibility with different hardware and
networks.
• Card Types:
o Test with various card formats (magstripe,
chip, contactless).
• Bank Networks:
o Validate transactions with multiple banks and
interbank systems.
6. Reliability Testing
Ensure system uptime and stability.
• Test ATM behaviour during power failures.
• Validate recovery processes after power
restoration or system reboot.
7. Integration Testing
Test integration with back-end systems.
• Validate connection to banking servers.
• Verify real-time transaction updates in customer
accounts.
• Test communication with network providers.
33
8. Regression Testing
Ensure that new updates or fixes do not break existing
functionalities.
9. Compliance Testing
Ensure adherence to industry standards and
regulations, such as PCI DSS for card security.
10. Real-world Scenario Testing
Simulate real-world use cases to identify unexpected
issues.
• Large queues and high usage during peak times.
• Handling of counterfeit or damaged cards.
• Handling of foreign cards and currencies (if
supported).
34
MINIMUM HARDWARE AND
SOFTWARE DEVELOPMENT
❖ HARDWARE REQUIREMENT:
1. Central Processing Unit (CPU): Intel Core i5/i7,
AMD Ryzen 5/7.
2. Motherboard: intel core i5 H55 chipset
motherboard+4GB DDR3 RAM, 1333 MHz
3. Memory (RAM): DDR4/DDR5 modules, 8GB,
16GB, or more.
4. Monitor:14.1 or 15-17 inches
5. Keyboard and Mouse
6. Networking Hardware: Wi-Fi Cards/Adapters,
Ethernet Cables
7. Cables and Connectors: SATA cables, power
connectors, HDMI/DisplayPort.
❖ SOFTWARE REQUIREMENTS:
1. Python
2. MySǪL
35
BIBLOGRAPHY
WEBSITES:
• www.youtube.com
• www.google.com
• Pinterest
• GreeksforGreeks
BOOKS:
36