🌳 ساختار پروژه Crypto Monitor - نقشه کامل
📋 فهرست مطالب
- ساختار کلی پروژه
- فایلهای اصلی و مسئولیتها
- فایلهای پیکربندی
- سرویسها و ماژولها
- رابط کاربری
- نحوه استفاده از فایلهای 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.jsonresource_manager.py→providers_config_ultimate.jsonbackend/services/auto_discovery_service.pybackend/services/connection_manager.pybackend/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.cssstatic/js/websocket-client.js- API endpoints از
api_server_extended.py
⚠️ فایلهای قدیمی (استفاده نمیشوند)
این فایلها برای مرجع نگه داشته شدهاند اما در حال حاضر استفاده نمیشوند:
main.py,app.py,enhanced_server.py→ جایگزین شده باapi_server_extended.pyindex.html,dashboard.html→ جایگزین شده باunified_dashboard.htmlconfig.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/statusPOST /api/resources/discovery/run
2. connection_manager.py
مسئولیت:
- مدیریت اتصالات WebSocket
- Tracking sessions
- Broadcasting messages
- Heartbeat management
API Endpoints:
GET /api/sessionsGET /api/sessions/statsPOST /api/broadcastWebSocket /ws
3. diagnostics_service.py
مسئولیت:
- اشکالیابی خودکار سیستم
- بررسی وابستگیها
- بررسی تنظیمات
- بررسی شبکه
- تعمیر خودکار مشکلات
API Endpoints:
POST /api/diagnostics/run?auto_fix=true/falseGET /api/diagnostics/last
4. unified_config_loader.py
مسئولیت:
- بارگذاری یکپارچه تمام فایلهای Config
- Merge کردن منابع از فایلهای مختلف
- مدیریت API keys
- Setup CORS proxies
فایلهای Load شده:
crypto_resources_unified_2025-11-11.jsonall_apis_merged_2025.jsonultimate_crypto_pipeline_2025_NZasinich.json
🎨 رابط کاربری
unified_dashboard.html - داشبورد اصلی
تبها:
- Market - دادههای بازار
- API Monitor - مانیتورینگ Providerها
- Advanced - عملیات پیشرفته
- Admin - مدیریت
- HuggingFace - مدلهای HuggingFace
- Pools - مدیریت Poolها
- Logs - مدیریت لاگها
- Resources - مدیریت منابع
- 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
🎯 توصیهها
✅ فایلهای پیشنهادی برای استفاده
برای مدیریت Providerها:
- استفاده از
provider_manager.pyباproviders_config_extended.json
- استفاده از
برای مدیریت منابع:
- استفاده از
resource_manager.pyباproviders_config_ultimate.json
- استفاده از
برای بارگذاری یکپارچه:
- استفاده از
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