Metadata-Version: 2.4
Name: omar-gad-bank
Version: 1.0.0
Summary: A professional terminal-based banking management system
Home-page: https://github.com/omargad/bank-management-system
Author: Omar Gad
Author-email: Omar Gad <omar.gad@example.com>
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich>=13.0.0
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# 🏦 Omar Gad Bank - Professional CLI Banking System

[![Python Version](https://img.shields.io/badge/python-3.7%2B-blue.svg)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Rich](https://img.shields.io/badge/UI-Rich-green.svg)](https://github.com/Textualize/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)
```bash
pip install omar-gad-bank
```

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

## 🛠️ Usage

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

```bash
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

```text
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
```powershell
# Create virtual environment
python -m venv .venv
# Activate
.venv\Scripts\activate
# Install in editable mode
pip install -e .
```

### Linux / macOS
```bash
# 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):
```bash
pip install build
python -m build
```

### Uploading to PyPI
```bash
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](LICENSE) file for details.

---
Developed with ❤️ by [Omar Gad](https://github.com/omargad)
