Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏧 iBank ATM System

A desktop ATM simulator built with Python, Tkinter, and SQLite

Python Tkinter SQLite Status


📖 Overview

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.

✨ Features

  • 🔐 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

🛠️ Technologies

Technology Purpose
Python Application logic
Tkinter Desktop graphical interface
SQLite3 Account and transaction storage
Git Version control
GitHub Source-code hosting

📁 Project Structure

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

🚀 Getting Started

Prerequisites

Make sure Python 3 is installed:

python --version

Installation

Clone the repository:

git clone https://github.com/eyadHaddad98/ATM-System-Python.git

Open the project directory:

cd ATM-System-Python

Run the application:

python main.py

On Windows, you can also use:

py main.py

🗄️ Database

The 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.

🔄 Application Flow

  1. The user enters an account PIN.
  2. The application validates the account.
  3. The user selects a banking operation.
  4. The transaction is processed.
  5. Updated information is saved in SQLite.
  6. The transaction history and receipt are generated.

🔮 Possible Future Improvements

  • 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

⚠️ Disclaimer

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 ⭐

Releases

Packages

Contributors

Languages