FATBot Dashboard¶
Overview¶
Web-based control center for the FATBot trading system. Currently a static UI shell reading mock JSON data, planned for React TypeScript migration and live MCP integration.
Location: fatbot/dashboard/
Server: node dashboard/server.js → http://localhost:8000
Dependencies: None (vanilla HTML/CSS/JS)
Layout¶
┌─────────────────────────────────────────────────┐
│ HEADER: FATBot Logo + Connection Status │
├─────────────────────────────────────────────────┤
│ TICKER STRIP: Symbol, Price, 24h Change │
├─────────────────────────────────────────────────┤
│ STRATEGY BANNER │
│ Direction (LONG/SHORT) | Entry | Stop | Target │
│ Setup title | Risk:Reward │
├──────────────┬──────────────┬───────────────────┤
│ LEFT SIDEBAR │ MAIN AREA │ RIGHT SIDEBAR │
│ • Watchlist │ • Chart │ • Order Blocks │
│ • Orders │ • Indicators │ • Levels & SMT │
│ • Positions │ │ • ATR Sizing │
│ • History │ │ │
└──────────────┴──────────────┴───────────────────┘
Files¶
| File | Purpose |
|---|---|
index.html |
Full UI (~1050 lines: CSS + HTML + JS) |
server.js |
Static file server with path traversal protection |
mock-mcp.json |
Chart data: bias, session, strategy, OBs, SMT, ATR |
mock-db.json |
Trade data: watchlist, orders, positions, history |
manifest.json |
PWA manifest (installable) |
logo.svg |
FATBot logo (gold diamond + lightning bolt) |
material-icons.woff2 |
Icon font |
Theme¶
Dark mode with CSS custom properties:
- Background: #0e0e13 → #22222c (elevation layers)
- Text: #fafafa (primary), #a1a1aa (secondary)
- Accent: #f59e0b (gold)
- Bull: #22c55e / Bear: #ef4444
- Fonts: Inter (UI), JetBrains Mono (numbers)
Data Sources (Current: Mock)¶
mock-mcp.json — What would come from MCP tools:
{
"symbol": "CME_MINI:NQ1!",
"timeframe": "5",
"bias": { "daily": "bearish", "pdh": 20598.75, ... },
"session": { "high": 20512.50, "huntSide": "HUNT_HIGH", ... },
"strategy": { "direction": "short", "entry": 20501.75, ... },
"orderBlocks": [{ "dir": "BEAR", "high": 20505.50, ... }],
"smt": { "bearCount": 2, "labels": [...] },
"atr": { "points": 34.50, "positionSize": 12 }
}
Migration Path¶
- Extract CSS into separate file
- Extract JS into modules
- Convert to React TypeScript components
- Replace mock fetch with live MCP WebSocket/polling
- Add state management for real-time updates