Really-amin's picture
Upload 317 files
eebf5c4 verified
# 🌳 ساختار پروژه Crypto Monitor - نقشه کامل
## 📋 فهرست مطالب
1. [ساختار کلی پروژه](#ساختار-کلی-پروژه)
2. [فایل‌های اصلی و مسئولیت‌ها](#فایل‌های-اصلی-و-مسئولیت‌ها)
3. [فایل‌های پیکربندی](#فایل‌های-پیکربندی)
4. [سرویس‌ها و ماژول‌ها](#سرویس‌ها-و-ماژول‌ها)
5. [رابط کاربری](#رابط-کاربری)
6. [نحوه استفاده از فایل‌های Config](#نحوه-استفاده-از-فایل‌های-config)
---
## 🌲 ساختار کلی پروژه
```
crypto-monitor-hf-full-fixed-v4-realapis/
├── 📄 فایل‌های اصلی سرور
│ ├── api_server_extended.py ⭐ سرور اصلی FastAPI (استفاده می‌شود)
│ ├── main.py ⚠️ قدیمی - استفاده نمی‌شود
│ ├── app.py ⚠️ قدیمی - استفاده نمی‌شود
│ ├── enhanced_server.py ⚠️ قدیمی - استفاده نمی‌شود
│ ├── production_server.py ⚠️ قدیمی - استفاده نمی‌شود
│ ├── real_server.py ⚠️ قدیمی - استفاده نمی‌شود
│ └── simple_server.py ⚠️ قدیمی - استفاده نمی‌شود
├── 📦 فایل‌های پیکربندی (Config Files)
│ ├── providers_config_extended.json ✅ استفاده می‌شود (ProviderManager)
│ ├── providers_config_ultimate.json ✅ استفاده می‌شود (ResourceManager)
│ ├── crypto_resources_unified_2025-11-11.json ✅ استفاده می‌شود (UnifiedConfigLoader)
│ ├── all_apis_merged_2025.json ✅ استفاده می‌شود (UnifiedConfigLoader)
│ └── ultimate_crypto_pipeline_2025_NZasinich.json ✅ استفاده می‌شود (UnifiedConfigLoader)
├── 🎨 رابط کاربری (Frontend)
│ ├── unified_dashboard.html ⭐ داشبورد اصلی (استفاده می‌شود)
│ ├── index.html ⚠️ قدیمی
│ ├── dashboard.html ⚠️ قدیمی
│ ├── enhanced_dashboard.html ⚠️ قدیمی
│ ├── admin.html ⚠️ قدیمی
│ ├── pool_management.html ⚠️ قدیمی
│ └── hf_console.html ⚠️ قدیمی
├── 🧩 ماژول‌های اصلی (Core Modules)
│ ├── provider_manager.py ✅ مدیریت Providerها و Poolها
│ ├── resource_manager.py ✅ مدیریت منابع API
│ ├── log_manager.py ✅ مدیریت لاگ‌ها
│ ├── config.py ⚠️ قدیمی - استفاده نمی‌شود
│ └── scheduler.py ⚠️ قدیمی - استفاده نمی‌شود
├── 🔧 سرویس‌های بکند (Backend Services)
│ └── backend/
│ ├── services/
│ │ ├── auto_discovery_service.py ✅ جستجوی خودکار منابع رایگان
│ │ ├── connection_manager.py ✅ مدیریت اتصالات WebSocket
│ │ ├── diagnostics_service.py ✅ اشکال‌یابی و تعمیر خودکار
│ │ ├── unified_config_loader.py ✅ بارگذاری یکپارچه Configها
│ │ ├── scheduler_service.py ✅ زمان‌بندی پیشرفته
│ │ ├── persistence_service.py ✅ ذخیره‌سازی داده‌ها
│ │ ├── websocket_service.py ✅ سرویس WebSocket
│ │ ├── ws_service_manager.py ✅ مدیریت سرویس‌های WebSocket
│ │ ├── hf_client.py ✅ کلاینت HuggingFace
│ │ ├── hf_registry.py ✅ رجیستری مدل‌های HuggingFace
│ │ └── __init__.py
│ │
│ └── routers/
│ ├── integrated_api.py ✅ APIهای یکپارچه
│ ├── hf_connect.py ✅ اتصال HuggingFace
│ └── __init__.py
├── 📡 API Endpoints
│ └── api/
│ ├── endpoints.py ⚠️ قدیمی
│ ├── pool_endpoints.py ⚠️ قدیمی
│ ├── websocket.py ⚠️ قدیمی
│ └── ... (سایر فایل‌های قدیمی)
├── 🎯 Collectors (جمع‌آوری داده)
│ └── collectors/
│ ├── market_data.py ⚠️ قدیمی
│ ├── market_data_extended.py ⚠️ قدیمی
│ ├── news.py ⚠️ قدیمی
│ ├── sentiment.py ⚠️ قدیمی
│ └── ... (سایر collectors قدیمی)
├── 🎨 فایل‌های استاتیک (Static Files)
│ └── static/
│ ├── css/
│ │ └── connection-status.css ✅ استایل وضعیت اتصال
│ └── js/
│ └── websocket-client.js ✅ کلاینت WebSocket
├── 📚 مستندات (Documentation)
│ ├── README.md ✅ مستندات اصلی
│ ├── README_FA.md ✅ مستندات فارسی
│ ├── WEBSOCKET_GUIDE.md ✅ راهنمای WebSocket
│ ├── REALTIME_FEATURES_FA.md ✅ ویژگی‌های بلادرنگ
│ └── ... (سایر فایل‌های مستندات)
├── 🧪 تست‌ها (Tests)
│ ├── test_websocket.html ✅ صفحه تست WebSocket
│ ├── test_websocket_dashboard.html ✅ صفحه تست Dashboard
│ ├── test_providers.py ⚠️ تست قدیمی
│ └── tests/ ⚠️ تست‌های قدیمی
├── 📁 دایرکتوری‌های داده
│ ├── data/ ✅ ذخیره داده‌ها
│ ├── logs/ ✅ ذخیره لاگ‌ها
│ └── database/ ⚠️ قدیمی
└── 📦 سایر فایل‌ها
├── requirements.txt ✅ وابستگی‌های Python
├── start.bat ✅ اسکریپت راه‌اندازی
├── docker-compose.yml ✅ Docker Compose
└── Dockerfile ✅ Dockerfile
```
---
## 📄 فایل‌های اصلی و مسئولیت‌ها
### ⭐ فایل‌های فعال (در حال استفاده)
#### 1. `api_server_extended.py` - سرور اصلی
**مسئولیت:**
- سرور FastAPI اصلی برنامه
- مدیریت تمام endpointها
- یکپارچه‌سازی تمام سرویس‌ها
- مدیریت WebSocket
- Startup validation
**وابستگی‌ها:**
- `provider_manager.py``providers_config_extended.json`
- `resource_manager.py``providers_config_ultimate.json`
- `backend/services/auto_discovery_service.py`
- `backend/services/connection_manager.py`
- `backend/services/diagnostics_service.py`
**نحوه اجرا:**
```bash
python api_server_extended.py
# یا
uvicorn api_server_extended:app --host 0.0.0.0 --port 8000
```
---
#### 2. `provider_manager.py` - مدیریت Providerها
**مسئولیت:**
- مدیریت Providerهای API
- مدیریت Poolها و استراتژی‌های چرخش
- Health check
- Rate limiting
- Circuit breaker
**فایل Config استفاده شده:**
- `providers_config_extended.json` (پیش‌فرض)
**ساختار فایل Config:**
```json
{
"providers": {
"coingecko": { ... },
"binance": { ... }
},
"pool_configurations": [ ... ]
}
```
---
#### 3. `resource_manager.py` - مدیریت منابع
**مسئولیت:**
- مدیریت منابع API
- Import/Export منابع
- Validation منابع
- Backup/Restore
**فایل Config استفاده شده:**
- `providers_config_ultimate.json` (پیش‌فرض)
**ساختار فایل Config:**
```json
{
"providers": {
"coingecko": { ... }
},
"schema_version": "3.0.0"
}
```
---
#### 4. `unified_dashboard.html` - داشبورد اصلی
**مسئولیت:**
- رابط کاربری اصلی
- نمایش داده‌های بازار
- مدیریت Providerها
- گزارشات و اشکال‌یابی
- اتصال WebSocket
**وابستگی‌ها:**
- `static/css/connection-status.css`
- `static/js/websocket-client.js`
- API endpoints از `api_server_extended.py`
---
### ⚠️ فایل‌های قدیمی (استفاده نمی‌شوند)
این فایل‌ها برای مرجع نگه داشته شده‌اند اما در حال حاضر استفاده نمی‌شوند:
- `main.py`, `app.py`, `enhanced_server.py` → جایگزین شده با `api_server_extended.py`
- `index.html`, `dashboard.html` → جایگزین شده با `unified_dashboard.html`
- `config.py`, `scheduler.py` → جایگزین شده با سرویس‌های جدید در `backend/services/`
---
## 📦 فایل‌های پیکربندی
### ✅ فایل‌های فعال
#### 1. `providers_config_extended.json`
**استفاده شده توسط:** `provider_manager.py`
**محتوای اصلی:**
- لیست Providerها با endpointها
- Pool configurations
- HuggingFace models
- Fallback strategy
**نحوه استفاده:**
```python
from provider_manager import ProviderManager
manager = ProviderManager(config_path="providers_config_extended.json")
```
---
#### 2. `providers_config_ultimate.json`
**استفاده شده توسط:** `resource_manager.py`
**محتوای اصلی:**
- لیست Providerها (فرمت متفاوت)
- Schema version
- Metadata
**نحوه استفاده:**
```python
from resource_manager import ResourceManager
manager = ResourceManager(config_file="providers_config_ultimate.json")
```
---
#### 3. `crypto_resources_unified_2025-11-11.json`
**استفاده شده توسط:** `backend/services/unified_config_loader.py`
**محتوای اصلی:**
- RPC nodes
- Block explorers
- Market data APIs
- DeFi protocols
**نحوه استفاده:**
```python
from backend.services.unified_config_loader import UnifiedConfigLoader
loader = UnifiedConfigLoader()
# به صورت خودکار این فایل را load می‌کند
```
---
#### 4. `all_apis_merged_2025.json`
**استفاده شده توسط:** `backend/services/unified_config_loader.py`
**محتوای اصلی:**
- APIs merged از منابع مختلف
---
#### 5. `ultimate_crypto_pipeline_2025_NZasinich.json`
**استفاده شده توسط:** `backend/services/unified_config_loader.py`
**محتوای اصلی:**
- Pipeline configuration
- API sources
---
### 🔄 تفاوت بین فایل‌های Config
| فایل | استفاده شده توسط | فرمت | تعداد Provider |
|------|------------------|------|----------------|
| `providers_config_extended.json` | ProviderManager | `{providers: {}, pool_configurations: []}` | ~100 |
| `providers_config_ultimate.json` | ResourceManager | `{providers: {}, schema_version: "3.0.0"}` | ~200 |
| `crypto_resources_unified_2025-11-11.json` | UnifiedConfigLoader | `{registry: {rpc_nodes: [], ...}}` | 200+ |
| `all_apis_merged_2025.json` | UnifiedConfigLoader | Merged format | متغیر |
| `ultimate_crypto_pipeline_2025_NZasinich.json` | UnifiedConfigLoader | Pipeline format | متغیر |
---
## 🔧 سرویس‌ها و ماژول‌ها
### Backend Services (`backend/services/`)
#### 1. `auto_discovery_service.py`
**مسئولیت:**
- جستجوی خودکار منابع API رایگان
- استفاده از DuckDuckGo برای جستجو
- استفاده از HuggingFace برای تحلیل
- اضافه کردن منابع جدید به ResourceManager
**API Endpoints:**
- `GET /api/resources/discovery/status`
- `POST /api/resources/discovery/run`
---
#### 2. `connection_manager.py`
**مسئولیت:**
- مدیریت اتصالات WebSocket
- Tracking sessions
- Broadcasting messages
- Heartbeat management
**API Endpoints:**
- `GET /api/sessions`
- `GET /api/sessions/stats`
- `POST /api/broadcast`
- `WebSocket /ws`
---
#### 3. `diagnostics_service.py`
**مسئولیت:**
- اشکال‌یابی خودکار سیستم
- بررسی وابستگی‌ها
- بررسی تنظیمات
- بررسی شبکه
- تعمیر خودکار مشکلات
**API Endpoints:**
- `POST /api/diagnostics/run?auto_fix=true/false`
- `GET /api/diagnostics/last`
---
#### 4. `unified_config_loader.py`
**مسئولیت:**
- بارگذاری یکپارچه تمام فایل‌های Config
- Merge کردن منابع از فایل‌های مختلف
- مدیریت API keys
- Setup CORS proxies
**فایل‌های Load شده:**
- `crypto_resources_unified_2025-11-11.json`
- `all_apis_merged_2025.json`
- `ultimate_crypto_pipeline_2025_NZasinich.json`
---
## 🎨 رابط کاربری
### `unified_dashboard.html` - داشبورد اصلی
**تب‌ها:**
1. **Market** - داده‌های بازار
2. **API Monitor** - مانیتورینگ Providerها
3. **Advanced** - عملیات پیشرفته
4. **Admin** - مدیریت
5. **HuggingFace** - مدل‌های HuggingFace
6. **Pools** - مدیریت Poolها
7. **Logs** - مدیریت لاگ‌ها
8. **Resources** - مدیریت منابع
9. **Reports** - گزارشات و اشکال‌یابی
**ویژگی‌ها:**
- اتصال WebSocket برای داده‌های بلادرنگ
- نمایش تعداد کاربران آنلاین
- گزارشات Auto-Discovery
- گزارشات مدل‌های HuggingFace
- اشکال‌یابی خودکار
---
## 🔄 نحوه استفاده از فایل‌های Config
### سناریو 1: استفاده از ProviderManager
```python
from provider_manager import ProviderManager
# استفاده از providers_config_extended.json
manager = ProviderManager(config_path="providers_config_extended.json")
# دریافت Provider
provider = manager.get_provider("coingecko")
# استفاده از Pool
pool = manager.get_pool("primary_market_data_pool")
result = await pool.get_data("coins_markets")
```
---
### سناریو 2: استفاده از ResourceManager
```python
from resource_manager import ResourceManager
# استفاده از providers_config_ultimate.json
manager = ResourceManager(config_file="providers_config_ultimate.json")
# اضافه کردن Provider جدید
manager.add_provider({
"id": "new_api",
"name": "New API",
"category": "market_data",
"base_url": "https://api.example.com",
"requires_auth": False
})
# ذخیره
manager.save_resources()
```
---
### سناریو 3: استفاده از UnifiedConfigLoader
```python
from backend.services.unified_config_loader import UnifiedConfigLoader
# به صورت خودکار تمام فایل‌ها را load می‌کند
loader = UnifiedConfigLoader()
# دریافت تمام APIs
all_apis = loader.get_all_apis()
# دریافت APIs بر اساس category
market_apis = loader.get_apis_by_category('market_data')
```
---
## 📊 جریان داده (Data Flow)
```
1. Startup
└── api_server_extended.py
├── ProviderManager.load_config()
│ └── providers_config_extended.json
├── ResourceManager.load_resources()
│ └── providers_config_ultimate.json
└── UnifiedConfigLoader.load_all_configs()
├── crypto_resources_unified_2025-11-11.json
├── all_apis_merged_2025.json
└── ultimate_crypto_pipeline_2025_NZasinich.json
2. Runtime
└── API Request
├── ProviderManager.get_provider()
├── ProviderPool.get_data()
└── Response
3. WebSocket
└── ConnectionManager
├── Connect client
├── Broadcast updates
└── Heartbeat
4. Auto-Discovery
└── AutoDiscoveryService
├── Search (DuckDuckGo)
├── Analyze (HuggingFace)
└── Add to ResourceManager
```
---
## 🎯 توصیه‌ها
### ✅ فایل‌های پیشنهادی برای استفاده
1. **برای مدیریت Providerها:**
- استفاده از `provider_manager.py` با `providers_config_extended.json`
2. **برای مدیریت منابع:**
- استفاده از `resource_manager.py` با `providers_config_ultimate.json`
3. **برای بارگذاری یکپارچه:**
- استفاده از `UnifiedConfigLoader` که تمام فایل‌ها را merge می‌کند
### ⚠️ فایل‌های قدیمی
- فایل‌های قدیمی را می‌توانید نگه دارید برای مرجع
- اما برای توسعه جدید از فایل‌های جدید استفاده کنید
---
## 📝 خلاصه
| کامپوننت | فایل اصلی | فایل Config | وضعیت |
|----------|-----------|-------------|-------|
| سرور | `api_server_extended.py` | - | ✅ فعال |
| مدیریت Provider | `provider_manager.py` | `providers_config_extended.json` | ✅ فعال |
| مدیریت منابع | `resource_manager.py` | `providers_config_ultimate.json` | ✅ فعال |
| بارگذاری یکپارچه | `unified_config_loader.py` | `crypto_resources_unified_2025-11-11.json` + 2 فایل دیگر | ✅ فعال |
| داشبورد | `unified_dashboard.html` | - | ✅ فعال |
| Auto-Discovery | `auto_discovery_service.py` | - | ✅ فعال |
| WebSocket | `connection_manager.py` | - | ✅ فعال |
| Diagnostics | `diagnostics_service.py` | - | ✅ فعال |
---
**آخرین به‌روزرسانی:** 2025-01-XX
**نسخه:** 4.0