Analytics Page:
- Implemented a new, dynamic analytics page with date filtering.
- Added KPI summary tiles for total, completed, and aborted swaps, average swap time, and station uptime.
- Included three interactive charts: Swap Activity Over Time, Hourly Swap Distribution, and Swap Abort Reasons.
- Added a Slot Utilization Heatmap for at-a-glance diagnostics.
- Styled charts for the dark theme and fixed axis scaling issues.
Station Selection Page:
- Enhanced the station selection page to display live daily swap statistics on each station card.
Backend API:
- Created a new '/api/analytics' endpoint to serve all KPI and chart data.
- Created a new '/api/stations/daily-stats' endpoint.
Fixes & Refactoring:
- Centralized all common header logic into common-header.js to resolve script conflicts.
- Improved dashboard WebSocket handler to correctly process partial data payloads.
This commit completes the initial version of the frontend application by adding full functionality to the logs page and implementing several key UI/UX improvements across the dashboard.
Key Changes:
- **feat(logs):**
- Implemented a real-time log viewer by connecting the page to the backend WebSocket server.
- The script now intelligently sorts incoming `EVENTS` and `RPC` messages into their respective log textareas.
- The header is now fully dynamic and shares the same live status polling logic as the main dashboard for UI consistency.
- **fix(dashboard):**
- Corrected the online/offline status logic to use a reliable polling mechanism, ensuring the header status is always accurate.
- Resolved a bug that caused the dashboard to show stale data after a station went offline by implementing a UI reset function.
- Implemented a more robust, themed `flatpickr` date/time picker for the download modal.
- **refactor(ui):**
- Added a universal button feedback system using CSS transitions for a smooth "press" effect on all buttons.
- Redesigned the "empty chamber" state to be more intuitive, featuring a larger icon and conditionally displayed slot temperature.
- Reorganized button layouts in the header and sidebar for better ergonomics.