Skip to content

abdullahaziz12/Python-Atm-Simulation

Repository files navigation

🏦 ATM Management System (Python)

🚀 Overview

This project is a Command-Line ATM Management System built using Python. It simulates real-world banking operations with two roles:

  • Admin
  • Customer

The system uses file handling to store account data and provides secure login with limited attempts.


⚙️ Features

👨‍💼 Admin Panel

  • Create Admin Accounts
  • Create Customer Accounts
  • Remove Customer Accounts
  • Block Customer Accounts
  • Unblock Customer Accounts

👤 Customer Panel

  • Cash Withdrawal
  • Cash Deposit
  • Cash Transfer
  • Check Account Balance
  • Change PIN (Password)
  • Print Transaction Receipt

🧠 Concepts Used

  • Object-Oriented Programming (OOP)
  • File Handling (Data Persistence)
  • Exception Handling
  • Date & Time Handling
  • Input Validation
  • Basic Security (PIN & attempt limit)

💻 Requirements

  • Python 3.x
  • Windows OS (for msvcrt module)

📂 File Structure

<userid>_customer.txt   → Stores customer data (PIN, Balance, Attempts)
<userid>_admin.txt      → Stores admin password

🔐 Account Format

Customer File Example:

1234,5000.0,3
  • 1234 → PIN
  • 5000.0 → Balance
  • 3 → Remaining login attempts

🔄 System Workflow

🔑 Login System

  • User enters ID and PIN
  • Maximum 3 attempts allowed
  • Account gets blocked after failed attempts

💸 Transactions

  • Withdraw → Deducts balance
  • Deposit → Adds balance
  • Transfer → Moves money between accounts
  • Receipt → Shows transaction details with date & time

🛠️ How to Run

  1. Install Python 3
  2. Save the file as atm.py
  3. Open terminal / command prompt
  4. Run:
python atm.py

⚠️ Limitations

  • File-based storage (no database)
  • No encryption for PINs
  • CLI-based (no GUI)
  • Works best on Windows

🔥 Future Improvements

  • Add GUI (Tkinter / Web App)
  • Use database (MySQL / SQLite)
  • Encrypt PINs (hashing)
  • Add transaction history
  • Multi-user session handling

👤 Author

Abdullah Aziz

About

A command-line ATM Management System in Python simulating real-world banking operations — Admin and Customer roles, secure PIN login with limited attempts, cash withdrawal/deposit/transfer, balance checks, and transaction receipts, with file-based data persistence.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages