A console-based ATM System in Java that simulates core banking operations — including balance inquiry, cash withdrawal, deposit, and PIN management.
It features a secure login system, timestamped transactions, and a session summary for an authentic ATM experience.
This project demonstrates the implementation of basic banking logic using Java.
It focuses on modular programming, user authentication, and real-time feedback in a console environment.
Designed for learning and portfolio purposes, this simulation helps strengthen understanding of control flow, input handling, and data management in Java.
✅ 3 login attempts for PIN verification
✅ Balance inquiry with formatted output
✅ Deposit and withdrawal functionality with validation
✅ PIN change feature with confirmation
✅ Transaction counter & session summary
✅ Cross-platform screen clearing
✅ Real-time transaction timestamps using LocalDateTime
- Loops & Conditional Statements
- Static Methods (Modular Programming)
ScannerClass for InputLocalDateTimefor TimestampingProcessBuilderfor Console Management- Basic Exception Handling
🚀 Planned upgrades for future versions:
- Add multi-user support with unique accounts
- Implement transaction history tracking
- Integrate file-based storage or database (MySQL)
- Create a GUI version using JavaFX or Swing
- Include ATM card simulation and daily withdrawal limits
Pratham
🎓 Engineering Student | 💻 Aspiring Full-Stack Developer
🔗 GitHub Profile
This project is licensed under the MIT License.
You’re free to use, modify, and distribute this code with proper attribution.
⭐ If you find this project useful, don’t forget to give it a star on GitHub!
- Clone this repository: git clone https://github.com/Pratham0667/ATM-System-Java.git cd ATM-System-Java
- Complie the program javac Atmsystem.java
- run the program java Atmsystem
WELCOME TO PRATHAM'S BANK
ENTER THE PIN : 667
Welcome back, valued customer!
- CHECK BALANCE
- WITHDRAW MONEY
- DEPOSIT MONEY
- CHANGE PIN
- EXIT






