# Admin.html Integration Guide ## ✅ فایل HTML بدون تغییر فایل `admin.html` شما **کاملاً compatible** با backend جدید است و نیازی به تغییر ندارد چون: 1. ✅ تمام endpoint های مورد نیاز پیاده شده 2. ✅ Response structure ها سازگار هستند 3. ✅ WebSocket support اضافه شده 4. ✅ JavaScript modules با backend sync هستند ## 📁 ساختار فایل‌ها ``` admin.html └── static/js/ ├── app.js # Main app initializer ├── apiClient.js # API wrapper (✅ compatible) ├── wsClient.js # WebSocket client (✅ compatible) ├── overviewView.js # Overview tab ├── marketView.js # Market tab ├── newsView.js # News tab ├── chartLabView.js # Charts tab ├── aiAdvisorView.js # AI Sentiment tab ├── datasetsModelsView.js # Datasets & Models tab ├── apiExplorerView.js # API Explorer tab ├── debugConsoleView.js # Diagnostics tab ├── providersView.js # Providers tab └── settingsView.js # Settings tab ``` ## 🔌 API Endpoints Mapping ### apiClient.js Calls → Backend Endpoints | Frontend Call | Backend Endpoint | Status | |--------------|------------------|---------| | `getHealth()` | `GET /api/health` | ✅ | | `getTopCoins(limit)` | `GET /api/coins/top?limit={limit}` | ✅ | | `getCoinDetails(symbol)` | `GET /api/coins/{symbol}` | ✅ | | `getMarketStats()` | `GET /api/market/stats` | ✅ | | `getLatestNews(limit)` | `GET /api/news/latest?limit={limit}` | ✅ | | `getProviders()` | `GET /api/providers` | ✅ | | `getPriceChart(symbol, timeframe)` | `GET /api/charts/price/{symbol}?timeframe={timeframe}` | ✅ | | `analyzeChart(payload)` | `POST /api/charts/analyze` | ✅ | | `runQuery(payload)` | `POST /api/query` | ✅ | | `analyzeSentiment(payload)` | `POST /api/sentiment/analyze` | ✅ | | `summarizeNews(item)` | `POST /api/news/summarize` | ✅ | | `getDatasetsList()` | `GET /api/datasets/list` | ✅ | | `getDatasetSample(name)` | `GET /api/datasets/sample?name={name}` | ✅ | | `getModelsList()` | `GET /api/models/list` | ✅ | | `testModel(payload)` | `POST /api/models/test` | ✅ | ### WebSocket | Frontend | Backend | Status | |----------|---------|---------| | `wsClient.connect()` → `ws://host/ws` | `WS /ws` | ✅ | | Message format: `{type, payload}` | Same | ✅ | ## 🔄 Response Structure Compatibility ### Example: GET /api/coins/top **Frontend expects:** ```javascript { success: true, coins: [ { rank: 1, symbol: "BTC", name: "Bitcoin", price: 45000, price_change_24h: 2.5, volume_24h: 25000000000, market_cap: 850000000000 } ], count: 10 } ``` **Backend returns:** ✅ Same structure ### Example: GET /api/market/stats **Frontend expects:** ```javascript { success: true, stats: { total_market_cap: 1500000000000, total_volume_24h: 75000000000, btc_dominance: 45.5, eth_dominance: 18.2 } } ``` **Backend returns:** ✅ Same structure ### Example: POST /api/sentiment/analyze **Frontend sends:** ```javascript { text: "Bitcoin is breaking new ATH!" } ``` **Backend returns:** ```javascript { success: true, sentiment: "bullish", confidence: 0.89, details: { label: "bullish", confidence: 0.89, scores: {...}, model_count: 2 } } ``` ✅ Frontend compatible ## 🎨 CSS Files تمام CSS files موجود هستند: - ✅ `static/css/design-tokens.css` - ✅ `static/css/design-system.css` - ✅ `static/css/dashboard.css` - ✅ `static/css/pro-dashboard.css` ## 🚀 Deployment ### Step 1: Copy files ```bash # Admin HTML cp admin.html /path/to/project/admin.html # Ensure static files exist ls static/css/ ls static/js/ ``` ### Step 2: Start backend ```bash uvicorn hf_unified_server:app --host 0.0.0.0 --port 7860 ``` ### Step 3: Access dashboard ``` http://localhost:7860/ # یا http://localhost:7860/admin.html ``` ## ✅ Checklist ### Backend Endpoints - [x] `/api/health` - Working - [x] `/api/coins/top` - Returns top coins - [x] `/api/coins/{symbol}` - Returns coin details - [x] `/api/market/stats` - Returns market stats - [x] `/api/news/latest` - Returns news with sentiment - [x] `/api/charts/price/{symbol}` - Returns price chart - [x] `/api/charts/analyze` - Returns chart analysis - [x] `/api/sentiment/analyze` - Ensemble sentiment - [x] `/api/query` - NLP query - [x] `/api/providers` - Provider list - [x] `/api/datasets/list` - Dataset list - [x] `/api/datasets/sample` - Dataset sample - [x] `/api/models/list` - Model list - [x] `/api/models/test` - Model test - [x] `/ws` - WebSocket real-time ### Frontend Features - [x] Overview tab - Shows market stats + top coins - [x] Market tab - Interactive coins table - [x] Chart Lab - Price charts + AI analysis - [x] Sentiment & AI - Sentiment analyzer - [x] News tab - News with sentiment badges - [x] Providers tab - Provider list - [x] API Explorer - Endpoint list - [x] Diagnostics - Health & logs - [x] Datasets & Models - HF integration - [x] Settings - Preferences ### WebSocket Features - [x] Auto-connect on page load - [x] Real-time market updates (10s interval) - [x] Connection status indicator - [x] Auto-reconnect on disconnect ## 🐛 Troubleshooting ### Problem: 404 on endpoints **Solution:** مطمئن شوید backend running است: ```bash curl http://localhost:7860/api/health ``` ### Problem: WebSocket connection failed **Solution:** چک کردن CORS و WebSocket config: ```python # در hf_unified_server.py app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) ``` ### Problem: Sentiment returns neutral **Solution:** اولین بار model download می‌کنه (~30s): ```bash # Check logs docker logs crypto-hub # یا tail -f logs/app.log ``` ### Problem: Dataset sample empty **Solution:** بعضی datasets نیاز به authentication دارند: ```bash export HF_TOKEN=your_token ``` ## 🎯 Testing ### Quick Test Script ```bash #!/bin/bash # Health check echo "Testing health..." curl http://localhost:7860/api/health # Top coins echo -e "\n\nTesting coins..." curl http://localhost:7860/api/coins/top?limit=5 # Market stats echo -e "\n\nTesting market stats..." curl http://localhost:7860/api/market/stats # Sentiment echo -e "\n\nTesting sentiment..." curl -X POST http://localhost:7860/api/sentiment/analyze \ -H "Content-Type: application/json" \ -d '{"text": "Bitcoin breaking ATH!"}' # Models echo -e "\n\nTesting models..." curl http://localhost:7860/api/models/list # Datasets echo -e "\n\nTesting datasets..." curl http://localhost:7860/api/datasets/list echo -e "\n\n✅ All tests completed" ``` ## 📝 Notes 1. **No changes needed** to admin.html 2. JavaScript modules کاملاً compatible هستند 3. Sentiment از ensemble models استفاده می‌کند 4. WebSocket هر 10 ثانیه update می‌فرستد 5. Dataset sampling نیاز به HF_TOKEN دارد ## 🎉 Result **admin.html بدون هیچ تغییری کار می‌کند!** فقط کافیه: 1. Backend رو run کنید 2. admin.html رو باز کنید 3. همه features کار می‌کنند ✅ --- **تاریخ:** 2025-11-18 **نسخه:** v5.0.0-hf-integrated **Status:** Production Ready 🚀