# پیکربند - پلتفرم جامع مدیریت هاستینگ و زیرساخت ابری

## 📖 درباره پروژه

پیکربند یک پلتفرم حرفه‌ای برای مدیریت هاستینگ، سرورهای ابری، دامین و خدمات DevOps است. این پلتفرم با الهام از سرویس‌هایی مانند Cloudways، DigitalOcean و پارس پک طراحی شده است.

## 🏗️ معماری

این پروژه بر اساس **Clean Architecture** و اصول **SOLID** طراحی شده است:

- **Domain Layer**: منطق کسب‌وکار اصلی
- **Application Layer**: موارد استفاده (Use Cases)
- **Infrastructure Layer**: پیاده‌سازی‌های فنی
- **Presentation Layer**: رابط کاربری (Reflex)

## 🚀 تکنولوژی‌ها

- **Frontend/Backend**: Python Reflex
- **Database**: PostgreSQL + SQLAlchemy
- **Cache**: Redis
- **Task Queue**: Celery
- **Testing**: pytest
- **Code Quality**: black, flake8, mypy, isort

## 📋 پیش‌نیازها

- Python 3.11+
- PostgreSQL 14+
- Redis 7+
- Node.js 18+ (برای Reflex)

## 🛠️ نصب و راه‌اندازی

### 1. کلون کردن پروژه

```bash
git clone https://github.com/yourusername/peikarband.git
cd peikarband
```

### 2. ایجاد محیط مجازی

```bash
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
```

### 3. نصب وابستگی‌ها

```bash
pip install -r requirements.txt
pip install -r requirements-dev.txt  # برای توسعه
```

### 4. تنظیم Environment Variables

```bash
cp .env.example .env
# ویرایش .env و تکمیل مقادیر
```

### 5. راه‌اندازی دیتابیس

```bash
# ایجاد دیتابیس
createdb peikarband

# اجرای migrations
alembic upgrade head
```

### 6. اجرای پروژه

```bash
# توسعه
python -m reflex run

# یا
make dev
```

## 🚢 Deployment

### با Docker

```bash
# Build
docker build -t peikarband:latest .

# Run
docker-compose up -d
```

### با Kubernetes/Helm

```bash
# Deploy
helm upgrade --install peikarband ./helm/peikarband \
  --namespace production \
  --set image.tag=0.1.0

# یا
make k8s-deploy
```

📖 [راهنمای کامل Deployment](docs/deployment/kubernetes.md)

## 📁 ساختار پروژه

```
peikarband/
├── docs/                   # مستندات
├── src/
│   ├── config/            # تنظیمات
│   ├── core/              # هسته اصلی
│   │   ├── domain/        # Domain entities & logic
│   │   └── application/   # Use cases & DTOs
│   ├── infrastructure/    # پیاده‌سازی‌های فنی
│   ├── presentation/      # رابط کاربری
│   └── shared/            # کدهای مشترک
├── tests/                 # تست‌ها
└── scripts/               # اسکریپت‌های کمکی
```

## 🧪 تست

```bash
# اجرای همه تست‌ها
pytest

# با coverage
pytest --cov=src tests/

# تست‌های خاص
pytest tests/unit/
pytest tests/integration/
```

## 📝 کدنویسی

### استانداردها

- **PEP 8**: استاندارد کدنویسی Python
- **PEP 20**: Zen of Python
- **Type Hints**: همه جا استفاده شود
- **Docstrings**: Google Style

### ابزارهای کیفیت کد

```bash
# Format
black src/

# Linting
flake8 src/

# Type checking
mypy src/

# Import sorting
isort src/
```

### Pre-commit Hooks

```bash
pre-commit install
pre-commit run --all-files
```

## 📚 مستندات

مستندات کامل در پوشه `docs/` موجود است:

- [Handbook](docs/handbook.md): راهنمای جامع پروژه
- [Architecture](docs/architecture/): معماری سیستم
- [Development](docs/development/): راهنمای توسعه
- [API Reference](docs/api/): مستندات API

## 🔐 امنیت

- همه پسوردها با bcrypt hash می‌شوند
- استفاده از JWT برای authentication
- پشتیبانی از 2FA
- اطلاعات حساس رمزنگاری می‌شوند

## 🤝 مشارکت

برای مشارکت در پروژه:

1. Fork کنید
2. Branch جدید بسازید (`git checkout -b feature/amazing-feature`)
3. Commit کنید (`git commit -m 'feat: add amazing feature'`)
4. Push کنید (`git push origin feature/amazing-feature`)
5. Pull Request بسازید

## 📄 لایسنس

این پروژه تحت لایسنس MIT منتشر شده است.

## 👥 تیم

- Lead Developer: [Your Name]
- Architecture: Clean Architecture
- Methodology: Agile/Scrum

## 📞 تماس

- Website: https://peikarband.ir
- Email: support@peikarband.ir
- Telegram: @peikarband

---

**نسخه**: 0.1.0  
**آخرین بروزرسانی**: 2025-01-24

