📌 Project Description
This project is an Advanced ATM Banking System built using Python, featuring both:
✔ A Command-Line Interface (CLI) ✔ A Graphical User Interface (GUI) using Tkinter
Unlike simple ATM simulations that store data in variables or files, this project uses a MySQL database to store real account information such as:
Username
PIN
Balance
The system allows users to securely log in, check their balance, deposit money, withdraw funds, and update their login credentials. An admin-like interface inside the GUI enables account creation, authentication, and real-time balance updates.
⭐ Key Features 🔹 1. GUI-Based ATM (Tkinter + ttk themes)
Create new accounts
Login with username/PIN
Deposit money
Withdraw money
Check account balance
Change username or PIN
Logout system
Beautiful themed UI using ttkthemes
🔹 2. MySQL Database Integration
All account data is stored in MySQL (customerInfo table). The backend supports:
Create account
Login verification
Balance fetch
Update balance on deposit/withdraw
Update credentials
🔹 3. CLI ATM Version (ATM.py)
A fully interactive console ATM is also included. Supports:
Create account (stored in program-level dictionary)
Login
Deposit
Withdraw
Balance inquiry
Change PIN
Exit system
Useful for understanding OOP concepts and ATM logic before the GUI version.
🧩 Technologies Used
Python
Tkinter / Ttk Themes
MySQL / PyMySQL
OOP Concepts
🎯 Why This Project Is Useful
Demonstrates GUI development
Shows real database integration
Implements authentication logic
Useful for students learning Python + Databases
Complete example of a mini fintech / ATM simulation