Skip to main content

A professional terminal-based banking management system

Project description

๐Ÿฆ Omar Gad Bank - Professional CLI Banking System

Python Version License: MIT Rich

A professional, terminal-based banking management system built with Python. This tool provides a clean, modern CLI interface for managing bank accounts, processing transactions, and viewing history with beautiful ANSI styling and animations.

โœจ Features

  • ๐Ÿ‘ค Account Management: Create and remove bank accounts with unique IDs.
  • ๐Ÿ’ฐ Financial Transactions: Securely deposit and withdraw funds.
  • ๐Ÿ“Š Information Tracking: View detailed account info and real-time balances.
  • ๐Ÿ“œ Transaction History: Track every deposit and withdrawal with a clean history log.
  • ๐ŸŽจ Modern UI: Powered by Rich for beautiful tables, panels, and loading animations.
  • ๐Ÿš€ Installable CLI: Global access from your terminal using the omar-bank command.

๐Ÿ“ธ Screenshots

(Place screenshots here after running the app)

  • Main Menu: A clean list of options in a styled panel.
  • Account Creation: Interactive prompts with validation.
  • Transaction History: Color-coded history table.

๐Ÿš€ Installation

Prerequisites

  • Python 3.7 or higher
  • pip (Python package installer)

Quick Install (from PyPI)

pip install omar-gad-bank

From Source

  1. Clone the repository:
    git clone https://github.com/omargad/bank-management-system.git
    cd bank-management-system
    
  2. Install the package locally:
    pip install .
    

๐Ÿ› ๏ธ Usage

Once installed, you can launch the application from any terminal window:

omar-bank

Example Workflow

  1. Launch: Run omar-bank.
  2. Create: Select option 1 to create your first account.
  3. Save ID: Note down the generated Account ID (e.g., 1001).
  4. Deposit: Select option 2, enter your ID, and deposit some funds.
  5. Check: Select option 4 to see your updated balance.

๐Ÿ“‚ Project Structure

omar-gad-bank/
โ”œโ”€โ”€ omar_bank/              # Root package
โ”‚   โ”œโ”€โ”€ logic/              # Core banking logic
โ”‚   โ”‚   โ””โ”€โ”€ bank.py         # Bank & Customer classes
โ”‚   โ”œโ”€โ”€ ui/                 # Terminal UI implementation
โ”‚   โ”‚   โ””โ”€โ”€ interface.py    # Rich-based UI logic
โ”‚   โ””โ”€โ”€ cli.py              # CLI Entry point
โ”œโ”€โ”€ pyproject.toml          # Build system configuration
โ”œโ”€โ”€ setup.py                # Package setup script
โ”œโ”€โ”€ MANIFEST.in             # Non-code files to include
โ”œโ”€โ”€ LICENSE                 # MIT License
โ”œโ”€โ”€ README.md               # Documentation
โ””โ”€โ”€ requirements.txt        # Project dependencies

๐Ÿ’ป Developer Setup

Windows

# Create virtual environment
python -m venv .venv
# Activate
.venv\Scripts\activate
# Install in editable mode
pip install -e .

Linux / macOS

# Create virtual environment
python3 -m venv .venv
# Activate
source .venv/bin/activate
# Install in editable mode
pip install -e .

Building the Package

To build the distribution files (sdist and wheel):

pip install build
python -m build

Uploading to PyPI

pip install twine
python -m twine upload dist/*

๐Ÿ—๏ธ Technologies Used

  • Python: Core programming language.
  • Rich: For professional terminal UI rendering.
  • Setuptools: For packaging and distribution.

๐Ÿ”ฎ Future Improvements

  • Persistent storage using SQLite or JSON files.
  • Transfer money between accounts.
  • Support for multiple currencies.
  • Password protection for accounts.

๐Ÿค Contribution

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“œ License

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


Developed with โค๏ธ by Omar Gad

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omar_gad_bank-1.0.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omar_gad_bank-1.0.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file omar_gad_bank-1.0.0.tar.gz.

File metadata

  • Download URL: omar_gad_bank-1.0.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for omar_gad_bank-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9a44c297d81fabcdab38a39d1232d14d04d7d91a193f8b4cd4d7ba958feabf52
MD5 b34114c9f2e6b3430d72246239795703
BLAKE2b-256 c2173c453ad745e1cfffef2354cf1037df36ddb241c83a71b65ca92fae836c4a

See more details on using hashes here.

File details

Details for the file omar_gad_bank-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: omar_gad_bank-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for omar_gad_bank-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f000e35fc258b4f0c4b99cb94f64a8bcd3767d8f096001ba421aba49cb4d6b16
MD5 854491863609017f2f02522da9f21246
BLAKE2b-256 116df6f20fe21ea13cb94604d142cc9a1de70cff38b6f2de9b0a890b4c012849

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page