/BankingSystem-Python-OOP

This Python OOP application lets users manage checking and savings accounts—view balances, deposit, withdraw, and transfer funds with real-time updates after each transaction.

Primary LanguagePython

🍱 Banking System With Python OOP

📌 Description

This Application, use Python OOP skills to build out a banking application that allows users to view their checking and savings account balances, make deposits and withdrawals from either account, and transfer from savings to checking or vice versa. After each transaction, the users should be able to view their updated balances.

  • Motivation: Practice OOP in Python through a real-world banking app simulation.
  • Purpose: Create a CLI tool for managing checking and savings accounts.
  • Problem Solved: Simplifies tracking of account activity with input validation and logic.
  • What I Learned: Core OOP concepts like inheritance, abstraction, and input validation in Python.

Table of Contents

Installation

  1. Clone the repository:
    git clone https://github.com/lunahoushmand16/BankingSystem-Python-OOP
  2. Navigate to the project folder:
    cd  BankingSystem-OOP
  3. Run the Python script:
    python3 main.py
  • ✅ No external packages or database setup required.

Usage

  • Run the script from your terminal.

  • Log in with a valid email and password.

  • Choose to make a deposit, withdrawal, transfer, or view balances.

  • Invalid inputs are handled gracefully with error messages and retries.

  • Quit the program at any time by selecting the "q" option.

Screenshots:

Invalid Paassword Valid Login Make Deposit 1 Make Withdrawwal 2 Make Transfer 3 Checking Account Balances 4

Credits

License

This project is licensed under the MIT License. See the LICENSE file for details.

Badges

GitHub repo size GitHub contributors GitHub stars

Features

  • Object-Oriented Design using BankAccount base class

  • Inheritance for CheckingAccount and SavingsAccount

  • Input validation with retry attempts for login

  • Overdraft protection logic

  • Menu-based interaction with persistent state

  • Full transaction handling (deposit, withdraw, transfer)

How to Contribute

  1. Fork the repository
  2. Create a new branch: git checkout -b feature-name
  3. Make changes and commit: git commit -m 'Add feature X'
  4. Push changes: git push origin feature-name
  5. Open a pull request

🧪 Tests

This is a command-line application and does not include automated unit tests. To manually test the system, run the app and follow various input scenarios. For test output examples, please refer to the Screenshots section above.