A secure and user-friendly desktop ATM simulation built with Python and Tkinter. This application allows users to log in, manage their balance, withdraw and deposit funds, view transaction history, and securely change their PIN.
- 🛡 Secure login system using PIN authentication
- 💰 Balance inquiry
- 💵 Withdrawals (up to Rs. 25,000 in multiples of Rs. 5.00)
- 💸 Deposits (up to Rs. 90,000 in multiples of Rs. 5.00)
- 🧾 Transaction logging
- 🔐 PIN change functionality
- 📜 Transaction history viewer
- 💡 User-friendly GUI with a modern design and color scheme
This app uses Tkinter's themed widgets (
ttk) for a professional GUI appearance with color styling and layouts for different operations.
.
├── users/ # Stores user data (PIN and balance)
├── transactions/ # Stores user transaction logs
├── icon.png # Optional application icon
├── atm_app.py # Main application script
└── README.md # Project documentation
- Python 3.7+
tkintermodule (comes pre-installed with standard Python distributions)
-
Clone or download this repository:
git clone https://github.com/yourusername/skf-atm-system.git cd skf-atm-system -
Run the application:
python atm_app.py
-
If
icon.pngis missing, the app will still run without it.
- Default PIN:
5678 - Default Balance:
Rs. 250,000
On first login with any new Account ID, this default information is used.
- PINs are hashed using SHA-256 for demonstration purposes.
- Data is stored as plain
.txtfiles underusers/andtransactions/.
- This application is designed for demonstration and academic purposes.
- Not intended for real banking environments.
- No real encryption or database is used beyond SHA-256 hashing.
MIT License © 2025 SKF Bank Simulation
- Inspired by modern ATM interfaces.
- Developed using Python and the
tkinterGUI toolkit.
Muhammad Saeed
AI & Data Science Enthusiast (Python)