You are on page 1of 70

INDEX

TOPIC PAGE NO.

1. INTRODUCTION…………………………………….
2. REVIEW OF LITERATURE………………………….
3. PLANNIG…………………………………..
4. DESIGN……………………………………….
5. CODING………………………………………………
6. OUTPUT……………………………………….
7. USER MANUAL………………………………………
8. TESTING…………………………………………….
9. COSTING…………………………………………..
10.FUTURE IMPLEMENTATION……………………..
11.CONCLUSION……………………………………..
12.BIBLIOGRAPHY………………………………

1
INTRODUCTION

2
INTRODUCTION

This application which we have built is to be used anywhere portably. During any situation where the customer
forgets to carry ATM card in any place. This helps the customer to roam freely without any tension of carring
ATM cards which can be a very hetic job.

A Cardless Cash Withdrawal transaction enables the sender to


transfer cash from your any Bank account to anyone with a valid mobile number across India. The recipient can
withdraw the amount from any specified any Bank ATM without having to use a debit or a credit card. For the
Cardless Cash Withdrawal enabled ATM list.

The Cardless Cash Withdrawal service has an advantage over the


existing fund transfer service, as it enables the user to transfer funds from his/her Bank account to any person
with or without a bank account. It also empowers the recipient to withdraw the amount from any specified
Bank ATM without using any debit or credit card. For the Cardless Cash Withdrawal enabled ATM list.

We developing this project with keeping all details & problem. So in this
Project it take Data from customer and provide some service such as:-

 24X7 service to send and withdraw cash, anywhere in India


 The recipient need not hold a bank account
 Safe and secure mode of cash transfer using Internet Banking
 Obtain the cash instantly without any ATM card
 Cash withdrawal is available from a large network
3
AIMS AND OBJECTIVES

The main objective of this project is to reduce the human effort taken. Since now a days the
customer has to use an ATM card for money transaction , but here the customer can withdraw money
without any effort and without any use of ATM card.

A Cardless Cash Withdrawal transaction enables the sender to withdraw cash from your any Bank
account to anyone with a valid IMEI number across India. The recipient can withdraw the amount from any
specified any Bank ATM without having to use a debit or a credit card.

 To reduce human efforts regaurding carring ATM cards.

 The objective of this project is to maintain integrity & every details


about the customer to use it as information in ATM transactions.

 This is data retrieval front end and back end database project.

 It gives easy user interface that any user can insert, retrieve and view
data according to its need.

 It has all the facility that makes the working fast & gives good
facility to maintain & store all the data.

 Retrieval should very fast.

 It saves time and manual efforts.

 It gives all the facilities to view the records according to the user
need like its previous record.
4
PURPOSE OF THE SOFTWARE

The main purpose of this project is to provide every customer an easy and portable way to transact money
and access his/her account anywhere.

Benefits of Cardless Cash Withdrawal

 Funds transfer is very easy and secured


 Most importantly, when you need cash on an urgent basis but your ATM card is lost, then this system
will come to you your rescue
 Transaction can be done 24*7
 Cash can be withdrawn at select ATM centres across India depending on the bank
 Recipient is not required to have bank account. This is the most distinguishing feature of this service.

5
PROJECT CATEGORY

This project is mainly based on android development. Android is an open source


project developed by the Open Handset Alliance and held by Google Inc. It is often wrongly attributed to the
operating system based on Linux kernel alone, but in fact it contains a middleware and a variety of additional
applications.
For these reasons it is more fair to say that Android is a software stack for mobile devices
[AND].
All phones running the Android system come with a range of pre-installed applications like Maps, Google
Search, Gmail or YouTube.

6
REVIEW OF LITERATURE

7
Review of Literature

Back-End : MySQL:-

MySQL is an open-source relational database management system(RDBMS) in July 2013, it was


the world's second most widely used RDBMS, and the most widely used open-sourceclient–server
model RDBMS. It is named after co-founder Michael Widenius's daughter,

My The SQL acronym stands for Structured Query Language. The MySQL development project
has made its source code available under the terms of the GNU General Public License, as well as under a
variety of proprietary agreements.

MySQL was owned and sponsored by a single for-profit firm, the Swedish company MySQL AB,
now owned by Oracle Corporation. For proprietary use, several paid editions are available, and offer additional
functionality.

Features of MySQL :


A broad subset of ANSI SQL 99, as well as extensions

Cross-platform support


Stored procedures, using a procedural language that closely adheres to SQL/PSM[73]


Triggers


Cursors


Updatable views

8

Online DDL when using the InnoDB Storage Engine.


Information schema

Front-End :
Java is the programming language originally develpoed by “ James Gosling “ at “sun-
Microsystem”. This language drives much of its syntax from C and C++ but has a simple object model
and fewer low facilities.

Java applications are typically compiled to byte code that can run on any “ Java Virtual
Machine “ (JVM) regardless of configuration.

Java is currently one of the most popular programming languages in use and it is widely used
form application software to web application.

Why using JAVA ?

 Compiled and Interpreted


 Platform-Independent and Portable
 Object – Oriented
 Robust and Secure
 Distributed
 Familiar, Simple and Small
 Multithreaded and Interactive
 High Performance
 Dynamic and Extensible

Features:

9
1. Simple:
If we know C++, reading, writing, understanding java programs easy.
2. Object oriented:
It is true OPP language. Almost everything in the JAVA is the objects .It
contains OOP like class, object, constructors, inheritance, polymorphism and so on.
3. Compiled and interpreted:
Java programs are compiled to create . class files. It is also called
bytecode file. It is intermediate code between source code and executable code. Because of byte code file
, java is platform independent and architecture neutral. Java programs are compiled according to JVM (Java
Virtual Machine). This JVM is part of java software. It contains universal configuration . byte code file is
interpreted to get output.
4. Platform independent & portability:
The byte code file of one operating system is operated at any type
of other operating system. Most significant contribution of JAVA all over the language is that its Portability. It
can be transfer or moved to any where any time.
5. Architecture Neutral:
The byte code file of one pc configuration is operated at any type of other
configuration.
6. Multithreaded:
Java is used to develop multi process applications.
7. High performance:
Have impressive performance for interpreted languages, due to the use of Byte code .
Speed is comparable to the C & CPP .In architecturethe over heads are reduced during run time.

Java Applets & Applications

10
Java can be used to create two types of programs : applications and applets. An application is a
program that runs on your computer, under the operating system of that computer. That is, an application
created by Java is more or less like one created using C or C++. When used to create applications, Java is
not much different from any other computer language. Rather, it is Java's ability to create applets that
makes it important.
An applet is an application designed to be transmitted over the Internet and executed by a Java-
compatible Web browser. An applet is actually a tiny Java program, dynamically downloaded across the
network, just like an image, sound file, or video clip.
The important difference is that an applet is an intelligent program, not just an animation or media file.
In other words, an applet is a program that can react to user input & dynamically change - not just run the same
animation or sound over and over.
As exciting as applets are, they would be nothing more than wishful thinking if Java were not able
to address the two fundamental problems associated with them: security & portability. Before continuing,
let's define what these two terms mean relative to the Internet.

Security :
As you are likely aware, every time that you download a "normal" program, you are
risking a viral infection. Prior to Java, most users did not download executable programs frequently, and
those who did scanned them for viruses prior to execution.
This type of program can gather private information, such as credit card numbers, bank
account balances, and passwords, by searching the contents of your computer's local file system. Java
answers both of these concerns by providing a "firewall" between a networked application and your
computer.
When you use a Java-compatible Web browser, you can safely download Java applets without
fear of viral infection or malicious intent . Java achieves this protection by confining a Java program to
the Java execution environment and not allowing it access to other parts of the computer.
The ability to download applets with confidence that no harm will be done and that no security
will be breached is considered by many to be the single most important aspect of Java.

Requirment for the proposed system :-

11
The user is expected to ensure that the minimum system requirement for loading the software are
satisfied. The requirement are given in following section.
The hardware and software environment in which this package was developed are given below. It is
necessary in the part of the user to make sure that the hardware and the software they uses is given compatible
to the specification given below:

SOFTWARE SPECIFICATION:

 Operating System: Andoid 2.1 or more


 Programing Langauge: JAVA
 Database: MySQL

HARDWARE SPECIFICATION :

 ATM Machine
 Android Mobile

12
PLANNING

13
Planning
To develope this project what we did is we learnt “ How to transact money without using ATM cards“,
We saw how they are maintaining their records of customer.
We took many details from customer like name, card number, imei number etc.

Months
January February March
Weeks
Analysis
1.
Task Division
2.
Admin Module
3.
Registration
4.
Module
Learning Administrator
1.
Module
User Registration Module
2.
Tracer module
3.
Testing
4.
Testing
1.
Testing
2.
Thesis work
3.
Finalizing
4.

14
DESIGN

15
Design

16
CODING

17
Login form coding:-
package com.projects.atmsecurity;

import android.app.Activity;

import android.content.Intent;

import android.os.AsyncTask;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class Login extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.login);

final EditText txtAcc = (EditText)findViewById(R.id.txtScreen1CardNumber);


18
final EditText txtPassword = (EditText)findViewById(R.id.txtScreen1Password);

final Button btnLogin = (Button)findViewById(R.id.btnLogin);

btnLogin.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

AsyncTask<String, String, Void> atask = new AsyncTask<String, String, Void>()

@Override

protected void onPreExecute() {

// TODO Auto-generated method stub

super.onPreExecute();

Toast.makeText(Login.this, "Logging in", Toast.LENGTH_LONG).show();

@Override

protected Void doInBackground(String... params) {

String resp = WebFunctions.getWebResponse(WebFunctions.SERVER_OPERATIONS + "?acc=" +


txtAcc.getText().toString() + "&pin=" + txtPassword.getText().toString() + "&op=login");

19
publishProgress(resp);

return null;

@Override

protected void onProgressUpdate(String... values) {

// TODO Auto-generated method stub

super.onProgressUpdate(values);

String resp = values[0];

if(resp.trim().equals("1"))

Intent intMain = new Intent(Login.this, MainActivity.class);

startActivity(intMain);

Toast.makeText(Login.this, "Login Success", Toast.LENGTH_SHORT).show();

else

Toast.makeText(Login.this, "Invalid Login", Toast.LENGTH_SHORT).show();

txtAcc.setText("");
20
txtPassword.setText("");

};

atask.execute("");

});

}}

21
Coding of Main Activity :-
package com.projects.atmsecurity;

import java.util.ArrayList;

import android.os.AsyncTask;

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.telephony.TelephonyManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

22
public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final TextView lblIMEI = (TextView)findViewById(R.id.lblIMEI);

final EditText txtCard = (EditText)findViewById(R.id.txtCard);

final EditText txtName = (EditText)findViewById(R.id.txtName);

final EditText txtAmount = (EditText)findViewById(R.id.txtAmount);

final EditText txtPassoword = (EditText)findViewById(R.id.txtPin);

final Button btnCode = (Button)findViewById(R.id.btnCode);

final TextView lblCode = (TextView)findViewById(R.id.lblCode);

final ListView lstCards = (ListView)findViewById(R.id.lstCards);

final String imei = ((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();

lblIMEI.setText(imei);

//Get the cards from the server

AsyncTask<String, String, Void> atask = new AsyncTask<String, String, Void>() {


23
@Override

protected Void doInBackground(String... params) {

// TODO Auto-generated method stub

String resp = WebFunctions.getWebResponse(WebFunctions.SERVER_OPERATIONS + "?


op=get_cards&imei="+imei);

publishProgress(resp);

return null;

@Override

protected void onProgressUpdate(String... values) {

super.onProgressUpdate(values);

String resp[] = values[0].split(";;;");

ArrayList<String> arrNum = new ArrayList<String>();

for(String acc:resp)

String[] dat = acc.split(",,,");

if(dat.length == 3)

24
String num = dat[0];

String name = dat[1];

String password = dat[2];

arrNum.add(num + "," + name + "," + password);

lstCards.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,arrNum));

};

atask.execute("");

btnCode.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

final String imei = lblIMEI.getText().toString();

final String card = txtCard.getText().toString();

final String amount = txtAmount.getText().toString();

25
final String password = txtPassoword.getText().toString();

final String name = txtName.getText().toString();

String code = imei + card + amount + password;

try

int code_val = 0;

for(int count=0;count<code.length();count++)

code_val = code_val + (int)code.charAt(count);

lblCode.setText("Code is " + code_val);

final int out_code = code_val;

AsyncTask<String, String, Void> atask = new AsyncTask<String, String, Void>()

ProgressDialog pd;

protected void onPreExecute()


26
{

super.onPreExecute();

pd = ProgressDialog.show(MainActivity.this, "Wait while we register you", "Registering the transaction");

};

@Override

protected Void doInBackground(String... params)

String query = "?imei=" + imei + "&name=" + name + "&acc_num=" + card + "&password=" + password +
"&code=" + out_code + "&amount=" + amount + "&op=check_user";

String resp = WebFunctions.getWebResponse(WebFunctions.SERVER_OPERATIONS + query);

publishProgress(resp);

return null;

protected void onProgressUpdate(String... values)

super.onProgressUpdate(values);

String resp[] = values[0].split(",");

27
if(resp.length == 2)

if(resp[0].equals("0"))

Toast.makeText(MainActivity.this, "Invalid user", Toast.LENGTH_LONG).show();

else

Toast.makeText(MainActivity.this, "Transaction added to database", Toast.LENGTH_LONG).show();

AlertDialog.Builder abuild = new AlertDialog.Builder(MainActivity.this);

abuild.setMessage("Your OTP is " + out_code);

abuild.setTitle("Transaction added");

abuild.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();

});

abuild.create().show();
28
}

else

Toast.makeText(MainActivity.this, "Invalid Response from Server", Toast.LENGTH_LONG).show();

};

protected void onPostExecute(Void result)

pd.dismiss();

};

};

atask.execute("");

catch(Exception ex)

}
29
});

Coding of web function :-


package com.projects.atmsecurity;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

public class WebFunctions

public static String BASE_URL = "http://www.unhackers.com/atm_security/";

public static String SERVER_OPERATIONS = BASE_URL + "server.php";

public static String getWebResponse(String URL)

try

30
HttpClient http = new DefaultHttpClient();

HttpGet http_get = new HttpGet(URL);

HttpResponse http_response = http.execute(http_get);

HttpEntity http_entity = http_response.getEntity();

BufferedReader br = new BufferedReader(new InputStreamReader(

http_entity.getContent()));

String result = "";

String one_line = "";

while ((one_line = br.readLine()) != null)

result = result + one_line;

return result;

catch (Exception ex)

return "Error:" + ex.getMessage();

}
31
Coding of ATM interface :-
<?php

// Page créé par Shepard [Fabian Pijcke] <Shepard8@laposte.net>

// et Romain Bourdon <romain@anaska.com>

// pour WAMP5

//afficher phpinfo

if (isset($_GET['phpinfo']))

phpinfo();

exit();

// Définition de la langue et des textes

32
if (isset ($_GET['lang']))

$langue = $_GET['lang'];

elseif (preg_match("/^fr/", $_SERVER['HTTP_ACCEPT_LANGUAGE']))

$langue = 'fr';

else

$langue = 'en';

$langues = array(

'en' => array(

'langue' => 'English',

'autre_langue' => 'version française',

'autre_langue_lien' => 'fr',

'titre_html' => 'WAMP5 Homepage',

'titre_conf' => 'Server Configuration',

'versa' => 'Apache version :',

'versp' => 'PHP version :',

'versm' => 'MySQL version :',


33
'php_ext' => 'Loaded extensions : ',

'titre_page' => 'Tools',

'mysqlerror1' => 'MySQL not launched or bad phpmyadmin config',

'mysqlerror2' => 'phpmyadmin connection not available',

'txt_projet' => 'Your projects',

'txt_no_projet' => 'No project yet.<br />To create a new one, just create a directory in \'www\'.',

'txt_alias' => 'Your aliases',

'txt_no_alias' => 'No Alias yet.<br />To create a new one, use the WAMP5 menu.',

'faq' => 'http://www.en.wampserver.com/faq.php',

),

'fr' => array(

'langue' => 'Français',

'autre_langue' => 'english version',

'autre_langue_lien' => 'en',

'titre_html' => 'Accueil WAMP5',

'titre_conf' => 'Configuration Serveur',

'versa' => 'Version de Apache:',

'versp' => 'Version de PHP:',

'versm' => 'Version de MySQL:',

'php_ext' => 'Extensions chargées: ',


34
'titre_page' => 'Outils',

'mysqlerror1' => 'MySQL n\'est pas lanc&eacute; ou votre configuration phpmyadmin n\'est pas bonne.',

'mysqlerror2' => 'connexion de phpmyadmin non disponible',

'txt_projet' => 'Vos projets',

'txt_no_projet' => 'Aucun projet.<br /> Pour en ajouter un nouveau, cr&eacute;ez simplement un
r&eacute;pertoire dans \'www\'.',

'txt_alias' => 'Vos alias',

'txt_no_alias' => 'Aucun alias.<br /> Pour en ajouter un nouveau, utilisez le menu de WAMP5.',

'faq' => 'http://www.wampserver.com/faq.php'

),

'all' => array(

'version' => '1.7.4',

'phpmyadmin' => 'PHPmyadmin 2.11.2.1',

'sqlitemanager' => 'SQLitemanager 1.2.0'

);

// Version d'apache.

$apache_version = explode('PHP', apache_get_version());

35
// Version de MySQL.

$pma_conf_file = 'c:/wamp/phpmyadmin/'.'config.inc.php';

if (file_exists($pma_conf_file))

include ($pma_conf_file);

if (extension_loaded('mysql'))

if ($link = @mysql_connect('localhost',$cfg['Servers']['1']['user'] ,$cfg['Servers']['1']['password']))

$mysql_version = mysql_get_server_info();

else

$mysql_version = $langues[$langue]['mysqlerror1'];

if (extension_loaded('mysqli'))

if ($link = @mysqli_connect('localhost',$cfg['Servers']['1']['user'] ,$cfg['Servers']['1']['password']))

$mysql_version = mysqli_get_server_info($link);

else

$mysql_version = $langues[$langue]['mysqlerror1'];

else

$mysql_version = $langues[$langue]['mysqlerror2'];
36
echo '<?xml version="1.0" encoding="iso-8859-1"?>';

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">

<html>

<head>

<title><?php echo $langues[$langue]['titre_html'] ?></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<style type="text/css">

.txtsouligne {text-decoration: underline;}

.clearer { clear: both; }

.clearer2 { clear: both; padding-top: 5px; border-bottom: groove #888888 3px; }

DIV.all { width: 70%; border: groove #888888 3px; margin-left: auto; margin-right: auto; text-align: left;
background-color: #EDEDED; padding: 0; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style:
normal; font-weight: normal; color: #000000;}

DIV.cell { padding: 3px; }

37
SPAN.header_bar { display: block; float: right; margin-top: 100px; }

a:link { color: #003366; text-decoration: none; }

a:hover { text-decoration: underline; color: #003366; }

a:visited { color: #003366; text-decoration: none; }

a:visited:hover { color: #003366; text-decoration: underline; }

H1 { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-weight: bold; text-
decoration: underline; color: #000000; margin: 0; padding: 0; padding-left: 15px; padding-top: 15px; }

DIV.content { padding-left: 30px; padding-top: 5px; }

DIV.vitem { float: left; width: 250px; clear: both; }

DIV.vright { float: left; padding-left: 20px; font-style: italic; width: 50%; }

A.ditem { display: block; float: left; width: 500px; clear: both; }

A.dright { float: left; padding-left: 50px; font-style: italic; width: 50%; }

IMG { border: 0; }

DIV.footer { font-size: 10pt; text-align: right; height: 28px; padding-right: 5px; vertical-align: top; }

</style>

</head>

<body style="text-align: center;">

<div class="all">

<div class="cell">

<img src="logo_i.gif" alt="logo" style="float: left;" />

<span class="header_bar">Version

38
<?php

echo $langues['all']['version'];

echo ' - <a href="?lang='.$langues[$langue]['autre_langue_lien'].'">'.$langues[$langue]['autre_langue'].'</a>';

?>

</span>

</div>

<div class="clearer2"></div>

<div class="cell">

</div>

<h1><?php echo $langues[$langue]['titre_conf']; ?></h1>

<div class="content">

<div class="vitem"><?php echo $langues[$langue]['versa']; ?></div>

<div class="vright"><?php echo $apache_version[0]; ?></div>

<div class="vitem">&nbsp;</div>

<div class="vitem"><?php echo $langues[$langue]['versp']; ?></div>

<div class="vright"><?php echo phpversion(); ?></div>

<div class="vitem">&nbsp;</div>

<div class="vright"><div class="txtsouligne"><?php

echo $langues[$langue]['php_ext'].'</div>';

$loaded_extensions = get_loaded_extensions();

$separateur = '';

foreach ($loaded_extensions as $extension)


39
{

echo $separateur.$extension;

$separateur = ', ';

?>

</div>

<div class="vitem">&nbsp;</div>

<div class="vitem"><?php echo $langues[$langue]['versm']; ?></div>

<div class="vright"><?php echo $mysql_version; ?></div>

</div>

<div class="clearer"></div>

<h1><?php echo $langues[$langue]['titre_page']; ?></h1>

<div class="content">

<div class="vitem"><a href="?phpinfo=1">phpinfo( )</a></div>

<div class="vitem"><a href="phpmyadmin/"><?php echo $langues['all']['phpmyadmin']; ?></a></div>

<div class="vitem"><a href="sqlitemanager/"><?php echo $langues['all']['sqlitemanager']; ?></a></div>

</div>

<div class="clearer"></div>

<h1><?php echo $langues[$langue]['txt_projet']; ?></h1>

<div class="content">

<?php

// Affichage de la liste des dossiers non énumérés plus haut ( = projets ).


40
$list_ignore = array ('.','..','exemples','phpmyadmin','sqlitemanager');

$handle=opendir(".");

$msg = $langues[$langue]['txt_no_projet'];

while ($file = readdir($handle)) {

if (is_dir($file) && !in_array($file,$list_ignore)) {

$msg = '';

echo '<a class="ditem" href="'.$file.'"><img src="dossier.gif" alt="image dossier" /> '.$file.'</a>';

closedir($handle);

echo $msg;

?>

</div>

<div class="clearer">&nbsp;</div>

<h1><?php echo $langues[$langue]['txt_alias']; ?></h1>

<div class="content">

<?php

// Affichage des alias

$alias_dir = 'c:/wamp/apache2/conf/alias/';

$handle=opendir($alias_dir);

$msg = $langues[$langue]['txt_no_alias'];
41
while ($file = readdir($handle)) {

if (is_file($alias_dir.$file) && ereg('.conf',$file)){

$msg = '';

echo '<a class="ditem" href="'.ereg_replace('.conf','',$file).'/"><img src="dossier.gif" alt="image dossier" />


'.ereg_replace('.conf','',$file).'</a>';

closedir($handle);

echo $msg;

?>

</div>

<div class="clearer">&nbsp;</div>

<div class="clearer"></div>

<hr />

<div class="footer">

<a href="<?php echo $langues[$langue]['faq']; ?>">faq</a>

- <a href="http://www.anaska.com">Powered by Anaska - created by Romain Bourdon</a>

</div>

</div>

</body>

</html>

42
OUTPUT

43
ATM App Login form :-

Main menu form:-

44
OTP generate Form :-

45
Atm machine login form :-

46
47
Amount & OTP form :-

48
Transaction success form :-

49
USER MANUAL

50
51
52
53
54
55
56
TESTING

57
Testing

Testing is process of executing software with intention of finding bugs. It helps us to identify
correctness, completeness, security, quality with reliability and uasbility.

There are two primary methods by which test can be assigned and they are :-
 White - Box testing
 Black - Box testing

White-Box Testing :
It deals with the internal logic and stucture of code. The test written based on the white box
testing strategy incorporate coverage of code written, paths and internal logic of code, etc.

The testing has to deal with the code hence is needed to pass knowledge of coding and logic.

Black-Box Testing :
It is a type of test which tests the software without having an insight
details of the coding. In this we did not need to know what happens inside the software “box”,
we only need to know what should be input, output and the operations.

Table for testing of “login form” :-

Sr.no Variables Types Result Status

1. Card No. Number Accept pass

58
2. Password Number Accept pass

Table for testing of “main activity” :-

Sr.no Variables Types Result Status

1. Card no Number Accept Pass

2. Name Text Accept Pass

3. Amount Number Accept Pass

4. PIN Number Accept Pass

5. OTP Number Accept Pass

Table for testing of “employee form” :-

Sr.no Variables Datatypes Result Status

1. Card no Varchar Accept Pass

2. PIN Varchar Accept Pass

3. Amount Varchar Accept Pass

4. PIN Varchar Accept Pass

59
Formal review :
It is the process through which static white box testing is performed. The formal review can range from a simple
meeting between two programs to regarous inspection of software design on its code.

There are four essential elements of formal review :

 Identify rules
 Follow rules
 Prepare
 Write a report

Types of Reviews :-

 Peer Review
 Walkthrough Review
 Inspection Review

Walkthrough Review :-
In this , the programmer who wrote the code present it to a small group of five or more, so other programmers
and tester should recive copies of software in advance so they can examine it.

60
VALIDATIONS

There are basically two types of validations

 File level validations


 Form level validations

It is not possible that every data feed to the computer must be acceptable. Sometimes the operator feed
some wrong data but machines have validation for checking the data whether it is valid or not. It executes the
date if the date is not valid and it gives message to the end user.

This type of security is only due to validation of machine or computer is used e.g. in the present system,
if the user enters the date in dd/mm/yy format then it gives you a message “Invalid Entry please enter date in
dd-mm-yy” format. Since date is in dd-mm-yy format. This process will be continuing until the user enters the
valid date. The procedure of validation and execution of the data is the self adjusting of the computer, which is
the vital point of the computer system.

MAINTENANCE
61
After the system is implemented it must be maintained. All the program modules must be periodically
modified and kept up to date. Maintenance is performed for two reasons. Firstly, to correct system errors, no
matter how thoroughly the system is tested, some bugs or errors are always present in computer programs.
Secondly, to enhance the system’s capability to respond to changing organizational needs.

Users often request additional features after they become familiar with the computer system and its
capabilities. Hardware and software also change at an accelerated rate. So, this phase of maintenance is of
utmost importance in system development.
The total cost of system maintenance may exceed that of system development. So, at certain point it becomes
more feasible to perform a new system development instead of maintaining the old system.

Hence, in the maintenance phase all types of feasibilities should be considered.

62
COSTING

Costing

In developing any project , it may be a small or big costing plays an important role in project. The project
should be cost-efficient, reliable and within our fixed budget .

It includes all those things such as software cost, books cost, internet usage cost, hardware cost, etc. it includes
all those thing for which we had to pay money .

The description is as follows :-

Sr .no Particulars Cost (in


Rupees)

1. Java App Free

63
2. PHP 2500/-

3. Internet usage 800/-

4. Documentation 2500/-

5. Other 1400/-

Total 7,200/-

FUTURE

64
IMPLEMENTATION

65
Future Scope

In any normal computer application there is scope for future improvement.

In this application also, there is scope for development of the future. For example, in the current application will
be avilble for all platforms like ios and windows based mobile phones.
When in crisi if there is no internet connection with the customer the bank atm will also provide a short range
wi-fi system which the customer will only use for transaction.
This otp generation system will also be available on a web page system which will ensure that customers can
aaccess the atm system anywhere.

66
CONCLUSION

67
Conclusion

We have completed our project successfully . We faced problems during development of the project but due to
our team work we overcame it easily.

For the future use, our project will be implemented in successful manner. Our project is very simple, reliable
and cost efficient.it doesnot need any maintainance but it needs updations after certain interval of time.
Maintaining database, retrieving data, adding data and many such functions are very easily done. Our project is
user friendly.

After finishing our project , now came to know how to analyse and design the software and how to divide
software in modules.

68
BIBLIOGRAPHY

69
BIBLIOGRAPHY

Books Reffered :

1. The Complete Reference-Java 2 - Herbert Schildt


(Tata McGraw Hill Publlication-2001)

2. Programming with Java-A Primer - E. Balgurusamy


(Tata McGraw Hill Publlication-2001)

3. An Introduction to OOP with JAVA - Thomas Wu


(Tata McGraw Hill Publlication-2001)

4. Mastering Access 2000 (Sybex Publication-2002)

Web sites visited :


www.sun.java.com
www.microsoft.com
www.opensource.com
www.wikipedia.com
www.webopedia.com

70

You might also like