# boWave Project Updates & Fixes This document summarizes the changes made to the boWave project to improve NMEA 2000 data visibility, dashboard aesthetics, and Windows compatibility. ## 🚀 Key Improvements ### 1. Unified Dashboard Access (Port 8090) - **Problem:** Accessing different services required multiple ports (3000, 1780, 6680, etc.), causing CORS and firewall issues. - **Solution:** Configured Nginx and Vite proxies to tunnel all backend services through the main dashboard port (8090). - **Paths:** - SignalK: `/signalk` - Snapcast: `/snapcast-ws` - Mopidy: `/mopidy` - Jellyfin: `/jellyfin` ### 2. "Ship Control" Dashboard Design - **New UI:** Implemented a minimalist, high-end yacht aesthetic based on provided photo references. - **BoatControl Component:** Added a central interactive boat profile with circular category icons (Lights, Climate, Nav, Music, Energy). - **FloorPlan Component:** Created a visual deck plan for controlling lighting and climate in specific zones (Salon, Cabins, etc.). - **Central Instrument:** Added a floating gauge over the boat for immediate SOG and Heading monitoring. ### 3. NMEA 2000 Data Fixes - **SignalK Proxy:** Fixed a bug in the API router that prevented listeners from re-attaching when switching from real to mock data. - **Auto-Fallback:** The dashboard now waits 5 seconds for real SignalK data; if none is received, it automatically starts the mock data stream so the dashboard never looks "empty". ### 4. Windows Compatibility & Ease of Use - **Self-Healing Pipes:** Named pipes (`.pcm` files) are now created automatically inside the Docker containers during startup. No more manual `mkfifo` needed on the host. - **Batch Scripts:** Added `dev.bat` and `stop.bat` for Windows users who don't have `make` installed. - **Docker Fixes:** Corrected `librespot` execution errors by using the official image and proper command list formatting. ### 5. Audio System Enhancements - **Spotify & AirPlay Visibility:** Added these services to the health check monitor and updated the `useZones` hook to track their stream status via Snapcast. - **Unified API:** The `createApi` factory now automatically uses the dashboard host, making it fully portable across different network setups. ## 🛠️ How to start (Windows) 1. Ensure Docker Desktop is running. 2. Run `.\dev.bat` in the project root. 3. Open **http://localhost:8090** in your browser.