Atm Management System
Atm Management System
Atm Management System
ABSTRACT
The ATM System Simulation is a banking application developed to perform different banking
services. The following functions are included like cash deposit, cash withdrawals, balance enquiry,
cash transfer. This application is designed to maintain the information of various customers
accounts including the transactions made by the customers through the ATM System.
CHAPTER-1 INTRODUCTION
The ATM System Simulation is a java based application developed as a prototype with the similar
functionalities of real ATM (Automated Teller Machines) that includes the basic functionalities like
cash withdrawal, cash transfer, balance enquiry and other basic services to the bank customer. The
ATM system simulation designed as per the requirement of the end user in which the gateway of the
application is through the verification of primary credential details like username and PIN (Personal
Identification Number). In this application the role of PIN is the primary entity through which the
user/customer can access all the services provided by the ATM simulator. In earlier years most of
the transactions were done manually, still done but very rarely, as it is difficult task. ATM gives an
easy and faster transaction phase. Thus our project is a good task to have transactions easier and
faster. The ATM system simulation is a banking application developed to perform different banking
services through the Automated Teller Machines. It also stores the operations and transactions done
by the costumer. The End users are the respective bank customers, who can utilize the complete
services in a secured manner provided by the proposed application. The application design
maintains the database that stores and retrieves the basic information regarding the username, 4 digit
PIN, balance amount and other financial transactions of various customers by considering the
complete security and safety measures.
Problem Statement
To design and develop java based stand alone ATM (Automated Teller Machine) application that
provides the financial services to the bank customers with all the security measures through a
unique PIN and centralized database using My SQL.
Aim of Project
The application provides complete secure transactions through isolated PIN, which is an important
gateway of the application. This application is more helpful to know the complete details like
transactions done and personal information of any bank customer. If the customer is new user to the
ATM application, can get authorization by registering through the registration form provided in the
main menu. We also aimed to develop user friendly software and flexibility, which makes the end
users interact easily and provide a better updated way than the existing system.
Existing system
The current ATM system provides the services like cash transactions, by providing an authenticated
PIN in which they are more chances of hacking the secret code by the other unauthorized users or
network hackers. Through this, the system is less unreliable for the bank customers in which the
security issues are not well-defined that affects the integrity of the system.
Proposed system
To design and implement the simulated ATM system application using the java technology and
database modules. The proposed application will define the consistency, uniqueness, accuracy,
reliability, security and integrity of the ATM system trough simulation.
CHAPTER-2
HARDWARE AND SOFTWARE REQUIREMENT SPECIFICATION
CHAPTER-3
Spiral Model
Stages in SDLC
1. Feasibility analysis
2. Requirement analysis
3. Design
4. Coding
5. Testing
6. Maintenance
Feasibility analysis
Feasibility analysis includes analysis of project requirements in terms of input data and desired
output, processing required to transform input into output, cost-benefit analysis, and schedule of the
project.
Requirement analysis
Requirement analysis and specification includes gathering, analyzing, validating, and specifying
requirements. At the end of this phase, the software Requirements Specification (SRS) document is
prepared.
SRS is a formal document that acts as a written agreement between the development team and the
customer. SRS acts as input to the design phase and includes functional, performance, software,
hardware, and network requirements of the project.
Design
Design stage takes as its initial input the requirements identified in the approved requirements
document. For each requirement, a set of one or more design elements will be produced as a result
of interviews, workshops, and or prototype efforts. Design elements describe the desired software
features in details, and generally include functional hierarchy diagrams, screen layout diagrams,
tables of business rules, business process diagrams, pseudo code, and a complete entity-relationship
diagram with a full data dictionary. Design phase includes translation of the requirements specified
in the SRS into a logical structure that can be implemented in a programming language. The output
of the design phase is a design document that acts as an input.
Coding
The coding stage takes as it primary input the design elements described in the approved design
document. For each design element, a set of one or more software artefacts will be produced.
Software artifacts include but are not limited to menus, dialogs, data management forms, data
reporting formats, specialized procedures and functions. Appropriate test cases will be developed to
guide users in their interactions with the software. Coding stage includes implementation of the
design specified in the design document into executable programming language code.
Testing
Testing phase include the detection of errors in the software. The testing process starts with a test
plan that recognizes test-related activities, such as test case generation, testing criteria, and resource
allocation for testing. The code is tested and mapped against the design document created in the
design phase. The output of the testing phase is a test report containing errors that occurred while
testing the application. During the integration and test stage, the software artefacts, online help, and
test data are migrated from the development environment to a separate test environment.
Maintenance
Maintenance phase includes implementation of changes that software might undergo over a period
of time, or implementation of new requirements after the software is deployed at the customer
location. The maintenance phase also includes handling the residual errors that may exist in the
software even after the testing phase. Maintenance team will start with requirement study,
understanding of document later employee will be assigned work and they will undergo training on
that particular assigned category.
System design
The developed application is considered to the version upon the system, which is proposed to be
built with the content and touch of the My SQL as the centralized database. Java is the Front-end of
the application. The entire application is designed in eclipse.
The initial phase of the proposed application development incorporates the basic software design
models of the software engineering such as waterfall model, spiral model and conceptual model.
The very beginning of the software application involves designing of the basic prototype model with
the fundamental requirement specifications formed during the preparation of problem statement and
the objectives to reach the customer or end-user requirement. Initially the system is designed with
the following four modules
1-Registration module
2-Transaction module
3-Login module
All the above said modules are the core functionalities of the proposed ATM system simulation.
The application is developed in such a way, where any forms or module can be changed or updated
with a new requirement of the client. This flexibility in achieved through the spiral software model,
because the spiral approach is a combination of sequential and prototype. This features in spiral
model will make the software developers to include during the new software application
development, especially in developing large projects which includes a major enhancements and
frequent changes or updating to reach the client functional requirements.
Class Diagram:
Sequence Diagram:
1: Login
Banking
Verify ()
Successful Perform Transactions
Logout
End session
Activity Diagram:
Login/Registration
[INVALID]
[VALID]
Main Menu
Logout
CHAPTER-5
Implementation
Implementation is the stage of the project when the theoretical design is turned into working system.
It can be considered to be the most critical stage in achieving a successful new system and in giving
the user, confidence that the new system will work and effective. The goal of the coding phase is to
translate the design into code in the given programming language. The coding steps translate the
detailed design of the system into programming language. The translation process continues when
the compiler accepts source code as input and produces machine dependent object code as output.
Linking of object files are done to produce the machine code. Internal documentation is another
important factor, to facilitate others to understand the code and the logic.
My SQL
My SQL is a component of the LAMP web application software stack (and others), which is an
acronym for Linux, Apache, My SQL, Perl/PHP/Python. My SQL is used by many database-driven
web applications, including Drupal, Joomla, phpBB, and Word Press. My SQL is also used by many
popular websites, including Facebook, Flicker, Media Wiki, Twitter, and YouTube.
Easy to use
Eclipse
The initial codebase originated from IBM Visual Age. The Eclipse software
development kit (SDK), which includes the Java development tools, is meant for Java developers.
Users can extend its abilities by installing plug-ins written for the Eclipse Platform, such as
development toolkits for other programming languages, and can write and contribute their own
plug-in modules.
Released under the terms of the Eclipse Public License, Eclipse SDK is free and open-source
software, although it is incompatible with the GNU General Public License. It was one of the first
IDEs to run under GNU Class path and it runs without problems under Iced Tea.
Programming
Language Java
Sun Microsystems released the first public implementation as Java 1.0 in 1996. It provides no-cost
run-times on popular platforms. Fairly secure and featuring configurable security, it allowed
network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java
applets within web pages, and Java quickly became popular. Other possible advantages of Java
include
Object-oriented
Platform independence
Excellent networking capabilities
Wide variety of Application Programmer Interfaces (APIs)
Java technology is said to be platform independent due to its flexible supporting on all available
operating systems with respect to its development and compilation. (Platform represents Operating
System). Java is a platform independent programming language, because when you install Java
Development Toolkit software on your system then automatically Java Virtual Machine are installed
on your system. For every operating system separate JVM is available which is capable to read
the .class file or byte code.
Java Swing
Swing is a GUI widget toolkit for Java. Swing was developed to provide a more sophisticated set of
GUI components than the earlier Abstract Window Toolkit (AWT). Swing provides a look and
feel that emulates the look and feel of several platforms, and also allows applications to have a look
and feel unrelated to the underlying platform. It has more powerful and flexible components than
AWT. In addition to familiar components such as buttons, check boxes and labels, Swing provides
several advanced components such as tabbed panel, scroll panes, trees, tables, and lists. Unlike
AWT components, Swing components are not implemented by platform-specific code. Instead, they
are written entirely in Java and therefore are platform-independent. The term "lightweight" is used
to describe such an element.
Swing Packages
Some of the packages in Swing
1. javax.swing.text
2. javax.swing.plaf.multi
3. javax.swing.text.html
4. javax.swing.text.html.parser
5. javax.swing.text.rtf
6. javax.swing.tree
7. javax.swing.undo
8. javax.accessibility
9. javax.swing
10. javax.swing.border
Advantages of Swing
Login Page
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
WHERE UserName='"+txtuser.getText()+"'");
while(rs.next()){
strUser=rs.getString(1);
strPass=rs.getString(5);
}
if(strUser.equals(txtuser.getText()))
{ if(strPass.equals(txtpass.getText())){
ps = cn.prepareStatement("DELETE FROM tbl_Info WHERE UserName ='"+ txtuser.getText() +
"'");
ps.executeUpdate();
JOptionPane.showMessageDialog(null,"Your Account has been successfully
Lock.","ATM",JOptionPane.INFORMATION_MESSAGE);
txtuser.requestFocus(true);
txtuser.setText("");
txtpass.setText("");
}else{
JOptionPane.showMessageDialog(null,"Username found but the Pin Number is
incorrect!","Security Pass",JOptionPane.WARNING_MESSAGE);
txtpass.requestFocus(true);
}
}else{
JOptionPane.showMessageDialog(null,"Username is incorrect!","Security
Pass",JOptionPane.WARNING_MESSAGE);
txtuser.requestFocus(true);
Register Page
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
Withdraw Page
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class wdraw_trans extends JFrame implements
ActionListener{ JPasswordField txtuser=new JPasswordField(25);
JTextField txtpass=new JTextField(25);
JTextField txtwid=new JTextField(25);
JLabel lbluser=new JLabel("Pin Number: ");
JLabel lblpass=new JLabel("WithDraw: ");
JLabel lblwid=new JLabel("Balanced: ");
pane.add(txtwid);
pane.add(lbluser);
pane.add(lblpass);
pane.add(lblwid);
pane.add(btnOk);
pane.add(btnRegister);
BorderFactory.createEtchedBorder(), "Withdraw Transaction"));
JLabel lbl = new JLabel(new ImageIcon(""));
lbl.setBounds(0,0,250,200);
pane.add(lbl);
}else{ if(b<10)
{
int sum = a-b;
txtpass.setText((sum+""));
txtwid.setText("");
ps.executeUpdate();
txtuser.requestFocus(true);
}
}
}st.close();
}catch(NumberFormatException nfe){
Balance Page
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class bal_trans extends JFrame implements ActionListener{
btnOk.setForeground(Color.yellow);
btnRegister.setForeground(Color.yellow);
btnOk.setBackground(Color.black);
btnRegister.setBackground(Color.black);
setContentPane(pane);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}catch(SQLException e)
{ System.err.println("Unable to
connect"); e.printStackTrace();
}
ResultSet rs=st.executeQuery("SELECT * FROM tbl_list WHERE Password
='"+txtuser.getText()+"'");
while(rs.next())
{ txtpass.setText(rs.getString(9));
JOptionPane.showMessageDialog(null,"Record Found.","ATM
System",JOptionPane.INFORMATION_MESSAGE);
}
st.close();
}
catch(SQLException s)
{ System.out.println("No record found!\n\n\
n");
System.out.println("SQL Error" + s.toString() + " " + s.getErrorCode() + " " + s.getSQLState());
}
catch(Exception x){
System.out.println("Error" + x.toString()+" " + x.getMessage());
}
}
}
Testing
Testing is a process, which reveals errors in the program. It is the major quality measure employed
during software development. During testing, the program is executed with a set of test cases and
the output of the program for the test cases is evaluated to determine if the program is performing as
it is expected to perform.
Testing Strategies
Unit Testing
Unit testing focuses verification effort on smallest unit of software design module. All the modules
in this system are tested under this strategy of unit test. In this each line of the code were tested. We
encountered several general syntax errors, which we corrected during the compilation. In the Login
Page we check for username and password if valid username and password is given then it proceeds
to main page.
In registration module we enroll a new user with submitting primary credentials. In transaction
module we deal with all the banking services provided by the application.
Integration Testing
Integration testing ensures that software and subsystems work together a whole. It tests the
interface of all the modules to make sure that the modules behave properly when integrated
together. The goal of this testing is to detect design errors, while focusing on testing the
interconnection between modules.
In this testing we check whether the number of text fields specified in the design should match with
the number of entities in the database.
Validation Testing
The process of evaluating software during the development process or at the end of the
development process to determine whether it satisfies specified requirements. Validation Testing
ensures that the product actually meets the client's needs. It can also be defined as to demonstrate
that the product fulfils its intended use when deployed on appropriate environment.
System Testing
Here the entire software system is tested. The reference document for this process is the
requirements document, and the goals to see if software meets its requirements. Here entire
software has been tested against requirements of project and it is checked whether all requirements
of project have been satisfied or not.
Register Page
Deposit
Withdraw Page
Transfer Page
Balance enquiry
Logout
CHAPTER-9
Conclusion
The ATM system simulator is designed and implemented to reach the functional requirements and
objectives of the end user. The system is secured by providing the authenticated 4 digit PIN, which
is the gateway to the application. The customer can function all the transactions in a secured manner
and use the application at any time in any place. This system is designed to benefit all its customers
to use in more effective & authenticated way. This simulator will provide the environment in which
new enhancements can be performed on it.
Future enhancement
The following enhancements can be done for the project.
Use of Bio-metric authentication (Finger Print) can improve more security.
Mini statement field can be added for the application.
Improved GUI can be updated.
Bibliography
Books Referred
JAVA 5 Programming (Black book) by Kogent Solutions
Core Java 1.5 (Advance Features) by Cary Hortsman
Software Engineering Principles by Roger Pressmen
JAVA Complete Reference
Websites Referred
www.google.com
www.java.sun.com
www.sourcecode.com