This project is a Command-Line ATM Management System built using Python. It simulates real-world banking operations with two roles:
- Admin
- Customer
The system uses file handling to store account data and provides secure login with limited attempts.
- Create Admin Accounts
- Create Customer Accounts
- Remove Customer Accounts
- Block Customer Accounts
- Unblock Customer Accounts
- Cash Withdrawal
- Cash Deposit
- Cash Transfer
- Check Account Balance
- Change PIN (Password)
- Print Transaction Receipt
- Object-Oriented Programming (OOP)
- File Handling (Data Persistence)
- Exception Handling
- Date & Time Handling
- Input Validation
- Basic Security (PIN & attempt limit)
- Python 3.x
- Windows OS (for
msvcrtmodule)
<userid>_customer.txt → Stores customer data (PIN, Balance, Attempts)
<userid>_admin.txt → Stores admin password
1234,5000.0,3
1234→ PIN5000.0→ Balance3→ Remaining login attempts
- User enters ID and PIN
- Maximum 3 attempts allowed
- Account gets blocked after failed attempts
- Withdraw → Deducts balance
- Deposit → Adds balance
- Transfer → Moves money between accounts
- Receipt → Shows transaction details with date & time
- Install Python 3
- Save the file as
atm.py - Open terminal / command prompt
- Run:
python atm.py
- File-based storage (no database)
- No encryption for PINs
- CLI-based (no GUI)
- Works best on Windows
- Add GUI (Tkinter / Web App)
- Use database (MySQL / SQLite)
- Encrypt PINs (hashing)
- Add transaction history
- Multi-user session handling
Abdullah Aziz