Banking CLI App

Overview:

A Python command-line banking application built from the ground up to demonstrate advanced backend engineering principles. The project covers the full Python stack from OOP fundamentals through to advanced patterns, concurrency, and testing, all applied to a realistic banking domain.

Tech Stack:

Language: Python 3.14  |  Testing: pytest  |  Serialization: JSON  |  Concurrency: asyncio

Key Features:

Create savings and current accounts with full input validation  |  Deposit, withdraw and transfer funds  |  Pluggable interest strategies (Simple or Compound)  |  Automatic email and SMS notifications on transactions  |  Persistent storage via JSON  |  Configurable transaction logging with log levels  |  Full pytest test suite with fixtures and mocking

Concepts Demonstrated:

Metaclass  |  Descriptors  |  Decorator Factory  |  Observer Pattern  |  Strategy Pattern  |  Mixin  |  Abstract Base Class  |  Asyncio  |  Type Hints  |  pytest Fixtures  |  Mocking  |  OOP  |  Inheritance  |  Encapsulation  |  Generators  |  Context Managers  |  Regex Validation  |  JSON Serialization

Banking CLI App - Main Menu
Banking CLI App - Create Account
Banking CLI App - Deposit with Notifications
Banking CLI App - Pytest 12 Passed