Really-amin's picture
Upload 317 files
eebf5c4 verified

🌳 ساختار پروژه Crypto Monitor - نقشه کامل

📋 فهرست مطالب

  1. ساختار کلی پروژه
  2. فایل‌های اصلی و مسئولیت‌ها
  3. فایل‌های پیکربندی
  4. سرویس‌ها و ماژول‌ها
  5. رابط کاربری
  6. نحوه استفاده از فایل‌های 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.pyproviders_config_extended.json
  • resource_manager.pyproviders_config_ultimate.json
  • backend/services/auto_discovery_service.py
  • backend/services/connection_manager.py
  • backend/services/diagnostics_service.py

نحوه اجرا:

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:

{
  "providers": {
    "coingecko": { ... },
    "binance": { ... }
  },
  "pool_configurations": [ ... ]
}

3. resource_manager.py - مدیریت منابع

مسئولیت:

  • مدیریت منابع API
  • Import/Export منابع
  • Validation منابع
  • Backup/Restore

فایل Config استفاده شده:

  • providers_config_ultimate.json (پیش‌فرض)

ساختار فایل Config:

{
  "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

نحوه استفاده:

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

نحوه استفاده:

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

نحوه استفاده:

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

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

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

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