Datasourceforcryptocurrency / ADMIN_HTML_INTEGRATION.md
Really-amin's picture
Upload 378 files
deedeab verified
# 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 🚀