iBank ATM System is a desktop application that simulates common ATM and banking operations through a graphical user interface.
The project demonstrates GUI development, database integration, input validation, transaction processing, and persistent data storage using Python.
- 🔐 PIN-based account authentication
- 💰 Cash deposit and withdrawal operations
- 💳 Account balance management
- 🧮 Dynamic loan calculator with multiple interest-rate tracks
- 📜 Real-time transaction history
- 🧾 Receipt generation
- 💾 Persistent data storage using SQLite
- 🖥️ User-friendly graphical interface
- 🔢 Custom ATM keypad and interface assets
| Technology | Purpose |
|---|---|
| Python | Application logic |
| Tkinter | Desktop graphical interface |
| SQLite3 | Account and transaction storage |
| Git | Version control |
| GitHub | Source-code hosting |
ATM-System-Python/
├── ATM_Icon/ # Interface icons
├── ATM_Numbers/ # ATM keypad assets
├── atm_system.db # SQLite database
├── main.py # Application entry point
└── README.md # Project documentation
Make sure Python 3 is installed:
python --versionClone the repository:
git clone https://github.com/eyadHaddad98/ATM-System-Python.gitOpen the project directory:
cd ATM-System-PythonRun the application:
python main.pyOn Windows, you can also use:
py main.pyThe application uses a local SQLite database:
atm_system.db
The database stores the information required by the ATM simulator and keeps data available between application sessions. No external database server is required.
- The user enters an account PIN.
- The application validates the account.
- The user selects a banking operation.
- The transaction is processed.
- Updated information is saved in SQLite.
- The transaction history and receipt are generated.
- Password and PIN hashing
- Account lockout after repeated failed login attempts
- Improved transaction validation
- Multiple user roles
- Exportable PDF receipts
- Unit and integration tests
- Dark and light interface themes
This project is an educational ATM simulation. It is not intended for real banking operations or the storage of sensitive financial information.
If you enjoyed this project, consider giving it a ⭐