0% found this document useful (0 votes)
114 views84 pages

ATM Simulator System

Atm stimulation of the bank project using html and CSS programming languages..

Uploaded by

raviearnerloot
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views84 pages

ATM Simulator System

Atm stimulation of the bank project using html and CSS programming languages..

Uploaded by

raviearnerloot
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 84

DEPARTMENT OF

MASTER OF COMPUTER APPLICATIONS

Minor Project Report


On

ATM SIMULATOR SYSTEM


Submitted in partial fulfilment of the requirements for the III Semester
MCA Academic Minor Project
20MCA36
By
ANKITH KUMAR S K (1RV20MC004)
VINAY KUMAR H R (1RV20MC110)

Under the Guidance


of

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

Dr. USHA J Dr. Andhe Dharani


Professor Professor and Director
Department of MCA Department of MCA
RV College of Engineering® RV College of Engineering®
Bengaluru-59 Bengaluru-59

1
RV COLLEGE OF ENGINEERING®
(Autonomous Institution Affiliated to Visvesvaraya Technological University, Belagavi)

DEPARTMENT OF
MASTER OF COMPUTER APPLICATIONS
Bengaluru– 560059

DECLARATION

We, ANKITH KUMAR S K (1RV20MC004) and VINAY KUMAR H R (1RV20MC110),


students of Third Semester MCA hereby declare that the Minor Project titled “ATM
SIMULATOR SYSTEM” has been carried out and completed successfully by us and is our
original work.

Date of Submission: Signature of the Student

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.

ANKIITH KUMAR S K (1RV20MC004)

VINAY KUMA H R (1RV20MC110)

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

Department of MCA, RVCE 5 /83


ATM SIMULATOR SYSTEM January 2022

List of Figures
Figure No Figure Label Page No

2.1 Waterfall Diagram 15

4.1 Architecture Diagram 23

5.1 Class Diagram 25

5.2 use case diagram 26

5.3 Sequence Diagram 27

5.4 Activity diagram 28

5.5 Data Flow Diagram (Level-0) 29

5.6 Data Flow Diagram (Level-1) 30

5.7 ER Diagram 31

6.1 UI of Customer Authentication 66

6.2 UI of Customer Account Registration 67

6.3 UI of Customer Account Details 68

6.4 UI of Customer Transactions 69

7.1 Authenticating with valid credential 74

7.2 Authenticating with invalid credential 74

7.3 Registration with valid credentials 75

7.4 Registration with invalid credentials 75

7.5 Getting card and pin number 76

7.6 Transaction of Depositing amount 76

7.7 Transactions of Withdrawal amount 77

7.8 Transactions of fast cash withdrawal 77


amount
7.9 Transactions of mini statement 78
transactions
7.10 Transactions of pin change 78

7.11 Transactions of checking balance 79

Department of MCA, RVCE 6 /83


ATM SIMULATOR SYSTEM January 2022

List of Tables

Table No Figure Label Page No

7.1 Test Case table of Customer Authentication 70

7.2 Test Case table of Customer Account 71


Registration

7.3 Test Case table of Customer Account Details 72

7.4 Test Case table of Customer Transactions 73

Department of MCA, RVCE 7 /83


ATM SIMULATOR SYSTEM January 2022

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:

1. Customer authentication or account creation


2. language, service, and account selection
3. Banking services
4. Transactions
5. Special services

Department of MCA, RVCE 8 /83


ATM SIMULATOR SYSTEM January 2022
Main Goal
1. Motto- Our motto is to develop a software program for managing the entire bank process
related to Administration accounts customer accounts and to keep every track about their
property and their various transaction processes efficiently. Hereby, our main objective is the
customer’s satisfaction considering today’s faster in the world.

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.

Department of MCA, RVCE 9 /83


ATM SIMULATOR SYSTEM January 2022

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 Ismaila W. Oladimeji, Omidiora E. Olusayo, Ismaila


Folasade M, Olajide A. Taiwo. The paper “Multi-Level Access Control System in Automated
Teller Machines” was for customers, without a teller, to pay utility bills and get a receipt. And
it is published in the 2021 as International Journal of Pure and Applied Science Published by
Cambridge Research and Publications. It is to innovate different fraud detection/prevention
techniques with emphasis on machine learning algorithms. Some of the supervised and
unsupervised machine learning algorithms used include Hidden Markov Model, Neural
Network etc,.. making the Automated Teller Machine to improve security. This making our
project to have more automations.

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

Department of MCA, RVCE


10/83
ATM SIMULATOR SYSTEM January 2022
Software Engineering. This paper focus on experimental results demonstrate that it is feasible
to scale our approach to software systems with medium-size requirements.

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.

Department of MCA, RVCE 11 /83


ATM SIMULATOR SYSTEM January 2022
Fabumni (2011) worked on the appraisal of the use of ATM in the banking industry in Nigeria.
It involves the use of diffusion innovation model; questionnaires were used to collect data in
order to get the required information from the users and non-users of the system and the result
of the hypothesis were stated at the end of the analysis. From the results, it could definitively
be said that the relative advantage of using ATMs; how hard it was to use ATMs, how
compatible ATMs were with the lifestyle of the users; how much has been registered (observed)
about ATMs by the users and whether ATMs could be tested before consistent use, were issues
that influence users’ attitude towards intention to use ATMs.

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.

Department of MCA, RVCE 12 /83


ATM SIMULATOR SYSTEM January 2022
Conclusion of the literature survey and the need of the project

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.

2.2-Existing and Proposed System

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.

Department of MCA, RVCE 13 /83


ATM SIMULATOR SYSTEM January 2022
• Who is the application for?
Several companies provide ATM products. Consequently, only a vendor or a large
financial company could possibly justify the cost and effort of building ATM software.
A small vendor would need some special feature to differentiate itself from the crowd
and attract attention. Though this software fully implements the functionally of the ATM
that is available in the 3 market today, but largely it includes all the essential features
that an ATM software must have.
• What problem will it solve?
The ATM software is intended to serve both bank and customer. For the bank, ATM
software increases automation and reduces manual handling of routine paperwork. For
the customer the ATM is ubiquitous and always available, handling routine transactions
whenever and whenever the customer desires.
• Where will it be used?
ATM software has become essential to financial institutions. Customers take it for
granted that a bank will have an ATM machine. ATM machines are available at many
stores, sporting events, colleges, and other locations throughout the world.
• How will it work?
We will adopt a three-tier architecture to separate the user interface from programming
language, and programming language from the database. The architecture is n- tier
architecture, because there can be any number of programming language
communicating with each other.

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

Department of MCA, RVCE 14 /83


ATM SIMULATOR SYSTEM January 2022
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.

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:

1. Figure 2.1: WaterFall model Diagram

1Department of MCA, RVCE 15 /83


ATM SIMULATOR SYSTEM January 2022

Technical Features

• Remote Banking and Account Management


The system is designed to provide the user with the facility of remote banking and
perform various other functions at an interface without any aid of human bank teller. At
the start, the user is provided with a log in screen, and he is required to enter his PIN
NO. and Account details which are then verified by the machine.
• Receipt Generation
After each transaction user has performed, a receipt is generated that contains all the
information about the transaction.
• Receive account balance
• Change your pin
• Deposit your cash
• Cash withdrawal

2.3-Tools and Technologies used

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

2.4-Hardware and Software Requirements


Hardware :

• Hard Disk – 2 GB
• RAM – 1 GB
• Processor – Dual Core or Above
• Mouse
• Keyboard
• Monitor

Department of MCA, RVCE 16 /83


ATM SIMULATOR SYSTEM January 2022
Software
• Operating System – Windows/Ubuntu
• IDE - Eclipse
• Database – MySQL
• FrameWork – Swing

Department of MCA, RVCE 16 /83


ATM SIMULATOR SYSTEM January 2022

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.

JTextField: JTextFields allow editing of a single line of text.

DEPARTMENT OF MCA, RVCE 18 /83


ATM SIMULATOR SYSTEM January 2022
JDBC: (Java Database Connectivity)

Java database connectivity (JDBC) is the JavaSoft specification of a standard application


programming interface (API) that allows Java programs to access database management
systems. The JDBC API consists of a set of interfaces and classes written in the Java
programming language.

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:

Eclipse is an integrated development environment (IDE) used in computer programming. It


contains a base workspace and an extensible plug-in system for customizing the environment.
Eclipse is written mostly in Java and its primary use is for developing Java applications, but it
may also be used to develop applications in other programming languages via plug-ins,
including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell,
JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (including Rub
y on Rails framework), Rust, Scala, and Scheme. It can also be used to develop documents
with LaTeX (via a TeXlipse plug-in) and packages for the software Mathematica. Development
environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse
CDT for C/C++, and Eclipse PDT for PHP, among others.

3.2-General Description

The users for the application would be the public. The following are the productperspective
and functions.

3.2.2 Operational Environment

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.

DEPARTMENT OF MCA, RVCE 19 /83


ATM SIMULATOR SYSTEM January 2022
3.2.3 Languages

• JAVA
• MySQL
• JDBC
• Swing Framework

3.2.4 Customer Characteristics

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.

DEPARTMENT OF MCA, RVCE 20 /83


ATM SIMULATOR SYSTEM January 2022
Assumptions and Dependencies

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.

e. Only authorized persons will be allowed inside the system

3.3-Functional Requirement

Module-1: Customer Authentication

• Input – Customer card number and pin number


• Process – Verifies the Customer with the database
• Output – Successful access to Customer for Transactions

Module-2: Customer Account Registration

• 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

Module-3: Customer Account Details

• Input – Type of account and Services required


• Process – takes input of Customer and stores in the database
• Output – Providing card number and pin by random generator and depositing basic pay

Module-4 : Customer Transactions :

• Input – Transaction buttons and amount and pin changing option and mini statement

DEPARTMENT OF MCA, RVCE 21 /83


ATM SIMULATOR SYSTEM January 2022
• Process – Checks the minimum balance that capable to do transaction
• Output – Transacted type and the amount that transacted and mini statement of
totalhistory transaction

3.4 – Non Functional Requirements

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).

• The ATM network must be available 24 hours a day.


• Each bank may be processing transactions from several ATMs at the same time.
• The ATM must be able to use several data formats according to the data formats that are
provided by the database of different banks.

DEPARTMENT OF MCA, RVCE 22 /83


ATM SIMULATOR SYSTEM January 2022

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.

Figure 4.1 Architectural Design of the ATM Simulator

Structure of the ATM Emulator and the interaction of the components. The major components
are authentication and transactions.

DEPARTMENT OF MCA, RVCE 23 /83


ATM SIMULATOR SYSTEM January 2022
4.2 – Context Design

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.

Customer Account Registration

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.

Customer Account Details

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.

DEPARTMENT OF MCA, RVCE 24 /83


ATM SIMULATOR SYSTEM January 2022

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.

Object modelling: Class Diagram


The class diagram is a static diagram. It represents the static view of an application. Class
diagram is not only used for visualizing, describing, and documenting different aspects of a
system but also for constructing executable code of the software application. This class diagram
describes the classes and attributes in ATM operations. The class diagrams are widely used in
the modeling object-oriented systems because they are the only UML diagrams which can be
mapped directly with object oriented languages.

System Database
Transaction

-accountNumber: integer

+authenticateUser()
+getAvailableBalance()
+getTotalBalance()
+credit() +getAccountNumber()
+debit() +executeOperation()

Figure 5.1: Class Diagram of the ATM System


DEPARTMENT OF MCA, RVCE 25 /83
ATM SIMULATOR SYSTEM January 2022
Dynamic modelling :

Use case Diagram :

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.

Figure 5.2: Use case diagram of the ATM System

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.

DEPARTMENT OF MCA, RVCE 26 /83


ATM SIMULATOR SYSTEM January 2022

Figure 5.3: Sequence Diagram for 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:

Activity diagrams commonly contain: Fork, Start & End Symbol

DEPARTMENT OF MCA, RVCE 27 /83


ATM SIMULATOR SYSTEM January 2022

2. Figure 5.4: Activity diagram

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.

DEPARTMENT OF MCA, RVCE 28 /83


ATM SIMULATOR SYSTEM January 2022
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.

Data Flow Diagram(Level-0):-

Figure 5.5: Data Flow Diagram(Level-0)

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.

Data Flow Diagram(Level-1):-

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.

DEPARTMENT OF MCA, RVCE 29 /83


ATM SIMULATOR SYSTEM January 2022

Figure 5.6:Data Flow Diagram(Level-1)

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.

DEPARTMENT OF MCA, RVCE 30 /83


ATM SIMULATOR SYSTEM January 2022
ER Diagrams contain different symbols that use rectangles to represent entities, ovals to define
attributes and diamond shapes to represent relationships.

Figure 5.7: ER Diagram

DEPARTMENT OF MCA, RVCE 31 /83


ATM SIMULATOR SYSTEM January 2022

Chapter 6
Implementation
6.1-Code Snippets :
Login.java :

package atmsimulator;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.sql.*;

public class Login extends JFrame implements ActionListener{

JLabel l1,l2,l3;

JTextField tf1;

JPasswordField pf2;

JButton b1,b2,b3;

Login(){

setTitle("AUTOMATED TELLER MACHINE");

ImageIcon i1 = new
ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/logo.png"));

Image i2 = i1.getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l11 = new JLabel(i3);

l11.setBounds(70, 10, 100, 100);

add(l11);

l1 = new JLabel("WELCOME TO ATM");

l1.setFont(new Font("Osward", Font.BOLD, 38));

l1.setBounds(200,40,450,40);

add(l1);

l2 = new JLabel("Card No:");

l2.setFont(new Font("Raleway", Font.BOLD, 28));

l2.setBounds(125,150,375,30);

add(l2);
DEPARTMENT OF MCA, RVCE 32 /83
ATM SIMULATOR SYSTEM January 2022
tf1 = new JTextField(15);

DEPARTMENT OF MCA, RVCE 33 /83


ATM SIMULATOR SYSTEM January 2022
tf1.setBounds(300,150,230,30);

tf1.setFont(new Font("Arial", Font.BOLD, 14));

add(tf1);

l3 = new JLabel("PIN:");

l3.setFont(new Font("Raleway", Font.BOLD, 28));

l3.setBounds(125,220,375,30);

add(l3);

pf2 = new JPasswordField(15);

pf2.setFont(new Font("Arial", Font.BOLD, 14));

pf2.setBounds(300,220,230,30);

add(pf2);

b1 = new JButton("SIGN IN");

b1.setBackground(Color.BLACK);

b1.setForeground(Color.WHITE);

b2 = new JButton("CLEAR");

b2.setBackground(Color.BLACK);

b2.setForeground(Color.WHITE);

b3 = new JButton("SIGN UP");

b3.setBackground(Color.BLACK);

b3.setForeground(Color.WHITE);

setLayout(null);

b1.setFont(new Font("Arial", Font.BOLD, 14));

b1.setBounds(300,300,100,30);

add(b1);

b2.setFont(new Font("Arial", Font.BOLD, 14));

b2.setBounds(430,300,100,30);

add(b2);

b3.setFont(new Font("Arial", Font.BOLD, 14));

b3.setBounds(300,350,230,30);

add(b3);

b1.addActionListener(this);

DEPARTMENT OF MCA, RVCE 34 /83


ATM SIMULATOR SYSTEM January 2022
b2.addActionListener(this);

b3.addActionListener(this);

getContentPane().setBackground(Color.WHITE);

setSize(800,480);

setLocation(550,200);

setVisible(true);

public void actionPerformed(ActionEvent ae){

try{

if(ae.getSource()==b1){

JDBConnection c1 = new JDBConnection();

String cardno = tf1.getText();

String pin = pf2.getText();

if((cardno.matches("[0-9]+") && cardno.length()==16) && (pin.matches("[0-9]+") &&


pin.length()==4)) {

String q = "select * from login where cardno = '"+cardno+"' and pin = '"+pin+"'";

ResultSet rs = c1.s.executeQuery(q);

JOptionPane.showMessageDialog(null, "Authentication Succeeded");

if(rs.next()){

setVisible(false);

new Transactions(pin).setVisible(true);

}else{

JOptionPane.showMessageDialog(null, "Incorrect Card Number or PIN");

}else {

JOptionPane.showMessageDialog(null, "Incorrect Numbers Entered");

}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();

public static void main(String[] args){

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.*;

public class Signup extends JFrame implements ActionListener{

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;

Random ran = new Random();

long first4 = (ran.nextLong() % 9000L) + 1000L;

String first = "" + Math.abs(first4);

DEPARTMENT OF MCA, RVCE 36 /83


ATM SIMULATOR SYSTEM January 2022
Signup(){

setTitle("NEW ACCOUNT APPLICATION FORM");

ImageIcon i1 = new
ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/logo.png"));

Image i2 = i1.getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l11 = new JLabel(i3);

l11.setBounds(20, 0, 100, 100);

add(l11);

l1 = new JLabel("APPLICATION FORM NO. "+first);

l1.setFont(new Font("Raleway", Font.BOLD, 38));

l2 = new JLabel("Page 1: Personal Details");

l2.setFont(new Font("Raleway", Font.BOLD, 22));

l3 = new JLabel("Name:");

l3.setFont(new Font("Raleway", Font.BOLD, 20));

l4 = new JLabel("Father's Name:");

l4.setFont(new Font("Raleway", Font.BOLD, 20));

l5 = new JLabel("Date of Birth:");

l5.setFont(new Font("Raleway", Font.BOLD, 20));

l6 = new JLabel("Gender:");

l6.setFont(new Font("Raleway", Font.BOLD, 20));

l7 = new JLabel("Email Address:");

l7.setFont(new Font("Raleway", Font.BOLD, 20));

l8 = new JLabel("Marital Status:");

l8.setFont(new Font("Raleway", Font.BOLD, 20));

l9 = new JLabel("Address:");

l9.setFont(new Font("Raleway", Font.BOLD, 20));

l10 = new JLabel("City:");

l10.setFont(new Font("Raleway", Font.BOLD, 20));

l11 = new JLabel("Pin Code:");

l11.setFont(new Font("Raleway", Font.BOLD, 20));

l12 = new JLabel("State:");


DEPARTMENT OF MCA, RVCE 37 /83
ATM SIMULATOR SYSTEM January 2022
l12.setFont(new Font("Raleway", Font.BOLD, 20));

l13 = new JLabel("Date");

l13.setFont(new Font("Raleway", Font.BOLD, 14));

l14 = new JLabel("Month");

l14.setFont(new Font("Raleway", Font.BOLD, 14));

l15 = new JLabel("Year");

l15.setFont(new Font("Raleway", Font.BOLD, 14));

t1 = new JTextField();

t1.setFont(new Font("Raleway", Font.BOLD, 14));

t2 = new JTextField();

t2.setFont(new Font("Raleway", Font.BOLD, 14));

t3 = new JTextField();

t3.setFont(new Font("Raleway", Font.BOLD, 14));

t4 = new JTextField();

t4.setFont(new Font("Raleway", Font.BOLD, 14));

t5 = new JTextField();

t5.setFont(new Font("Raleway", Font.BOLD, 14));

t6 = new JTextField();

t6.setFont(new Font("Raleway", Font.BOLD, 14));

t7 = new JTextField();

t7.setFont(new Font("Raleway", Font.BOLD, 14));

b = new JButton("Next");

b.setFont(new Font("Raleway", Font.BOLD, 14));

b.setBackground(Color.BLACK);

b.setForeground(Color.WHITE);

r1 = new JRadioButton("Male");

r1.setFont(new Font("Raleway", Font.BOLD, 14));

r1.setBackground(Color.WHITE);

r2 = new JRadioButton("Female");

r2.setFont(new Font("Raleway", Font.BOLD, 14));

r2.setBackground(Color.WHITE);

DEPARTMENT OF MCA, RVCE 38 /83


ATM SIMULATOR SYSTEM January 2022
ButtonGroup groupgender = new ButtonGroup();

groupgender.add(r1);

groupgender.add(r2);

r3 = new JRadioButton("Married");

r3.setFont(new Font("Raleway", Font.BOLD, 14));

r3.setBackground(Color.WHITE);

r4 = new JRadioButton("Unmarried");

r4.setFont(new Font("Raleway", Font.BOLD, 14));

r4.setBackground(Color.WHITE);

r5 = new JRadioButton("Other");

r5.setFont(new Font("Raleway", Font.BOLD, 14));

r5.setBackground(Color.WHITE);

ButtonGroup groupstatus = new ButtonGroup();

groupstatus.add(r3);

groupstatus.add(r4);

groupstatus.add(r5);

dateChooser = new JDateChooser();

//dateChooser.setBorder(new LineBorder(new Color(0, 0, 0), 1, true));

dateChooser.setForeground(new Color(105, 105, 105));

dateChooser.setBounds(137, 337, 200, 29);

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);

DEPARTMENT OF MCA, RVCE 39 /83


ATM SIMULATOR SYSTEM January 2022
add(l4);

t2.setBounds(300,190,400,30);

add(t2);

l5.setBounds(100,240,200,30);

add(l5);

dateChooser.setBounds(300, 240, 400, 30);

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);

DEPARTMENT OF MCA, RVCE 40 /83


ATM SIMULATOR SYSTEM January 2022
add(t5);

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);

public void actionPerformed(ActionEvent ae){

String formno = first;

String name = t1.getText();

String fname = t2.getText();

String dob = ((JTextField) dateChooser.getDateEditor().getUiComponent()).getText();

int year=Integer.parseInt(dob.substring(7,11));

int curyear=Calendar.getInstance().get(Calendar.YEAR);

int age=curyear-year;

String gender = null;

if(r1.isSelected()){

gender = "Male";

}else if(r2.isSelected()){

gender = "Female";

DEPARTMENT OF MCA, RVCE 41 /83


ATM SIMULATOR SYSTEM January 2022
String email = t3.getText();

String marital = null;

if(r3.isSelected()){

marital = "Married";

}else if(r4.isSelected()){

marital = "Unmarried";

}else if(r5.isSelected()){

marital = "Other";

String address = t4.getText();

String city = t5.getText();

String pincode = t6.getText();

String state = t7.getText();

try{

if(name.equals("") || !name.matches("[A-Z][a-zA-Z ]*$")){

JOptionPane.showMessageDialog(null, "Fill the field Name or with valid Name");

}else if(fname.equals("") || !fname.matches("[A-Z][a-zA-Z ]*$")){

JOptionPane.showMessageDialog(null, "Fill the field Father name or with valid


Father Name");

}else if(dob.equals("") || age<18) {

JOptionPane.showMessageDialog(null, "Not able to create account,you are


Minor");}

else if(email.equals("") || !email.matches("^(.+)@gmail.com$")) {

JOptionPane.showMessageDialog(null, "Fill the field Email or with valid Email");

}else if(address.equals("") || !address.matches("[a-zA-Z ]*$")) {

JOptionPane.showMessageDialog(null, "Fill the field Address or with valid


Address");

}else if(city.equals("") || !city.matches("[a-zA-Z]*$")) {

JOptionPane.showMessageDialog(null, "Fill the field City or with valid City");

}else if(state.equals("") || !state.matches("[a-zA-Z]*$")) {

JOptionPane.showMessageDialog(null, "Fill the field State or with valid State");

}else if(pincode.equals("") || !pincode.matches("[0-9]+")) {

DEPARTMENT OF MCA, RVCE 42 /83


ATM SIMULATOR SYSTEM January 2022
JOptionPane.showMessageDialog(null, "Fill the field Pincode or with valid
Pincode");

}else {

JDBConnection c1 = new JDBConnection();

String q1 = "insert into signup


values('"+formno+"','"+name+"','"+fname+"','"+dob+"','"+gender+"','"+email+"','"+marital+"','"+addre
ss+"','"+city+"','"+pincode+"','"+state+"')";

c1.s.executeUpdate(q1);

new Signup2(first).setVisible(true);

setVisible(false);

}catch(Exception e){

e.printStackTrace();

public static void main(String[] args){

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.*;

public class Signup3 extends JFrame implements ActionListener{

JLabel l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12;

JRadioButton r1,r2,r3,r4;

JButton b1,b2;

DEPARTMENT OF MCA, RVCE 43 /83


ATM SIMULATOR SYSTEM January 2022
JCheckBox c1,c2,c3,c4,c5,c6,c7;

String formno;

Signup3(String formno){

this.formno = formno;

setTitle("NEW ACCOUNT APPLICATION FORM - PAGE 3");

ImageIcon i1 = new
ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/logo.png"));

Image i2 = i1.getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l14 = new JLabel(i3);

l14.setBounds(150, 0, 100, 100);

add(l14);

l1 = new JLabel("Page 3: Account Details");

l1.setFont(new Font("Raleway", Font.BOLD, 22));

l2 = new JLabel("Account Type:");

l2.setFont(new Font("Raleway", Font.BOLD, 18));

l3 = new JLabel("Card Number:");

l3.setFont(new Font("Raleway", Font.BOLD, 18));

l4 = new JLabel("XXXX-XXXX-XXXX-4184");

l4.setFont(new Font("Raleway", Font.BOLD, 18));

l5 = new JLabel("(Your 16-digit Card number)");

l5.setFont(new Font("Raleway", Font.BOLD, 12));

l6 = new JLabel("It would appear on ATM Card/Cheque Book and Statements");

l6.setFont(new Font("Raleway", Font.BOLD, 12));

l7 = new JLabel("PIN:");

l7.setFont(new Font("Raleway", Font.BOLD, 18));

l8 = new JLabel("XXXX");

l8.setFont(new Font("Raleway", Font.BOLD, 18));

l9 = new JLabel("(4-digit password)");

l9.setFont(new Font("Raleway", Font.BOLD, 12));

l10 = new JLabel("Services Required:");

l10.setFont(new Font("Raleway", Font.BOLD, 18));


DEPARTMENT OF MCA, RVCE 44 /83
ATM SIMULATOR SYSTEM January 2022
l11 = new JLabel("Form No:");

l11.setFont(new Font("Raleway", Font.BOLD, 14));

l12 = new JLabel(formno);

l12.setFont(new Font("Raleway", Font.BOLD, 14));

b1 = new JButton("Submit");

b1.setFont(new Font("Raleway", Font.BOLD, 14));

b1.setBackground(Color.BLACK);

b1.setForeground(Color.WHITE);

b2 = new JButton("Cancel");

b2.setFont(new Font("Raleway", Font.BOLD, 14));

b2.setBackground(Color.BLACK);

b2.setForeground(Color.WHITE);

c1 = new JCheckBox("ATM CARD");

c1.setBackground(Color.WHITE);

c1.setFont(new Font("Raleway", Font.BOLD, 16));

c2 = new JCheckBox("Internet Banking");

c2.setBackground(Color.WHITE);

c2.setFont(new Font("Raleway", Font.BOLD, 16));

c3 = new JCheckBox("Mobile Banking");

c3.setBackground(Color.WHITE);

c3.setFont(new Font("Raleway", Font.BOLD, 16));

c4 = new JCheckBox("EMAIL Alerts");

c4.setBackground(Color.WHITE);

c4.setFont(new Font("Raleway", Font.BOLD, 16));

c5 = new JCheckBox("Cheque Book");

c5.setBackground(Color.WHITE);

c5.setFont(new Font("Raleway", Font.BOLD, 16));

c6 = new JCheckBox("E-Statement");

c6.setBackground(Color.WHITE);

c6.setFont(new Font("Raleway", Font.BOLD, 16));

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);

c7.setFont(new Font("Raleway", Font.BOLD, 12));

r1 = new JRadioButton("Saving Account");

r1.setFont(new Font("Raleway", Font.BOLD, 16));

r1.setBackground(Color.WHITE);

r2 = new JRadioButton("Fixed Deposit Account");

r2.setFont(new Font("Raleway", Font.BOLD, 16));

r2.setBackground(Color.WHITE);

r3 = new JRadioButton("Current Account");

r3.setFont(new Font("Raleway", Font.BOLD, 16));

r3.setBackground(Color.WHITE);

r4 = new JRadioButton("Recurring Deposit Account");

r4.setFont(new Font("Raleway", Font.BOLD, 16));

r4.setBackground(Color.WHITE);

ButtonGroup groupgender = new ButtonGroup();

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);

DEPARTMENT OF MCA, RVCE 46 /83


ATM SIMULATOR SYSTEM January 2022
add(r2);

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);

DEPARTMENT OF MCA, RVCE 47 /83


ATM SIMULATOR SYSTEM January 2022
c6.setBounds(350,600,200,30);

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);

public void actionPerformed(ActionEvent ae){

String atype = null;

if(r1.isSelected()){

atype = "Saving Account";

else if(r2.isSelected()){

atype = "Fixed Deposit Account";

else if(r3.isSelected()){

atype = "Current Account";

}else if(r4.isSelected()){

atype = "Recurring Deposit Account";

Random ran = new Random();

long first7 = (ran.nextLong() % 90000000L) + 5040936000000000L;

String cardno = "" + Math.abs(first7);

DEPARTMENT OF MCA, RVCE 48 /83


ATM SIMULATOR SYSTEM January 2022
long first3 = (ran.nextLong() % 9000L) + 1000L;

String pin = "" + Math.abs(first3);

String facility = "";

if(c1.isSelected()){

facility = facility + " ATM Card";

if(c2.isSelected()){

facility = facility + " Internet Banking";

if(c3.isSelected()){

facility = facility + " Mobile Banking";

if(c4.isSelected()){

facility = facility + " EMAIL Alerts";

if(c5.isSelected()){

facility = facility + " Cheque Book";

if(c6.isSelected()){

facility = facility + " E-Statement";

try{

if(ae.getSource()==b1){

if(atype.equals("")){

JOptionPane.showMessageDialog(null, "Fill all the required fields");

}else{

JDBConnection c1 = new JDBConnection();

String q1 = "insert into signup3


values('"+formno+"','"+atype+"','"+cardno+"','"+pin+"','"+facility+"')";

String q2 = "insert into login values('"+formno+"','"+cardno+"','"+pin+"')";

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();

public static void main(String[] args){

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.*;

public class Transactions extends JFrame implements ActionListener{

JLabel l1;

JButton b1,b2,b3,b4,b5,b6,b7;

String pin;

Transactions(String pin){

this.pin = pin;

ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/atm.jpg"));

DEPARTMENT OF MCA, RVCE 50 /83


ATM SIMULATOR SYSTEM January 2022
Image i2 = i1.getImage().getScaledInstance(1000, 1180, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l2 = new JLabel(i3);

l2.setBounds(0, 0, 960, 1080);

add(l2);

l1 = new JLabel("Please Select Your Transaction");

l1.setForeground(Color.WHITE);

l1.setFont(new Font("System", Font.BOLD, 16));

b1 = new JButton("DEPOSIT");

b2 = new JButton("CASH WITHDRAWL");

b3 = new JButton("FAST CASH");

b4 = new JButton("MINI STATEMENT");

b5 = new JButton("PIN CHANGE");

b6 = new JButton("BALANCE ENQUIRY");

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);

DEPARTMENT OF MCA, RVCE 51 /83


ATM SIMULATOR SYSTEM January 2022
l2.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);

public void actionPerformed(ActionEvent ae){

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);

DEPARTMENT OF MCA, RVCE 52 /83


ATM SIMULATOR SYSTEM January 2022
}else if(ae.getSource()==b7){

System.exit(0);

public static void main(String[] args){

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.*;

public class Deposit extends JFrame implements ActionListener{

JTextField t1,t2;

JButton b1,b2,b3;

JLabel l1,l2,l3;

String pin;

Deposit(String pin){

this.pin = pin;

ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/atm.jpg"));

Image i2 = i1.getImage().getScaledInstance(1000, 1180, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l3 = new JLabel(i3);

l3.setBounds(0, 0, 960, 1080);

add(l3);

l1 = new JLabel("ENTER AMOUNT YOU WANT TO DEPOSIT");

l1.setForeground(Color.WHITE);

l1.setFont(new Font("System", Font.BOLD, 16));

t1 = new JTextField();

t1.setFont(new Font("Raleway", Font.BOLD, 22));

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);

DEPARTMENT OF MCA, RVCE 54 /83


ATM SIMULATOR SYSTEM January 2022
b2.addActionListener(this);

setSize(960,1080);

setUndecorated(true);

setLocation(500,0);

setVisible(true);

public void actionPerformed(ActionEvent ae){

try{

String amount = t1.getText();

Date date = new Date();

if(ae.getSource()==b1){

if(t1.getText().equals("")){

JOptionPane.showMessageDialog(null, "Please enter the Amount to you want to Deposit");

}else{

JDBConnection c1 = new JDBConnection();

c1.s.executeUpdate("insert into bank values('"+pin+"', '"+date+"', 'Deposit',


'"+amount+"')");

JOptionPane.showMessageDialog(null, "Rs. "+amount+" Deposited Successfully");

setVisible(false);

new Transactions(pin).setVisible(true);

}else if(ae.getSource()==b2){

setVisible(false);

new Transactions(pin).setVisible(true);

}catch(Exception e){

e.printStackTrace();

public static void main(String[] args){

new Deposit("").setVisible(true);

}
DEPARTMENT OF MCA, RVCE 55 /83
ATM SIMULATOR SYSTEM January 2022
}

Depositting money will be stored in database of particular system.


Withdrawl.java :
package atmsimulator;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Date;

import java.sql.*;

public class Withdraw extends JFrame implements ActionListener{

JTextField t1,t2;

JButton b1,b2,b3;

JLabel l1,l2,l3,l4;

String pin;

Withdraw(String pin){

this.pin = pin;

ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/atm.jpg"));

Image i2 = i1.getImage().getScaledInstance(1000, 1180, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l3 = new JLabel(i3);

l3.setBounds(0, 0, 960, 1080);

add(l3);

l1 = new JLabel("MAXIMUM WITHDRAWAL IS RS.10,000");

l1.setForeground(Color.WHITE);

l1.setFont(new Font("System", Font.BOLD, 16));

l2 = new JLabel("PLEASE ENTER YOUR AMOUNT");

l2.setForeground(Color.WHITE);

l2.setFont(new Font("System", Font.BOLD, 16));

t1 = new JTextField();

t1.setFont(new Font("Raleway", Font.BOLD, 25));

b1 = new JButton("WITHDRAW");

DEPARTMENT OF MCA, RVCE 56 /83


ATM SIMULATOR SYSTEM January 2022
b2 = new JButton("BACK");

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);

public void actionPerformed(ActionEvent ae){

try{

String amount = t1.getText();

Date date = new Date();

if(ae.getSource()==b1){

if(t1.getText().equals("")){

JOptionPane.showMessageDialog(null, "Please enter the Amount to you want to


Withdraw");

}else{

JDBConnection c1 = new JDBConnection();

ResultSet rs = c1.s.executeQuery("select * from bank where pin = '"+pin+"'");

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"));

if(balance < Integer.parseInt(amount)){

JOptionPane.showMessageDialog(null, "Insuffient Balance");

return;

c1.s.executeUpdate("insert into bank values('"+pin+"', '"+date+"', 'Withdraw',


'"+amount+"')");

JOptionPane.showMessageDialog(null, "Rs. "+amount+" Debited Successfully");

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);

public static void main(String[] args){

new Withdraw("").setVisible(true);

Withdrwal function done in this snippet.

DEPARTMENT OF MCA, RVCE 58 /83


ATM SIMULATOR SYSTEM January 2022
BalanceEnquiry.java :
package atmsimulator;

import java.awt.*;

import java.awt.event.*;

import java.sql.ResultSet;

import javax.swing.*;

import java.util.*;

class BalanceEnquiry extends JFrame implements ActionListener {

JTextField t1, t2;

JButton b1, b2, b3;

JLabel l1, l2, l3;

String pin;

BalanceEnquiry(String pin) {

this.pin = pin;

ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/atm.jpg"));

Image i2 = i1.getImage().getScaledInstance(1000, 1180, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l3 = new JLabel(i3);

l3.setBounds(0, 0, 960, 1080);

add(l3);

l1 = new JLabel();

l1.setForeground(Color.WHITE);

l1.setFont(new Font("System", Font.BOLD, 16));

b1 = new JButton("BACK");

setLayout(null);

l1.setBounds(190, 350, 400, 35);

l3.add(l1);

b1.setBounds(390, 633, 150, 35);

l3.add(b1);

int balance = 0;

try{

DEPARTMENT OF MCA, RVCE 59 /83


ATM SIMULATOR SYSTEM January 2022
JDBConnection c1 = new JDBConnection();

ResultSet rs = c1.s.executeQuery("select * from bank where pin = '"+pin+"'");

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){}

l1.setText("Your Current Account Balance is Rs "+balance);

b1.addActionListener(this);

setSize(960, 1080);

setUndecorated(true);

setLocation(500, 0);

setVisible(true);

public void actionPerformed(ActionEvent ae) {

setVisible(false);

new Transactions(pin).setVisible(true);

public static void main(String[] args) {

new BalanceEnquiry("").setVisible(true);

Checking balance of an account.

FastCash.java :
package atmsimulator;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

DEPARTMENT OF MCA, RVCE 60 /83


ATM SIMULATOR SYSTEM January 2022
import java.sql.*;

import java.util.Date;

public class FastCash extends JFrame implements ActionListener {

JLabel l1, l2;

JButton b1, b2, b3, b4, b5, b6, b7, b8;

JTextField t1;

String pin;

FastCash(String pin) {

this.pin = pin;

ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("atmsimulator/icons/atm.jpg"));

Image i2 = i1.getImage().getScaledInstance(1000, 1180, Image.SCALE_DEFAULT);

ImageIcon i3 = new ImageIcon(i2);

JLabel l3 = new JLabel(i3);

l3.setBounds(0, 0, 960, 1080);

add(l3);

l1 = new JLabel("SELECT WITHDRAWL AMOUNT");

l1.setForeground(Color.WHITE);

l1.setFont(new Font("System", Font.BOLD, 16));

b1 = new JButton("Rs 100");

b2 = new JButton("Rs 500");

b3 = new JButton("Rs 1000");

b4 = new JButton("Rs 2000");

b5 = new JButton("Rs 5000");

b6 = new JButton("Rs 10000");

b7 = new JButton("BACK");

setLayout(null);

l1.setBounds(235, 400, 700, 35);

l3.add(l1);

b1.setBounds(170, 499, 150, 35);

l3.add(b1);

b2.setBounds(390, 499, 150, 35);

DEPARTMENT OF MCA, RVCE 61 /83


ATM SIMULATOR SYSTEM January 2022
l3.add(b2);

b3.setBounds(170, 543, 150, 35);

l3.add(b3);

b4.setBounds(390, 543, 150, 35);

l3.add(b4);

b5.setBounds(170, 588, 150, 35);

l3.add(b5);

b6.setBounds(390, 588, 150, 35);

l3.add(b6);

b7.setBounds(390, 633, 150, 35);

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);

public void actionPerformed(ActionEvent ae) {

try {

String amount = ((JButton)ae.getSource()).getText().substring(3); //k

JDBConnection c = new JDBConnection();

ResultSet rs = c.s.executeQuery("select * from bank where pin = '"+pin+"'");

int balance = 0;

while (rs.next()) {

if (rs.getString("mode").equals("Deposit")) {

DEPARTMENT OF MCA, RVCE 62 /83


ATM SIMULATOR SYSTEM January 2022
balance += Integer.parseInt(rs.getString("amount"));

} else {

balance -= Integer.parseInt(rs.getString("amount"));

} String num = "17";

if (ae.getSource() != b7 && balance < Integer.parseInt(amount)) {

JOptionPane.showMessageDialog(null, "Insuffient Balance");

return;

if (ae.getSource() == b7) {

this.setVisible(false);

new Transactions(pin).setVisible(true);

}else{

Date date = new Date();

c.s.executeUpdate("insert into bank values('"+pin+"', '"+date+"', 'Withdrawl',


'"+amount+"')");

JOptionPane.showMessageDialog(null, "Rs. "+amount+" Debited Successfully");

setVisible(false);

new Transactions(pin).setVisible(true);

} catch (Exception e) {

e.printStackTrace();

public static void main(String[] args) {

new FastCash("").setVisible(true);

It is snippet for fastcash.


MiniStatement.java :
package atmsimulator;

import java.awt.*;
DEPARTMENT OF MCA, RVCE 63 /83
ATM SIMULATOR SYSTEM January 2022
import java.awt.event.*;

import javax.swing.*;

import java.sql.*;

public class MiniStatement extends JFrame implements ActionListener{

JButton b1, b2;

JLabel l1;

MiniStatement(String pin){

super("Mini Statement");

getContentPane().setBackground(Color.WHITE);

setSize(400,600);

setLocation(20,20);

l1 = new JLabel();

add(l1);

JLabel l2 = new JLabel("Indian Bank");

l2.setBounds(150, 20, 100, 20);

add(l2);

JLabel l3 = new JLabel();

l3.setBounds(20, 80, 300, 20);

add(l3);

JLabel l4 = new JLabel();

l4.setBounds(20, 400, 300, 20);

add(l4);

try{

JDBConnection c = new JDBConnection();

ResultSet rs = c.s.executeQuery("select * from login where pin = '"+pin+"'");

while(rs.next()){

l3.setText("Card Number: " + rs.getString("cardno").substring(0, 4) + "XXXXXXXX" +


rs.getString("cardno").substring(12));

}catch(Exception e){}

try{

int balance = 0;
DEPARTMENT OF MCA, RVCE 64 /83
ATM SIMULATOR SYSTEM January 2022
JDBConnection c1 = new JDBConnection();

ResultSet rs = c1.s.executeQuery("SELECT * FROM bank where pin = '"+pin+"'");

while(rs.next()){

l1.setText(l1.getText() + "<html>"+rs.getString("date")+
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + rs.getString("mode") +
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + 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"));

l4.setText("Your total Balance is Rs "+balance);

}catch(Exception e){

e.printStackTrace();

setLayout(null);

b1 = new JButton("Exit");

add(b1);

b1.addActionListener(this);

l1.setBounds(20, 140, 400, 200);

b1.setBounds(20, 500, 100, 25);

public void actionPerformed(ActionEvent ae){

this.setVisible(false);

public static void main(String[] args){

new MiniStatement("").setVisible(true);

It shows the mini Statement of transaction made by particular customer.

DEPARTMENT OF MCA, RVCE 65 /83


ATM SIMULATOR SYSTEM January 2022
6.2-Implementation
Customer Authentication:
User login, uses the card number and pin number where have been provided at the time of
account creation. In this user interface customer have to provide the valid details or else he
cannt be able to login and do transactions.

3. Figure 6.1: Implementation of UI of Customer Authentication

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.

Customer Account Registration

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.

DEPARTMENT OF MCA, RVCE 66 /83


ATM SIMULATOR SYSTEM January 2022

4. Figure 6.2: Implementation of UI of Customer Authentication Registration

DEPARTMENT OF MCA, RVCE 67 /83


ATM SIMULATOR SYSTEM January 2022
Customer Account Details :

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.

5. Figure 6.3:Implementation of UI of Customer Account Details

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.

DEPARTMENT OF MCA, RVCE 68 /83


ATM SIMULATOR SYSTEM January 2022

6. Figure 6.4: Implementation of UI of Customer Transactions

DEPARTMENT OF MCA, RVCE 69 /83


ATM SIMULATOR SYSTEM January 2022

Chapter 7
Software Testing

7.1-Test Cases :

Customer Authentication Tesr Cases:

Table 7.1: Test Case table of Customer Authentication

Test Feature Sample Input Expected Actual Output Remarks


Case Tested Output (pass/fail)
ID
1 Customer Valid card, pin Authentication Authentication Pass
Validation number Successfull Successfull

2 Customer Any textfield Authentication Authentication Pass


Validation empty Unsuccessfull Unsuccessfull

3 Customer Invalid card, Incorrect Incorrect Pass


Validation pin number Credentials Credentials

4 Card Valid 16 digits Valid input Valid input Pass


Validation numeric value Invalid input Fail
5 Pin Valid 4 digits Valid input Valid input Pass
Validation numeric value Invalid input Fail

DEPARTMENT OF MCA, RVCE 70 /83


ATM SIMULATOR SYSTEM January 2022

Customer Account Registration Test Cases:

Table 7.2: Test Case table of Customer Account Registration

Test Feature Sample Input Expected Actual Output Remarks


Case Tested Output (pass/fail)

ID

1 Account Valid names Successful Successful storing Pass


Registration With storing of data of data
[a-zA-Z ]*$ Other output Fail

2 Account Valid date of Successful Successful storing Pass


Registration birth >18 years storing of data of data
Other output Fail
3 Account Valid email Successful Successful storing Pass
Registration with storing of data of data
@gmail.com Other output Fail

4 Account Valid address Successful Successful storing Pass


Registration details with [a- storing of data of data
zA-Z ]*$ Other output Fail

5 Account Valid pan with Successful Successful storing Pass


Registration [A-Z0-9]*$ ==10 storing of data of data
Other output Fail

6 Account Valid aadhar Successful Successful storing Pass


Registration 12 digit storing of data of data
number Other output Fail

DEPARTMENT OF MCA, RVCE 71 /83


ATM SIMULATOR SYSTEM January 2022

Customer Account Details Test Cases:

Table 7.3: Test Case table of Customer Account Details

Test Feature Sample Input Expected Actual Output Remarks


Case Tested Output (pass/fail)

ID

1 Account Selecting Successful Successful storing Pass


Details Account type storing of data of data

Other output Fail

2 Account Selecting Successful Successful storing Pass


Details Requirements storing of data of data
Other output Fail
3 Account Getting card Generates card Generates card Pass
Details and pin and pin and pin number
number number Other output Fail

4 Account Depositing Successful Successful deposit Pass


Details initial amount deposit of of amount
amount Other output Fail

DEPARTMENT OF MCA, RVCE 72 /83


ATM SIMULATOR SYSTEM January 2022

Customer Transactions Test Cases:

Table 7.4: Test Case table of Customer Transactions

Test Feature Sample Input Expected Actual Output Remarks


Case Tested Output (pass/fail)

ID

1 Customer Deposit Successful Successful deposit Pass


Transactions amount deposit
Other output Fail

2 Customer Withdraw Successful Successful Pass


Transactions al amount Withdrawl Withdrawl

Other output Fail

3 Customer Mini statement Getting Getting Pass


Transactions ministatement ministatement

Other output Fail

4 Customer Balance Getting Getting Balance Pass


Transactions Enquiry Balance
Other output Fail

5 Customer Pin change Successful pin Successful pin Pass


Transactions change change
Other output Fail
6 Customer Exit Exit Exit Pass
Transactions Other output Fail

6.2-Testing and Validations :

Customer Authentication :
DEPARTMENT OF MCA, RVCE 73 /83
ATM SIMULATOR SYSTEM January 2022

Figure 7.1: Authenticating customer with valid credential

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 :

15. Figure7.3: Customer Account Registration with valid credentials

16. Figure 7.4: Customer Account Registration with invalid credentials


DEPARTMENT OF MCA, RVCE 75 /83
ATM SIMULATOR SYSTEM January 2022
Customer Account Details :

17. Figure 7.5: Getting card and pin number

Customer Transactions :

18. Figure 7.6: Customer Transaction of Depositing amount


DEPARTMENT OF MCA, RVCE 76 /83
ATM SIMULATOR SYSTEM January 2022

19. Figure 7.7: Customer Transactions of Withdrawl amount

20. Figure 7.8: Customer Transactions of fastcash withdrawl amount


DEPARTMENT OF MCA, RVCE 77 /83
ATM SIMULATOR SYSTEM January 2022

21. Figure 7.9: Customer Transactions of ministatement transactions

22. Figure 7.10: Customer Transactions of pin change


DEPARTMENT OF MCA, RVCE 78 /83
ATM SIMULATOR SYSTEM January 2022

23. Figure 7.11: Customer Transactions of checking balance

DEPARTMENT OF MCA, RVCE 79 /83


ATM SIMULATOR SYSTEM January 2022

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.

DEPARTMENT OF MCA, RVCE 80 /83


ATM SIMULATOR SYSTEM January 2022

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.

DEPARTMENT OF MCA, RVCE 81 /83


ATM SIMULATOR SYSTEM January 2022

Bibliography

[1] V. Skorpil “Simulation of ATM communication system”, 1-2 Oct.


2003,IEEE/Siberian Conference on Control and Communications (IEEE Cat.
No.03EX687) 10.1109/SIBCON.2003.1335723
[2] Guoming Sung, Wen Duon Chou, Xingxi Chen. “Packet Process with Deficit
Round Robin ASIC for ATM/Ethernet Bridge.” Proceedings of the Tenth
International Conference on Information and Communication Technologies
and Development,4-January-2019 Published by : IEEE
[3] Peng, Tao, Lianying Sun, and Hong Bao. "Design and implementation of ATM
simulation system based on MVC pattern." 2010 International Conference on
Educational and Information Technology. Vol. 1. IEEE, 2010
[4] Xu, Xiaoru, Zhihao Yang, and Yunting Xian. "ATM: Attribute-Based Privacy-
Preserving Task Assignment and Incentive Mechanism for
Crowdsensing." IEEE Access 9 (2021): 60923-60933
[5] Hudgell, Alison J., and R. M. Gingell. "Assessing the capacity of novel ATM
systems." In 4th USA/Europe Air Traffic Management R&D Seminar. 2001
[6] Kreuz, Michael, Tanja Luchkova, and Michael Schultz. "Effect of restricted
airspace on the ATM system." In WCTR Conference. 2016
[7] Bilimoria, Karl D., Banavar Sridhar, Shon R. Grabbe, Gano B. Chatterji, and
Kapil S. Sheth. "FACET: Future ATM concepts evaluation tool." Air Traffic
Control Quarterly 9, no. 1 (2001)
[8] Wu, Xiaowen, Shiqi Wu, Hairong Sun, and Lemin Li. "Dynamic slot allocation
multiple access protocol for wireless ATM networks." In Proceedings of
ICC'97-International Conference on Communications, vol. 3, pp. 1560-1565.
IEEE, 1997
[9] YANG, Cheng-lei, Zhi-gang HUANG, and Jun ZHANG. "ATN and VDL2
Technique in CNS/ATM System [J]." Telecommunication Engineering 3
(2003)
[10] House, S. B., Murthy, S., & Niehaus, D. (1999, December). Proportional time
simulation of ATM networks. In Proceedings 20th IEEE Real-Time Systems
Symposium (Cat. No. 99CB37054) (pp. 279-282). IEEE

DEPARTMENT OF MCA, RVCE 82 /83


ATM SIMULATOR SYSTEM January 2022

DEPARTMENT OF MCA, RVCE 83 /83

You might also like