ATM machine project using java
1. Introduction
The ATM Machine Project is a software application that simulates the working of an Automated Teller Machine
(ATM).
This system allows bank customers to perform basic banking operations such as login using ATM card number
and PIN, balance inquiry, cash withdrawal, cash deposit, and mini statement without visiting the bank branch.
The project is developed using Java for application logic and MySQL for database management.
The main goal of this project is to provide a secure, fast, and user-friendly banking system.
1.1 Front End Technology
Java Swing or JavaFX
Java Swing is used to design desktop-based graphical user interfaces.
JavaFX is a modern UI framework that provides better graphics and styling.
These technologies help in creating windows, buttons, labels, text fields, and dialog boxes.
They allow users to interact with the ATM system easily using a mouse and keyboard.
1.2 Front End Components
1. Login Screen (ATM Number & PIN)
This is the first screen shown to the user.
It contains fields to enter ATM card number and PIN.
Ensures only authorized users can access the system.
2. Buttons (Login, Withdraw, Deposit, Balance, Exit)
Login Button: Verifies user credentials.
Withdraw Button: Allows the user to withdraw cash.
Deposit Button: Allows the user to deposit money.
Balance Button: Displays current account balance.
Exit Button: Logs out the user safely.
3. Text Fields
Used to enter ATM card number, PIN, and transaction amounts.
Accept numeric input for accuracy and security.
4. Labels
Used to display text such as “Enter PIN”, “Balance”, and instructions.
Helps guide the user during ATM operations.
5. Dialog Boxes (Success / Error Messages)
Display messages such as:
Login successful
Invalid PIN
Insufficient balance
Improve user interaction and clarity.
2. Back End Requirements
The back end manages application logic and database operations.
It processes user requests, validates data, and communicates with the database.
2.1 Back End Technology
Java
Handles business logic and ATM operations.
Controls transaction flow and validations.
MySQL
Stores user details, account information, and transaction records.
Ensures data consistency and security.
JDBC (Java Database Connectivity)
Connects Java application with MySQL database.
Executes SQL queries to retrieve and update data.
2.2 Database Tables
1. User Table
Stores user identification details.
user_id: Unique user identification number
card_number: ATM card number
pin: Secret PIN number
name: User name
2. Account Table
Stores account balance information.
account_id: Unique account number
user_id: Linked user ID
balance: Current account balance
3. Transaction Table
Stores transaction history.
transaction_id: Unique transaction number
user_id: User who performed transaction
transaction_type: Withdraw / Deposit
amount: Transaction amount
date: Transaction date and time
3. Project Modules
3.1 Login Module
User enters ATM card number and PIN.
System verifies details from the database.
Access is granted only if credentials are correct.
Prevents illegal access to the ATM system.
3.2 Balance Inquiry Module
Displays current account balance.
Fetches real-time balance from MySQL database.
Helps users monitor their account.
3.3 Cash Withdrawal Module
User enters withdrawal amount.
System checks whether sufficient balance is available.
Deducts amount and updates database.
Records transaction details.
3.4 Cash Deposit Module
User enters deposit amount.
Amount is added to the existing balance.
Database is updated accordingly.
Transaction is recorded for future reference.
3.5 Mini Statement Module
Displays recent transactions.
Shows transaction date, type, and amount.
Helps users track transaction history.
3.6 Exit Module
Safely logs out the user.
Ends ATM session securely.
Prevents unauthorized access after logout.