# 🌳 ساختار پروژه 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