Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banking System — OOP Prototype (main branch)

A terminal-based banking system built with pure Python OOP — no database, no external dependencies. All data lives in memory during the session.

Project Structure

banking-system/
├── main.py          # Entry point — CLI menu
├── bank.py          # Bank class — manages users in memory
├── user.py          # User, Client, Admin classes
├── account.py       # Account class — deposit / withdraw / balance
└── exceptions.py    # Custom exceptions

Class Diagram

User
├── Client  →  has one Account
└── Admin

Bank  →  manages a list of Users

Features

  • Create clients
  • Create bank accounts per client
  • Deposit and withdraw funds
  • Check balance
  • List all registered users
  • Custom exception handling for all edge cases

How to Run

python main.py

No installation required — uses only the Python standard library.

OOP Concepts Applied

Concept Where
Inheritance Client, Admin extend User
Encapsulation Bank._users is private; access via methods
Custom Exceptions exceptions.py
Composition Client contains an Account

Notes

  • This is a prototype — data is not persisted between runs.
  • See the database branch for the full version with MySQL persistence.

About

A terminal-based banking system built with Python OOP, with a MySQL-backed version

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages