# New User Experience ## Overview The home page (`#/` or `#/home`) is the front door to the analyzer โ€” a diagnostic companion for mesh users to check if their node is being heard, and a dashboard for regulars to monitor favorites. ## Features ### Hero Search - Prefix search with auto-dropdown as you type (name or public key) - Quick stats bar: active nodes ยท packets today ยท observers online - Results link to node health card or node detail page ### Node Health Cards Shown after search or on home page for favorited nodes. **Status logic:** - ๐ŸŸข HEALTHY: heard by observers in the last hour - ๐ŸŸก DEGRADED: last heard 1-24h ago - ๐Ÿ”ด SILENT: not heard in 24+ hours **Contents:** last heard, observer count, avg SNR with quality label, hop count, packets today, status reasoning text. ### Favorites ("Your Nodes") - Star/unstar nodes from any node detail view - Stored in localStorage - "Your Nodes" section on home page with live status cards - Quick access to node detail via click ### Quick Setup Checklist Collapsible accordion for troubleshooting: 1. Correct preset / frequency 2. Send a flood advert 3. Check repeat count 4. Nearby repeaters (link to map) 5. Frequency mismatch warning ### Navigation Footer Links to full dashboard pages: Map, Channels, Packet Inspector, Observers ## API Endpoints ### GET /api/nodes/search?q= Prefix search by name or public key, returns top 10 matches. **Note:** Static path `/api/nodes/search` must be defined BEFORE parameterized `/api/nodes/:pubkey` in Express routes. ### GET /api/nodes/:pubkey/health Returns health summary: node info, status, observer list with SNR/RSSI, stats, recent packets. ## Files - `public/home.js` + `public/home.css` โ€” home page module - `server.js` โ€” search + health endpoints - `db.js` โ€” `searchNodes()` + `getNodeHealth()` queries - `public/app.js` โ€” default route = home