diff --git a/ROADMAP.md b/ROADMAP.md index 2e0563b..b850dc7 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -291,12 +291,21 @@ PPF (Proxy Fetcher) is a Python 2 proxy scraping and validation framework design ### Web Dashboard (Done) - [x] /dashboard endpoint with dark theme HTML UI - [x] /api/stats endpoint for JSON runtime statistics -- [x] Auto-refresh with JavaScript fetch every 5 seconds +- [x] Auto-refresh with JavaScript fetch every 3 seconds - [x] Stats provider callback from proxywatchd.py to httpd.py - [x] Displays: tested/passed/success rate, thread count, uptime - [x] Tor pool health: per-host latency, success rate, availability - [x] Failure categories breakdown: timeout, proxy, ssl, closed +### Dashboard Enhancements v2 (Done) +- [x] Prominent check type badge in header (SSL/JUDGES/HTTP/IRC) +- [x] System monitor bar: load, memory, disk, process RSS +- [x] Anonymity breakdown: elite/anonymous/transparent counts +- [x] Database health: size, tested/hour, added/day, dead count +- [x] Enhanced Tor pool stats: requests, success rate, healthy nodes, latency +- [x] SQLite ANALYZE/VACUUM functions for query optimization +- [x] Lightweight design: client-side polling, minimal DOM updates + --- ## Technical Debt diff --git a/TODO.md b/TODO.md index 4657825..03721e8 100644 --- a/TODO.md +++ b/TODO.md @@ -239,6 +239,52 @@ if __name__ == '__main__': - Failure categories: timeout, proxy, ssl, closed, etc. - proxywatchd.py: get_runtime_stats() method provides stats callback +### [x] 21. Dashboard Enhancements (v2) + +**Completed.** Major dashboard improvements for better visibility. +- Prominent check type badge in header (SSL/JUDGES/HTTP/IRC with color coding) +- System monitor bar: load average, memory usage, disk usage, process RSS +- Anonymity breakdown: elite/anonymous/transparent proxy counts +- Database health indicators: size, tested/hour, added/day, dead count +- Enhanced Tor pool: total requests, success rate, healthy nodes, avg latency +- SQLite ANALYZE/VACUUM functions for query optimization (dbs.py) +- Database statistics API (get_database_stats()) + +--- + +## Potential Dashboard Improvements + +### [ ] Dashboard Performance Optimizations + +**Goal:** Ensure dashboard remains lightweight and doesn't impact system performance. + +**Current safeguards:** +- No polling on server side (client-initiated via fetch) +- 3-second refresh interval (configurable) +- Minimal DOM updates (targeted element updates, not full re-render) +- Static CSS/JS (no server-side templating per request) +- No persistent connections (stateless HTTP) + +**Future considerations:** +- [ ] Add rate limiting on /api/stats endpoint +- [ ] Cache expensive DB queries (top countries, protocol breakdown) +- [ ] Lazy-load historical data (only when scrolled into view) +- [ ] WebSocket option for push updates (reduce polling overhead) +- [ ] Configurable refresh interval via URL param or localStorage +- [ ] Disable auto-refresh when tab not visible (Page Visibility API) + +### [ ] Dashboard Feature Ideas + +**Low priority - consider when time permits:** +- [ ] Dark/light theme toggle +- [ ] Export stats as CSV/JSON from dashboard +- [ ] Historical graphs (24h, 7d) using stats_history table +- [ ] Per-ASN performance analysis +- [ ] Geographic map visualization (requires JS library) +- [ ] Alert thresholds (success rate < X%, MITM detected) +- [ ] Mobile-responsive improvements +- [ ] Keyboard shortcuts (r=refresh, t=toggle sections) + --- ## Completed