In today's fast-paced world, access to secure and easy-to-use banking systems is essential. This project offers a desktop ATM simulation built using Java Swing, designed to replicate real-world ATM operations for educational, testing, and demonstration purposes.
🖥 No internet or physical ATM hardware needed — just Java and imagination!
- Secure Login — Authenticate users with a PIN and password
- Balance Inquiry — View current account balance
- Cash Withdrawal — Withdraw fixed or custom amounts
- Deposit Funds — Add money to your savings account
- Transaction History — View session-based logs
- Logout — End session securely
Ideal for learning Java GUI development and object-oriented programming principles.
atm-simulation/ ├── ATM.java ├── ATMMain.java ├── BankAccount.java ├── BankDatabase.java ├── BasicATM.java ├── CheckingAccount.java ├── DepositScreen.java ├── InsufficientFundsException.java ├── LoginScreen.java ├── MainScreen.java ├── SavingsAccount.java ├── Transaction.java ├── TransactionHistoryScreen.java ├── WithdrawScreen.java
- Java SE
- Swing — for GUI design
- Object-Oriented Programming — for logical structuring
- File I/O (optional extension) — to persist data
- Clone the repo
git clone https://github.com/your-username/java-atm-simulator.git cd java-atm-simulator



