ATM Simulator System
ATM Simulator System
Dr. USHA J
Professor
Department of Master of Computer Applications
RV College of Engineering®
Bengaluru – 560059
January 2022
RV COLLEGE OF ENGINEERING®
(Autonomous Institution Affiliated to Visvesvaraya Technological University, Belagavi)
DEPARTMENT OF
MASTER OF COMPUTER APPLICATIONS
Bengaluru– 560059
CERTIFICATE
This is to certify that the project entitled “ATM SIMULATOR SYSTEM” submitted in
partial fulfillment of Minor Project (20MCA36) of III Semester MCA is a result of the
bonafide work carried out by ANKITH KUMAR S K (1RV20MC004) and VINAY
KUMAR H R ( 1RV20MC110) during the Academic year 2021-22
1
RV COLLEGE OF ENGINEERING®
(Autonomous Institution Affiliated to Visvesvaraya Technological University, Belagavi)
DEPARTMENT OF
MASTER OF COMPUTER APPLICATIONS
Bengaluru– 560059
DECLARATION
ANKITH KUMAR S K
USN: 1RV20MC004
VINAY KUMAR H R
USN: 1RV20MC110
4
ACKNOWLEDGEMENT
This Project report was completed as a result of support from many people, although not all of
them can be mentioned.
We wish to express our sincere gratitude to God for his protection, providence, guidance and
above all, for sustaining us.
Our heart full thanks to Dr. K N Subramanya, Principal for giving us the accessory
environment to acquire knowledge and skill.
Our sincere and warmest thanks to Dr. Andhe Dharani, Director for her valuable andinspiring
guidance and encouragement given throughout the period of this project.
We are greatly indebted to our good guide Dr. Usha J for her useful and necessary
observation, suggestions, contribution, and corrections. We would not have been able to
achieve anything in this research without your supervision. May God enrich you greatly in
every area of life.
We would also like to thank Dr. K S Jasmine, Prof. Chandrani Chakravorty who have
given their valuable guidance in clearing this project.
Finally, we wish to express our appreciation to our parents for their love and support.
4
ABSTRACT
The "ATM Simulator System" project is a model Internet Banking St. This site
enables the customers to perform the basic banking transactions by sitting at their
office or at homes through PC or laptop. The system provides the access to the
customer to create an account, deposit/withdraw the cash from his account, also
to view reports of all accounts present. The customers can access the banks
website for viewing their Account details and perform the transactions on account
as per their requirements. With Internet Banking, the brick-and-mortar structure
of the traditional banking gets converted into a click and portal model, thereby
giving a concept of virtual banking a real shape. To develop a project for solving
financial applications of a customer in banking environment to nurture the needs
of an end banking user by providing various ways to perform banking tasks. Also,
to enable the user’s workspace to have additional functionalities which are not
provided under a conventional banking project. This project has been developed
to carry out the processes easily and quickly, which is not possiblewith the manuals
systems, which are overcome by this software.
It is a Java application in which Eclipse will be used as an IDE Java will be used
for the coding purpose and Java Swings for the user interface design. The database
connectivity will be done using MySQL Database. It will mainly contain three
modules: Customer Authentication, Customer Registration, Functions of ATM.
The User will be able to access and modify all the aspects of the application.
The outcome of the project will be a Java application which will enable the user
can access their account and can deposit withdraw money from their account. And
also, able to create an account with valid user credentials. User can see their
transaction report and balance enquiry too.
4
ATM SIMULATOR SYSTEM January 2022
Table of Contents
Contents Page No
College Certificate 1
Undertaking by student 2
Acknowledgement 3
Abstract 4
Table of Contents 5
List of Figures 6
List of Tables 7
Chapter 1: Introduction 8
1.1 Project Description
Chapter 2: Literature Review 10
2.1 Literature Survey
2.2 Existing and Proposed System
2.3 Tools and Technologies used
2.4 Hardware and Software Requirements
Chapter 3: Software Requirement Specifications 18
3.1 Introduction
3.2 General Description
3.3 Functional Requirement
3.4 Non-Functional Requirements
Chapter 4: System Design 23
4.1 System Perspective /Architectural Design
4.2 Context Diagram
Chapter 5: Detailed Design 25
5.1 System Design
5.2 Detailed design
Chapter 6 Implementation 32
6.1 Code Snippets / PDL
6.2 Implementation
Chapter 7: Software Testing 70
7.1 Test cases
7.2 Testing and Validations
Chapter 8: Conclusion 80
Chapter 9: Future Enhancements 81
Bibliography 82
List of Figures
Figure No Figure Label Page No
5.7 ER Diagram 31
List of Tables
Chapter 1
Introduction
1.1-Project Description:
ATMs or Automated Teller machines are something that everybody is aware of these days.
ATMs are useful equipment that we all use to get cash from banks. They save us from waiting
in long queues in banks for withdrawing cash from our bank accounts
The Traditional way of maintaining details of a user in a bank was to enter the details and
record them. Every time the user needs to perform some transactions he has to go to bank and
perform the necessary actions, which may not be so feasible all the time. It may be a hard-
hitting task for the users and the bankers too. System project captures activities performed by
different roles in real life banking which provides enhanced techniques for maintaining the
required information up to date, which results in efficiency.
ATM Simulator System enables the clients or customer of a bank to have access to their account
without going to the bank. This is achieved only by development the applicationusing 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/she enters the necessary option and
arguments. The product also provides services like creation of account, 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 tooperate,
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:
2. Customer Satisfaction: Client can do his operations comfortably without any risk or losing
of his privacy. Our software will perform and fulfill all the tasks that any customerwould desire.
3. Saving Customer Time: Client doesn't need to go to the bank to do small operation.
4. Protecting the Customer: It helps the customer to be satisfied and comfortable in his
choices, this protection contains customer’s account, money, and his privacy.
Customer has a card number and a Personal Identification Number (PIN). Both must be typed
into the simulation to gain access to the accounts or Customer can create account by valid
credential information. Then the customer can deposit and withdraw money and the balance
will be updated accordingly. The application terminates when the user selects exit rather than
an account. Since this is a simulation, the ATM does not actually communicate with the bank.
It simply loads a list of customer numbers and PINs from a data file. This data file is maintained
externally to this application. This application should interact with the user via a simple Swing
GUI.
Chapter 2
Literature Review
2.1-Literature Survey
This section depicts the current innovation and the accepted procedures previously being
consolidated in different journals and papers connected with the subject of ATM website. The
endeavor is like wise to give a concise introduction on advancements in technology being
utilized.
The first and significant distribution connected with the chosen project is created by Kamonwan
Taohai, Suphakant Phimoltares, Nagul Cooharojananone. The paper “Usability Comparisons
of Seven Main Functions for Automated Teller Machine (ATM) Banking Service of Five Banks
in Thailand”. Proposed in the 2010 International Conference on Computational Science and Its
Applications conference. The objective of this research was to compare the seven main
functions of ATM banking services. The services available at each bank are increasing to assist
users, and these services include internet payment, barcode payment, education service and loan
payments. This making our project to do many services with functionalities.
The following paper is composed by John Mylopoulos, Yiqiao Wang. The paper title is “Self-
Repair through Reconfiguration: A Requirements Engineering Approach”. Published in the
conference 2009 IEEE/ACM International Conference on Automated Software Engineering.
This paper was presented in the 2009 IEEE/ACM International Conference on Automated
The next paper is authored by Daw-Tung Lin, Ming-Ju Liu. The paper title is “Face Occlusion
Detection for Automated Teller Machine Surveillance”. published in 2016 in Advances in
Image and Video Technology Systems play an essential role in security management, as
evidenced by the surveillance cameras installed in nearly all automated teller machines. The
proposed detection system can achieve 100% and 96.15% accuracy for non-occlusive and
occlusive detection, respectively, at a speed of up to 20 frames per second.
The next distribution is composed Mengxing Zhang, Feng Wang, Hui Deng, Jibin Yin with an
title “A Survey on Human-Computer Interaction Technology for Financial Terminals” in the
year 2012. The publication is 2012 Fifth International Conference on Intelligent Networks and
Intelligent Systems. The user experience test and evaluation of the prototype are reviewed and
discussed in detail, and we find the defects and the improvement of the ATM design. In the end,
we propose some suggestions and discussion in future works. Here explained about somefuture
developments that can be accommodated in the project.
The next paper is authored by Iwasokun Gabriel Babatunde, Akinyokun Oluwole Charles, Munda
Josiah Lange, Dehinbo Johnson Olumuyiwa with a title named “Experimental study of
thumbprint-based authentication framework for ATM machines”. It is published in the
conference in 2014 Science and Information Conference. It included the concept of the
framework is an embodiment of different components for fingerprint processing which include
enrollment, database, and verification. Fingerprint enhancement, feature extraction and
matching sub-modules form the verification component. The matching sub-modules rely on
suitable mathematical models to function. It can be evolved in the future for higher automation
when included with software systems.
The next paper is authored by Sho Kurita, Kenji Komoriya, Ryuya Uda with title paper called
“Privacy Protection on Transfer System of Automated Teller Machine from Brute Force
Attack” Published in 2012 26th International Conference on Advanced Information
Networking and Applications Workshops. information is encrypted by common key crypto
system and stored in a QR code. If the peeping attack occurred, this information was protected
by using the QR code, also can be high-speed processing.
Yingxu (2010) studied the formal design model of the ATM system, the study included ATM
design specification using denotation mathematics known as Real Time Process Algebra
(RTPA). Using RTPA architectural modeling methodology, the architecture of the ATM system
was built and refined by some set of unified data models (UDMs) which share a generic
mathematical model of tuples, the static behavior of the ATM system is specified and refined
by a set of Unified Process Models (UPMs) for the system transition processing and some
supporting processes. Based on this ATM design model; formal design model, codes can be
generated automatically using Real Time Process Algebra Code Generator (RTPACG) or be
seamlessly transformed into programs by the programmer.
Heli (2006) discussed the ATM network market structure and cash usage; the aim was to
construct the ATM equation. The monopolization of ATM network market structure and its
effects on the number of ATMs and on cash in circulation were analyzed both theoretically and
empirically. The unique annual data set on 20 countries used in the estimations has been
combined from various data sources. The observation period is 1988–2003, but the data on
some countries are available only for a shorter period. Based on the studies theoretical
discussion, as well as the estimation results, monopolization of the ATM network market
structure is associated with a smaller number of ATMs.
Sultan (2009) carried out a study on the impact of ATM on customers’ satisfaction, the study
was comparatively done using three major banks in India. The study used a sample 360 of
respondents equally representing each bank obtained from questionnaire and interviews; it used
statistical tools to compile the results. The result shows that material satisfaction level depends
on the size of the respective bank and the number of years of its establishment.
The impact of adoption of ATM technology from the perspective of customers, banks and
suppliers. As per the changing demand of the customers, innovative software solutions are
regularly released. Similarly, banks are deploying CRM technology to facilitate personalized
needs of customers on one-to-one basis. Suppliers of ATMs are also under pressure to provide
ATMs to banks which can meet the latest customer needs.
To make the ATM System more automation and secured need to adopt the iris detection and
the biometric and QR code scan. In our project we deployed the service of creating the customer
account by himself in the ATM Simulating system software. Due to cost and time deficiency,
we are not able to adopt the future of ATMs like biometric, iris, QR code scan.
We are interested to show how the ATM will work with software application using java API,
by incorporating to give the service to create account in ATM Simulator System software only
with valid credentials.
Problem statement
ATM system has a drastic change to that of the older version of banking system, customer
feel inconvenient with the transaction method as it was in the hands of the bank employees.
When a client comes to ATM center to update and delete their account. It includes the time
consumption and lot of paperwork. For any single operation it involves numerous references
and updating also takes subsequent changes in other places.
The goal of this design is providing an interface which allows the controlling authority to
remotelyconfigure the system and to be accessible by a wide range of people. The interaction
provides direct manipulation and natural language interfaces. Input will be in the form of a
graphical user interface. Output will be from high resolution graphics, and printed forms. The
representation of information will be textual with iconic augmentation. Because of safety and
privacy concerns the system will be put in fixed locations inside enclosures which will limit the
interaction to one person at a time. The primary goal of developing such software is to develop
software so that consumer can access a bank’s computer and carry out their own financial
transactions without the mediation of a bank employee.
Scope of Project
The main purpose of the ATM division and information service is to provide the customers
financial flexibility, worldwide acceptance, and round-the clock convenience. The scope of the
ATM is to support a computerized banking network. All activities directly related to the purpose
are in scope. The other activities not directly related to the purposes are out of scope, such ATM
hardware and concern issues. Customer has a card number and a Personal Identification Number
(PIN). Both must be typed into the simulation togain access to the accounts or Customer can
create account by valid credential information. Then the customer can deposit and withdraw
money and the balance will be updated accordingly. The application terminates when the user
selects exit rather than an account. Since this is a simulation, the ATM does not actually
communicate with the bank. It simply loads a
Methodology Adopted
The project supported the traditional structure SSADM following the waterfall Modeling. The
SSADM methodology is a well-defined methodology, and it can produce well-documented,
accurate information systems. The aim of SSADM is to provide logical data modeling and
document the data requirements of the system being designed. In this traditional structure, the
data is split into entities and relationships.
However, the waterfall model is a process that follows the sequence. Based on this concept the
project will move in the following phases, as shown in the following diagram:
Technical Features
The project is developed utilizing modern tools and the innovations which are widely
used, so it can be effortlessly overseen and whole up extra usefulness at whatever point
required.
• Java Swing
• Eclipse IDE
• MySQL
• JDBC
• Hard Disk – 2 GB
• RAM – 1 GB
• Processor – Dual Core or Above
• Mouse
• Keyboard
• Monitor
Chapter 3
Software Requirement Specification
3.1-Introduction
MySQL : (My Structured Query Language)
MySQL is a relational database management system (RDBMS) developed by Oracle that
is based on structured query language (SQL). A database is a structured collection of data.
It may be anything from a simple shopping list to a picture gallery or a place to hold the
vast amounts of information in a corporate network. A relational database isa digital store
collecting data and organizing it according to the relational model. In this model, tables
consist of rows and columns, and relationships between data elements all follow a strict
logical structure. An RDBMS is simply the set of software tools used to implement,
manage, and query such a database.
Java Swing
Java Swing is a GUI Framework that contains a set of classes to provide more powerful and
flexible GUI components than AWT. Swing provides the look and feel of modern Java GUI.
Swing library is an official Java GUI tool kit released by Sun Microsystems. It is used to create
graphical user interface with Java.Swing classes are defined in javax.swing package and its
sub-packages.
JPanel: JPanel is Swing's version of AWT class Panel and uses the same default layout,
FlowLayout. JPanel is descended directly from JComponent.
JFrame: JFrame is Swing's version of Frame and is descended directly from Frame class. The
component, which is added to the Frame, is referred as its Content.
JWindow: This is Swing's version of Window and has descended directly from Window class.
Like Window it uses BorderLayout by default.
JLabel: JLabel has descended from JComponent and is used to create text labels.
JButton: JButton class provides the functioning of push button. JButton allows an icon, string
or both associated with a button.
Using these standard interfaces and classes, programmers can write applications that connect
to databases, send queries written in structured query language (SQL), and process the results.
Since JDBC is a standard specification, one Java program that uses the JDBC API can connect
to any database management system (DBMS), if a driver exists for that particular DBMS.
Eclipse IDE:
3.2-General Description
The users for the application would be the public. The following are the productperspective
and functions.
The website would work in an any Java IDE i.e Eclipse. A minimum of 1 GB RAM and 200
Mb of storage space. Customer can access this project software through any of the Java IDE.
• JAVA
• MySQL
• JDBC
• Swing Framework
In common the customer should be familiar and must have the knowledge of operating software.
The primary user of the application is the customer who uses the application he shouldknow about
the software and the transaction he wants to do, so that he can efficiently use the function of the
proposed system. The application is GUI based to reduce the user non- friendliness towards
using this software.
General Constraints:
1. This system will not take care of any virus problem that might occur on the computerwith
which it is installed. Avoiding the use of pirated/illegal software and ensuring thatfloppies
and other removable media are scanned for viruses before use could minimizethe possibility
of viral infection.
2. Recovery of data after a system crash will be possible only if backups are taken at regular
intervals.
3. Manual interfaces cannot be fully avoided. Documented proofs like dates etc. will have to
be verified by the concerned staff before entering it into the computerized system
Hardware Constraints
The performance of the system will be dependent on the machine conditions. The primary
memory (RAM) and the secondary memory (Hard Disk Space) requirement ofthe system will
be the same as that required by the normal application and the operatingsystem. And the space
required storing the data. The space required to store the data would increase as more and more
records are added to the system.
a. It is assumed that the user is familiar with the basic computer fundamentals.
b. Timely backup of data should be taken to avoid data loss in case of systemcrash.
c. Floppies and other removable media should be scanned for viruses before use.
d. It is assumed that the maintenance of the database will be assigned to the authorized person
only.
3.3-Functional Requirement
• Input- Customer credentials like name, Aadhar number, pan number and other details
• Process- Verification of credentials and successful storing to the database
• Output- Pass to the Account Details by Creating valid account
• Input – Transaction buttons and amount and pin changing option and mini statement
Security: Every data is authenticated and verified before moving to the further process
Confidentiality: Making sure that customer details kept safe and transaction details also kept
safe.
Availability: Once all the verified customers will be made available to their data in efficient
way that isthe requested data presented to the customer as per their requirement
Platform Independent or Portaability
There are no restrictions on the operating system hardware that we are using it can work with
same ease on any operating system on any hardware implementations (minimum hardware is
required).
Chapter 4
System Design
4.1 Introduction:
In this chapter, the description of the System design for the ATM simulator is given. Convenience
in use is one of the primary requirements in case of ATM bank. Easy availability of machines
also affects its use. Customer also uses ATM because they agree that its use is secured. The main
problem from ATM is that its machine most at times goes out of cash. It also revealed that the
use of ATM ishighly increasing.
System analysis is a process of carrying out a detailed study in an organized way of doing things
with the aim of gaining a thorough understanding of that system. The architectural design of this
system is shown in Figure 4.1 and Object Oriented Analysis and Design Methodology (OOAD)
used as design Methodology is illustrated using class diagram.
Structure of the ATM Emulator and the interaction of the components. The major components
are authentication and transactions.
Customer authentication
Authentication: This ensures the security of the ATM customer’s data, it uses the account card number
and PIN number to achieve this. A customer has to enter his card number andPIN, which are verified in
order to give the customer access to the system.
Customer Transactions
Transactions: these include inquiry, withdrawal, statement, recharge, deposit, transfer, and
change pin, any of these transactions can be performed by the user after he has been
authenticated by the system.
Account Creation: This include customer to enter the personal credentials like name, date of
birth, address, pan, aadhar etc , it will store in database for customer is valid user of software.
Account Details: It includes the type of account to be created and the customer requirements
like ATM, Cheque book etc, after entering all the details using random generator it gives the
card number and pin number for particular customer.
Chapter 5
Detailed Design
5.1 Object Oriented Analysis and Design: Methodology (OOAD)
Methodology (OOAD)OOADM is a software engineering approach that models a system as a
group of interacting objects, each object represents an entity of interest in the system being
modeled, and is characterized by its class, data element and its behavior. The design tool used
in this work is Unified Modeling Language (UML) because it is a graphical language for
modeling software is a set of diagrams used to specify, construct, visualize, and document
software design. The UML diagrams used in this software are USE CASE, CLASS and
ACTIVITY diagrams.
System Database
Transaction
-accountNumber: integer
+authenticateUser()
+getAvailableBalance()
+getTotalBalance()
+credit() +getAccountNumber()
+debit() +executeOperation()
The use case partition the functionality of a system into a small number of discrete units, and
all system behavior must fall under some use case. Each use case should represent a kind of
service that the system provides, something that provides value to the actor. A particular person
may be both a bank teller and the customer . For the ATM application, the actors are Customer
and Databse.
Sequence Diagram
A sequence diagram is an analysis tool that can be used when an object interacts with various
other objects to perform some task. One place this occurs in the ATM Simulation is during the
execution of a transaction, when the transaction must interact with the Customer (via the ATM)
to get specific information (such as choice of account(s), amount), with the Bank, and with
various components of the ATM (e.g. cash dispenser, printer). The figure 5.3 is a sequence
diagram for a Withdrawal Transaction.
Activity Diagram
An Activity Diagram is essentially a flow chart showing flow of control from activity to
activity. They are used to model the dynamic aspects of as system. They can also be used to
model the flow of an object as it moves from state to state at different points in the flow of
control.
Content:
Functional Modeling
A graphical tool used to describe and analyze the data in a system manual or automated
including the process, stores of data, and delays in the system. Data Flow Diagrams are the
central tool and the basis from which other components are developed. The transformation of
data from input to output, through processes, may be described logically and independently of
the physical components associated with the system. The DFD is also known as a data flow
graph or a bubble chart.
A graphical tool used to describe and analyze the moment of data through a system manual or
automated including the process, stores of data, and delays in the system. Data Flow Diagrams
are the central tool and the basis from which other components are developed.
This diagram shows the Automatic Teller System Software and the hardware that it interacts
with. The arrows show the direction and type of data flowing between the software and each
hardware element.
This diagram shows data entering and leaving the system. Input data is received from the
hardware elements on the left. Various types of data are processed by different parts of the
software system. Output data is sent to the elements of hardware on the right.
Database ER Diagram :
ER Diagram stands for Entity Relationship Diagram, also known as ERD is a diagram that
displays the relationship of entity sets stored in a database. In other words, ER diagrams help
to explain the logical structure of databases. ER diagrams are created based on three basic
concepts: entities, attributes, and relationships.
Chapter 6
Implementation
6.1-Code Snippets :
Login.java :
package atmsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
JLabel l1,l2,l3;
JTextField tf1;
JPasswordField pf2;
JButton b1,b2,b3;
Login(){
ImageIcon i1 = new
ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/logo.png"));
add(l11);
l1.setBounds(200,40,450,40);
add(l1);
l2.setBounds(125,150,375,30);
add(l2);
DEPARTMENT OF MCA, RVCE 32 /83
ATM SIMULATOR SYSTEM January 2022
tf1 = new JTextField(15);
add(tf1);
l3 = new JLabel("PIN:");
l3.setBounds(125,220,375,30);
add(l3);
pf2.setBounds(300,220,230,30);
add(pf2);
b1.setBackground(Color.BLACK);
b1.setForeground(Color.WHITE);
b2 = new JButton("CLEAR");
b2.setBackground(Color.BLACK);
b2.setForeground(Color.WHITE);
b3.setBackground(Color.BLACK);
b3.setForeground(Color.WHITE);
setLayout(null);
b1.setBounds(300,300,100,30);
add(b1);
b2.setBounds(430,300,100,30);
add(b2);
b3.setBounds(300,350,230,30);
add(b3);
b1.addActionListener(this);
b3.addActionListener(this);
getContentPane().setBackground(Color.WHITE);
setSize(800,480);
setLocation(550,200);
setVisible(true);
try{
if(ae.getSource()==b1){
String q = "select * from login where cardno = '"+cardno+"' and pin = '"+pin+"'";
ResultSet rs = c1.s.executeQuery(q);
if(rs.next()){
setVisible(false);
new Transactions(pin).setVisible(true);
}else{
}else {
}else if(ae.getSource()==b2){
tf1.setText("");
pf2.setText("");
}else if(ae.getSource()==b3){
setVisible(false);
DEPARTMENT OF MCA, RVCE 35 /83
ATM SIMULATOR SYSTEM January 2022
new Signup().setVisible(true);
}catch(Exception e){
e.printStackTrace();
new Login().setVisible(true);
Here we are implementing the login user interface where the customer need to enter the card
number and pin number to authenticate to customer account that may be stored in database.
If the customer doesn’t have an account of that database then have the button to signup for the
account creation. Another button from the user interface.
Signup.java :
package atmsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import com.toedter.calendar.JDateChooser;
import java.util.*;
JLabel l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15;
JTextField t1,t2,t3,t4,t5,t6,t7;
JRadioButton r1,r2,r3,r4,r5;
JButton b;
JDateChooser dateChooser;
ImageIcon i1 = new
ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/logo.png"));
add(l11);
l3 = new JLabel("Name:");
l6 = new JLabel("Gender:");
l9 = new JLabel("Address:");
t1 = new JTextField();
t2 = new JTextField();
t3 = new JTextField();
t4 = new JTextField();
t5 = new JTextField();
t6 = new JTextField();
t7 = new JTextField();
b = new JButton("Next");
b.setBackground(Color.BLACK);
b.setForeground(Color.WHITE);
r1 = new JRadioButton("Male");
r1.setBackground(Color.WHITE);
r2 = new JRadioButton("Female");
r2.setBackground(Color.WHITE);
groupgender.add(r1);
groupgender.add(r2);
r3 = new JRadioButton("Married");
r3.setBackground(Color.WHITE);
r4 = new JRadioButton("Unmarried");
r4.setBackground(Color.WHITE);
r5 = new JRadioButton("Other");
r5.setBackground(Color.WHITE);
groupstatus.add(r3);
groupstatus.add(r4);
groupstatus.add(r5);
add(dateChooser);
setLayout(null);
l1.setBounds(140,20,600,40);
add(l1);
l2.setBounds(290,80,600,30);
add(l2);
l3.setBounds(100,140,100,30);
add(l3);
t1.setBounds(300,140,400,30);
add(t1);
l4.setBounds(100,190,200,30);
t2.setBounds(300,190,400,30);
add(t2);
l5.setBounds(100,240,200,30);
add(l5);
l6.setBounds(100,290,200,30);
add(l6);
r1.setBounds(300,290,60,30);
add(r1);
r2.setBounds(450,290,90,30);
add(r2);
l7.setBounds(100,340,200,30);
add(l7);
t3.setBounds(300,340,400,30);
add(t3);
l8.setBounds(100,390,200,30);
add(l8);
r3.setBounds(300,390,100,30);
add(r3);
r4.setBounds(450,390,100,30);
add(r4);
r5.setBounds(635,390,100,30);
add(r5);
l9.setBounds(100,440,200,30);
add(l9);
t4.setBounds(300,440,400,30);
add(t4);
l10.setBounds(100,490,200,30);
add(l10);
t5.setBounds(300,490,400,30);
l11.setBounds(100,540,200,30);
add(l11);
t6.setBounds(300,540,400,30);
add(t6);
l12.setBounds(100,590,200,30);
add(l12);
t7.setBounds(300,590,400,30);
add(t7);
b.setBounds(620,660,80,30);
add(b);
b.addActionListener(this);
getContentPane().setBackground(Color.WHITE);
setSize(850,800);
setLocation(500,120);
setVisible(true);
int year=Integer.parseInt(dob.substring(7,11));
int curyear=Calendar.getInstance().get(Calendar.YEAR);
int age=curyear-year;
if(r1.isSelected()){
gender = "Male";
}else if(r2.isSelected()){
gender = "Female";
if(r3.isSelected()){
marital = "Married";
}else if(r4.isSelected()){
marital = "Unmarried";
}else if(r5.isSelected()){
marital = "Other";
try{
}else {
c1.s.executeUpdate(q1);
new Signup2(first).setVisible(true);
setVisible(false);
}catch(Exception e){
e.printStackTrace();
new Signup().setVisible(true);
This snippet is contructed for customer to create account with valid credentials like name ,
father name, date of birth, address, pincode and there are also some regressions used for valid,
these are stored in the database of customer.
Signup2.java :
package atmsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
JLabel l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12;
JRadioButton r1,r2,r3,r4;
JButton b1,b2;
String formno;
Signup3(String formno){
this.formno = formno;
ImageIcon i1 = new
ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/logo.png"));
add(l14);
l4 = new JLabel("XXXX-XXXX-XXXX-4184");
l7 = new JLabel("PIN:");
l8 = new JLabel("XXXX");
b1 = new JButton("Submit");
b1.setBackground(Color.BLACK);
b1.setForeground(Color.WHITE);
b2 = new JButton("Cancel");
b2.setBackground(Color.BLACK);
b2.setForeground(Color.WHITE);
c1.setBackground(Color.WHITE);
c2.setBackground(Color.WHITE);
c3.setBackground(Color.WHITE);
c4.setBackground(Color.WHITE);
c5.setBackground(Color.WHITE);
c6 = new JCheckBox("E-Statement");
c6.setBackground(Color.WHITE);
c7 = new JCheckBox("I hereby declares that the above entered details correct to th best of my
knowledge.",true);
DEPARTMENT OF MCA, RVCE 45 /83
ATM SIMULATOR SYSTEM January 2022
c7.setBackground(Color.WHITE);
r1.setBackground(Color.WHITE);
r2.setBackground(Color.WHITE);
r3.setBackground(Color.WHITE);
r4.setBackground(Color.WHITE);
groupgender.add(r1);
groupgender.add(r2);
groupgender.add(r3);
groupgender.add(r4);
setLayout(null);
l11.setBounds(700,10,70,30);
add(l11);
l12.setBounds(770,10,40,30);
add(l12);
l1.setBounds(280,40,400,40);
add(l1);
l2.setBounds(100,140,200,30);
add(l2);
r1.setBounds(100,180,150,30);
add(r1);
r2.setBounds(350,180,300,30);
r3.setBounds(100,220,250,30);
add(r3);
r4.setBounds(350,220,250,30);
add(r4);
l3.setBounds(100,300,200,30);
add(l3);
l4.setBounds(330,300,250,30);
add(l4);
l5.setBounds(100,330,200,20);
add(l5);
l6.setBounds(330,330,500,20);
add(l6);
l7.setBounds(100,370,200,30);
add(l7);
l8.setBounds(330,370,200,30);
add(l8);
l9.setBounds(100,400,200,20);
add(l9);
l10.setBounds(100,450,200,30);
add(l10);
c1.setBounds(100,500,200,30);
add(c1);
c2.setBounds(350,500,200,30);
add(c2);
c3.setBounds(100,550,200,30);
add(c3);
c4.setBounds(350,550,200,30);
add(c4);
c5.setBounds(100,600,200,30);
add(c5);
add(c6);
c7.setBounds(100,680,600,20);
add(c7);
b1.setBounds(250,720,100,30);
add(b1);
b2.setBounds(420,720,100,30);
add(b2);
getContentPane().setBackground(Color.WHITE);
setSize(850,850);
setLocation(500,120);
setVisible(true);
b1.addActionListener(this);
b2.addActionListener(this);
if(r1.isSelected()){
else if(r2.isSelected()){
else if(r3.isSelected()){
}else if(r4.isSelected()){
if(c1.isSelected()){
if(c2.isSelected()){
if(c3.isSelected()){
if(c4.isSelected()){
if(c5.isSelected()){
if(c6.isSelected()){
try{
if(ae.getSource()==b1){
if(atype.equals("")){
}else{
c1.s.executeUpdate(q1);
c1.s.executeUpdate(q2);
DEPARTMENT OF MCA, RVCE 49 /83
ATM SIMULATOR SYSTEM January 2022
JOptionPane.showMessageDialog(null, "Card Number: " + cardno + "\n Pin:"+ pin);
new Deposit(pin).setVisible(true);
setVisible(false);
}else if(ae.getSource()==b2){
System.exit(0);
}catch(Exception ex){
ex.printStackTrace();
new Signup3("").setVisible(true);
In this snippet we will have user interface to select type of account like saving, current account
and also needed requirements like ATM, Cheque book etc. After all the selection, database will
be stored and there will be output of card number and pin number for that customer for other
transactions when he login.
Transactions.java :
package atmsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
JLabel l1;
JButton b1,b2,b3,b4,b5,b6,b7;
String pin;
Transactions(String pin){
this.pin = pin;
add(l2);
l1.setForeground(Color.WHITE);
b1 = new JButton("DEPOSIT");
b7 = new JButton("EXIT");
setLayout(null);
l1.setBounds(235,400,700,35);
l2.add(l1);
b1.setBounds(170,499,150,35);
l2.add(b1);
b2.setBounds(390,499,150,35);
l2.add(b2);
b3.setBounds(170,543,150,35);
l2.add(b3);
b4.setBounds(390,543,150,35);
l2.add(b4);
b5.setBounds(170,588,150,35);
l2.add(b5);
b6.setBounds(390,588,150,35);
l2.add(b6);
b7.setBounds(390,633,150,35);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
setSize(960,1080);
setLocation(500,0);
setUndecorated(true);
setVisible(true);
if(ae.getSource()==b1){
setVisible(false);
new Deposit(pin).setVisible(true);
}else if(ae.getSource()==b2){
setVisible(false);
new Withdraw(pin).setVisible(true);
}else if(ae.getSource()==b3){
setVisible(false);
new FastCash(pin).setVisible(true);
}else if(ae.getSource()==b4){
new MiniStatement(pin).setVisible(true);
}else if(ae.getSource()==b5){
setVisible(false);
new Pin(pin).setVisible(true);
}else if(ae.getSource()==b6){
this.setVisible(false);
new BalanceEnquiry(pin).setVisible(true);
System.exit(0);
new Transactions("").setVisible(true);
}
Snippet consists of user interface for the customer account transacation options like deposit,
withdrawl, fastcash, pin change.
JDBConnection.java :
package atmsimulator;
import java.sql.*;
public class JDBConnection{
Connection c;
Statement s;
public JDBConnection(){
try{
Class.forName("com.mysql.cj.jdbc.Driver");
c =DriverManager.getConnection("jdbc:mysql://localhost:3306/bms","root","85088");
s =c.createStatement();
}catch(Exception e){
System.out.println(e);
}
}
}
This is to connect to the database for MySQL with java database connectivity with jdbc driver
with classname and with connection.
Deposit.java :
package atmsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
DEPARTMENT OF MCA, RVCE 53 /83
ATM SIMULATOR SYSTEM January 2022
import java.util.*;
JTextField t1,t2;
JButton b1,b2,b3;
JLabel l1,l2,l3;
String pin;
Deposit(String pin){
this.pin = pin;
add(l3);
l1.setForeground(Color.WHITE);
t1 = new JTextField();
b1 = new JButton("DEPOSIT");
b2 = new JButton("BACK");
setLayout(null);
l1.setBounds(190,350,400,35);
l3.add(l1);
t1.setBounds(190,420,320,25);
l3.add(t1);
b1.setBounds(390,588,150,35);
l3.add(b1);
b2.setBounds(390,633,150,35);
l3.add(b2);
b1.addActionListener(this);
setSize(960,1080);
setUndecorated(true);
setLocation(500,0);
setVisible(true);
try{
if(ae.getSource()==b1){
if(t1.getText().equals("")){
}else{
setVisible(false);
new Transactions(pin).setVisible(true);
}else if(ae.getSource()==b2){
setVisible(false);
new Transactions(pin).setVisible(true);
}catch(Exception e){
e.printStackTrace();
new Deposit("").setVisible(true);
}
DEPARTMENT OF MCA, RVCE 55 /83
ATM SIMULATOR SYSTEM January 2022
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Date;
import java.sql.*;
JTextField t1,t2;
JButton b1,b2,b3;
JLabel l1,l2,l3,l4;
String pin;
Withdraw(String pin){
this.pin = pin;
add(l3);
l1.setForeground(Color.WHITE);
l2.setForeground(Color.WHITE);
t1 = new JTextField();
b1 = new JButton("WITHDRAW");
setLayout(null);
l1.setBounds(190,350,400,20);
l3.add(l1);
l2.setBounds(190,400,400,20);
l3.add(l2);
t1.setBounds(190,450,330,30);
l3.add(t1);
b1.setBounds(390,588,150,35);
l3.add(b1);
b2.setBounds(390,633,150,35);
l3.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setSize(960,1080);
setLocation(500,0);
setUndecorated(true);
setVisible(true);
try{
if(ae.getSource()==b1){
if(t1.getText().equals("")){
}else{
int balance = 0;
while(rs.next()){
DEPARTMENT OF MCA, RVCE 57 /83
ATM SIMULATOR SYSTEM January 2022
if(rs.getString("mode").equals("Deposit")){
balance += Integer.parseInt(rs.getString("amount"));
}else{
balance -= Integer.parseInt(rs.getString("amount"));
return;
setVisible(false);
new Transactions(pin).setVisible(true);
}else if(ae.getSource()==b2){
setVisible(false);
new Transactions(pin).setVisible(true);
}catch(Exception e){
e.printStackTrace();
System.out.println("error: "+e);
new Withdraw("").setVisible(true);
import java.awt.*;
import java.awt.event.*;
import java.sql.ResultSet;
import javax.swing.*;
import java.util.*;
String pin;
BalanceEnquiry(String pin) {
this.pin = pin;
add(l3);
l1 = new JLabel();
l1.setForeground(Color.WHITE);
b1 = new JButton("BACK");
setLayout(null);
l3.add(l1);
l3.add(b1);
int balance = 0;
try{
while (rs.next()) {
if (rs.getString("mode").equals("Deposit")) {
balance += Integer.parseInt(rs.getString("amount"));
} else {
balance -= Integer.parseInt(rs.getString("amount"));
}catch(Exception e){}
b1.addActionListener(this);
setSize(960, 1080);
setUndecorated(true);
setLocation(500, 0);
setVisible(true);
setVisible(false);
new Transactions(pin).setVisible(true);
new BalanceEnquiry("").setVisible(true);
FastCash.java :
package atmsimulator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Date;
JTextField t1;
String pin;
FastCash(String pin) {
this.pin = pin;
add(l3);
l1.setForeground(Color.WHITE);
b7 = new JButton("BACK");
setLayout(null);
l3.add(l1);
l3.add(b1);
l3.add(b3);
l3.add(b4);
l3.add(b5);
l3.add(b6);
l3.add(b7);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
setSize(960, 1080);
setLocation(500, 0);
setUndecorated(true);
setVisible(true);
try {
int balance = 0;
while (rs.next()) {
if (rs.getString("mode").equals("Deposit")) {
} else {
balance -= Integer.parseInt(rs.getString("amount"));
return;
if (ae.getSource() == b7) {
this.setVisible(false);
new Transactions(pin).setVisible(true);
}else{
setVisible(false);
new Transactions(pin).setVisible(true);
} catch (Exception e) {
e.printStackTrace();
new FastCash("").setVisible(true);
import java.awt.*;
DEPARTMENT OF MCA, RVCE 63 /83
ATM SIMULATOR SYSTEM January 2022
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
JLabel l1;
MiniStatement(String pin){
super("Mini Statement");
getContentPane().setBackground(Color.WHITE);
setSize(400,600);
setLocation(20,20);
l1 = new JLabel();
add(l1);
add(l2);
add(l3);
add(l4);
try{
while(rs.next()){
}catch(Exception e){}
try{
int balance = 0;
DEPARTMENT OF MCA, RVCE 64 /83
ATM SIMULATOR SYSTEM January 2022
JDBConnection c1 = new JDBConnection();
while(rs.next()){
l1.setText(l1.getText() + "<html>"+rs.getString("date")+
" " + rs.getString("mode") +
" " + rs.getString("amount") +
"<br><br><html>");
if(rs.getString("mode").equals("Deposit")){
balance += Integer.parseInt(rs.getString("amount"));
}else{
balance -= Integer.parseInt(rs.getString("amount"));
}catch(Exception e){
e.printStackTrace();
setLayout(null);
b1 = new JButton("Exit");
add(b1);
b1.addActionListener(this);
this.setVisible(false);
new MiniStatement("").setVisible(true);
Here we can see the UI where labels emphasize which has to be entered valid card number and
pin number in the text fields and also contains sign in, sign up, clear buttons.
The user if not have signed for the account, then he has given the option to sign up for the
account by giving the credentials like name, father name, date of birth, mail, address with
pincode. and also to provide pan number, aadhar number, etc.. that all information will be stored
in the created MySQL database.
In this UI customer have to provide which type of account to be created and the customer
requirements like cheque book, atm card, net banking etc.. that also be stored in the MySQL
database for the reference.
Customer Transaction :
The UI of this model consists option to do the particular transactions like Deposit, Fastcash,
Withdrawl, Pin change, Mini statement, Balance Enquiry. Customer can perform any of these
transactions with login into his account using login credentials. The GUI of this model will
reflect the ATM,s around us.
Chapter 7
Software Testing
7.1-Test Cases :
ID
ID
ID
Customer Authentication :
DEPARTMENT OF MCA, RVCE 73 /83
ATM SIMULATOR SYSTEM January 2022
14. Figure 7.2: Error message when authenticating with invalid credential
DEPARTMENT OF MCA, RVCE 74 /83
ATM SIMULATOR SYSTEM January 2022
Customer Account Registration :
Customer Transactions :
Chapter 8
Conclusion
This project is developed to nurture the needs of a user in a banking sector by embedding all
the tasks of transactions taking place in a bank. Future version of this project will still be much
enhanced than the current version. Writing and depositing checks are perhaps the most
fundamental ways to move money in and out of a checking account, but advancements in
technology have added ATM and debit card transactions. All banks have rules about how long
it takes to access your deposits, how many debit card transactions you're allowed in a day, and
how much cash you can withdraw from an ATM. Access to the balance in your checking
account can also be limited by businesses that place holds on your funds.
Banks are providing internet banking services also so that the customers can be attracted. By
asking the bank employs we came to know that maximum numbers of internet bank account
holders are youth and businessman. Online banking is an innovative tool that is fast becominga
necessity. It is a successful strategic weapon for banks to remain profitable in a volatile and
competitive marketplace of today. If proper training should be given to customer by the bank
employs to open an account will be beneficial secondly the website should be made friendlier
from where the customers can directly make and access their accounts. Thus, the ATM
Simulator System it is developed and executed successfully.
Chapter 9
Future Enhancements
The ATM Simulator System is a big and ambitious project. I am thankful for being provided
this great opportunity to work on it. As already mentioned, this project has gone through
extensive research work. On the basis of the research work, we have successfully designed and
implemented ATM Simulator System. To know what the future of online banking looks like,
it’s probably worth looking at the present – online banking isn’t new. When you think of online
banking, you probably think about a computer (either a desktop or laptop), a three or four step
security process and then an interface that lets you view the balance of your various bank
accounts and credit cards, whilst permitting you to transfer money and pay bills. And you’re
not wrong either. The most valuable future looks are following below:
1- More branches of the bank, maybe it will be international, that means more ATM machines
outside.
2- Customer issues development based on their needs, so the help desk will be aware of their
needs and easy to use.
3- Developing a mobile App for banking system that help users to do the obtained his operations
without go to the bank only he needs to sign in using his A/C NO. And password and then use
your own PIN. Finally the system will update automatically.
Bibliography