An interactive ATM Machine Simulator built in Python using Object-Oriented Programming (OOP) principles. Designed with a clean CLI interface and security features to simulate real-world ATM operations.
✅ User account creation with:
- Name, account number, PIN, and initial deposit
- Security question for account recovery
✅ Core operations:
- 💵 Deposit funds
- 💸 Withdraw funds
- 🔄 Transfer funds between accounts
- 🧾 View transaction history
- 🔐 Change PIN with validation
- 🔒 Account lockout after 3 failed PIN attempts
✅ User-friendly CLI:
- 📜 Colored text (green for success, red for errors)
- 🖥️ ASCII art welcome screen
- 📊 PrettyTable menus for options
- 🐍 Python 3.x
- 🎨 ANSI colors for a beautiful terminal UI
- 📦 PrettyTable for menu display
ATM-Machine-Simulator/
│
├── main.py # Entry point of the simulator
│
├── atm/ # Core logic package
│ ├── account.py # Account class (balance, name, PIN, etc.)
│ ├── transaction.py # Deposit, Withdraw, Transfer logic
│ ├── atm_machine.py # ATM Machine class: manages user interactions & reports
│ └── bank.py # (Optional) Bank class for managing multiple accounts
├── tests/ # Automated tests
│ ├── test_account.py # Tests for account.py
│ ├── test_transaction.py # Tests for transaction.py
│ ├── test_atm_machine.py # Tests for atm_machine.py
│ └── __init__.py # Makes this a Python package
│
├── README.md # Project overview, installation & usage instructions
├── requirements.txt # List of dependencies (e.g., pytest)
└── LICENSE # Your chosen license (e.g., MIT)1️⃣ Clone the repository:
git clone https://github.com/thesibaram/ATM-Machine-Simulator.git
cd ATM-Machine-Simulatorpip install -r requirements.txtpython main.pyWant to contribute? Fork this repo and submit a pull request.
This project is licensed under the MIT License.