File size: 18,974 Bytes
e4e4574
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
# 🌳 ساختار پروژه 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