Development of an Automated ATM Machine using Java
Abstract
The customers of a financial institution need to use an automated teller machine (ATM) for carrying out financial transactions without any hand from a human cashier, clerk or a bank teller. This project has been undertaken to design and develop an ATM machine software using “off-the-shelf” operating systems and programming environments as similar to any other application development. This project will be developed using Java SDK on Microsoft Windows operating system platform. The software ATM application shall take utmost care in complementing with the ATM’s physical security along with providing built-in transactional level secrecy and integrity. The application shall be developed with an aim to provide all possible functionalities to its customers such as money withdrawal and deposit, printing bank statements, updating passbooks, funds transfer etc.
Introduction
The Automated Teller Machine (ATM) is a software developed to provide ATM facilities to its customers. The web-based application shall be developed on Java platform using its features of Java Virtual Machine (JVM), garbage collection, Java run-time environment (JRE) and JVM development toolkit. Abstract Windows toolkit (AWT) shall be used to develop the graphical user interface (GUI) of the project along with NetBean IDE, all of which shall be machine independent. This essentially implies that the proposed ATM web application can be installed on multiple ATM hardware without any dependency on any particular operating system. The application shall provide user interfaces to most of the functions needed by an ATM machine and it can be used by multiple banking institutions due to its customizable interfaces. A client-server architecture shall enable the real-time processing of bank transactions.
Motivation
The basic motivation behind this project is to construct multi-vendor, multi-platform ATM application that is equipped with all the possible functions of a banking institution in terms of cash telling. With physical distances increasing in cities, it is not possible for banks today to make ATMs of their banks available in every nook and corner of the city. It is high time that the ATM applications are developed in a manner that they can accept bank cards of any native or remote institution and provide the needed functionalities. With better security technologies, it has virtually become possible now to attain this.
System Structures
For development and testing phase:
- A personal computer or laptop machine with Microsoft Windows XP sp3 / Windows 7.0 or above installed
- Java 2 Development Kit 5.0 update 7 or above
- Oracle database 10g or above
- NetBean IDE 5.0 or above
- Tomcat 5.5.27
- Internet availability
For deployment phase:
- The ATM application stack shall be loaded to a fully-equipped ATM machine with complete CPU power, chip card reader, secure crypto-processor, display monitor, function keys, in-built printer and sensors.
Functions
The basic functions expected from the ATM application are listed as below:
- Paying utility bills e.g. electricity, telephone, social security etc.
- Withdrawing money
- Depositing cash
- Updating passbooks
- Printing account statements
- Cash advances
- Cheque processing
- Credit card handling
The software can also be enhanced to provide the following additional requirements:
- Purchasing train tickets, movie tickets, lottery tickets etc.
- Donating to charitable institutions
- Buying postal stamps
- Video-conference with bank human cashiers
- Mobile phone recharging
Project Plan
Tasks | Date | Activities |
1 | 1 April – 7 April | Design the system structure and features |
2 | 8 April – 16 April | Develop GUI Interface for application |
3 | 17 April – 23 April | Design APIs |
4 | 24 April – 27 April | Build pre-database and simple JDBC and user validation |
5 | 28 April – 10 May | Develop all ATM functions |
6 | 11 May – 15 May | Test the ATM application |
7 | 16 May – 20 May | Deploy application to ATM hardware |
8 | 21 May – 25 May | Integration Testing of Project |
Conclusion
This project gives me a liberty to explore, understand and use Java development environment for an automated teller machine software. The project shall inculcate in me skills for good programming fundamentals, testing possibilities, real-time hardware integration.
This is the description of the assignment .it is an project progress report.i am uploading the project proposal document also in the attachments…please follow the proposal and develop the project progress report.for the description for the project progree report see below
Assessment 2. Project Progress Report (a.k.a Assignment 1)
The project progress report aims to provide an opportunity for students to reflect what they have achieved in the process of the project development. For the progress report, please submit a ZIP file containing the following:
Your updated proposal (Word or PDF). You can take this chance to update project proposal. The project proposal is named “Proposal.doc” or “Proposal.PDF” ;
A project progress report (Word or PDF) named “Documentation.doc” or “Documentation.PDF”. The document is typically 5-10 page long and must at least contain the following sections:
Architecture. A diagram showing the overall architecture of the project. This diagram should clearly display the different functional modules involved in the system and their interaction and relationships;
Snapshots. All the snapshots of the system interfaces that you have developed. You can capture the screen using various screen capture softwares; o
Classes. A detailed documentation of all the classes (including their fields and methods) involved in the system. You need to provide detailed description of each class, field and method regarding their meaning, usage and relationships. A hierarchy diagram of classes may be included.
