# 🚔 MotorSignal Waze Alert Relay Server A high-performance, lightweight headless relay backend that queries Waze Live Map feeds and provides normalized **Police Speed Traps, Speed Cameras, Red-Light Cameras, and Road Hazard Alerts** directly to the **MotorSignal** Motorcycle Cockpit application. --- ## 🚀 Quick Start ### Method 1: Run with Node.js (Local or VPS) `ash cd server/waze_relay npm install npm start ` The server will start on http://0.0.0.0:3000. ### Method 2: Run with Docker / Docker Compose `ash cd server/waze_relay docker compose up -d ` --- ## 📱 Connecting to MotorSignal 1. Open **MotorSignal** on your phone. 2. Go to **Settings** → **Community Traffic Provider**. 3. Under **Custom Endpoint URL**, enter your relay server URL: ` http://:3000/alerts ` *(e.g., http://192.168.1.69:3000/alerts for local Wi-Fi, or https://your-domain.com/alerts for remote VPS).* 4. Tap **TEST CONNECTION**. You will see the green **CONNECTED** badge! --- ## 📡 REST API Endpoints ### 1. Health Check * GET /health or GET / * **Response:** `json { "status": "ok", "service": "MotorSignal Waze Community Relay", "version": "1.0.0" } ` ### 2. Live Alerts Feed * GET /alerts?lat=37.7749&lng=-122.4194&radius=5000 * **Query Parameters:** * lat: Latitude of vehicle * lng: Longitude of vehicle * adius: Search radius in meters (Default: 5000m) * **Response:** `json { "provider": "waze_relay", "count": 2, "alerts": [ { "id": "wz_37.77490_-122.41940", "type": "POLICE", "category": "police", "latitude": 37.7749, "longitude": -122.4194, "roadName": "Market St", "description": "Hidden police speed trap reported on Market St", "severity": "high", "confidence": 0.9 } ] } ` --- ## ⚡ Features * **Police Trap Detection:** Parses POLICE_HIDDEN and POLICE_VISIBLE radar traps. * **Camera Enforcement:** Speed cameras and red-light enforcement cameras. * **In-Memory Geo-Grid Caching:** 30-second TTL prevents rate limiting and ensures sub-10ms response times for the motorcycle HUD.