Developer: Megha Kardam
GitHub: Megha-kardam99
Language: Java 17
Type: Personal Project
A fully functional console-based ATM simulation built in Core Java.
Demonstrates OOP concepts — Classes, Encapsulation, HashMap, ArrayList.
- Secure Login with User ID + PIN (3 attempt limit)
- Transaction History — all credits, debits, transfers
- Withdraw Cash — multiples of Rs.100, max Rs.50,000
- Deposit Cash — max Rs.2,00,000
- Fund Transfer between accounts — max Rs.1,00,000
- Session logout
The project has 3 Java files inside src/atm/
- Account.java — Account model storing balance and transaction history
- BankDatabase.java — In-memory database using HashMap to store all accounts
- ATMInterface.java — Main class with all ATM menus and operations (entry point)
- Open IntelliJ IDEA
- File → Open → select this project folder
- Right-click the src folder → Mark Directory As → Sources Root
- Open ATMInterface.java → click the green Run button next to main method
| User ID | PIN | Name | Balance |
|---|---|---|---|
| MK001 | 1234 | Megha Kardam | Rs.50,000 |
| RK002 | 5678 | Rahul Kumar | Rs.75,000 |
| PS003 | 9012 | Priya Sharma | Rs.1,20,000 |
| Concept | Where used |
|---|---|
| Classes and Objects | Account, BankDatabase, ATMInterface |
| Encapsulation | All fields are private, accessed via getters |
| Constructor | Account() initializes balance and history |
| Collections | HashMap for accounts, ArrayList for history |
- Java 17
- IntelliJ IDEA Community Edition
- Core Java — no external libraries needed