From 1f7d55818ea65192c599de6b058548e2cf4dfb8a Mon Sep 17 00:00:00 2001 From: Christopher Mayor Date: Fri, 20 Feb 2026 20:38:27 -0800 Subject: [PATCH] docs: add comprehensive README --- README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..56c8be6 --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +# Homelab Topology Visualizer + +A responsive, real-time dashboard and visualizer for your homelab infrastructure. + +## Features Added via 10-Skill Integration + +This project has been thoroughly enhanced with 10 specific infrastructure and development skills: + +### 1. Backend & API Security \`api-security-hardening\`, \`nodejs-backend-patterns\` +- Implemented **Helmet** for HTTP response headers. +- Added **Rate Limiting** to prevent abuse on discovery endpoints. +- Structured Error Handling with an object-oriented hierarchy (\`AppError\`) and a global error catching middleware. + +### 2. Observability & Logging \`observability-monitoring\` +- Converted from console logs to **Pino** structured logging. +- Includes a custom request logger middleware that outputs formatted JSON in production and readable logs via \`pino-pretty\` in development. + +### 3. Real-Time WebSockets \`websocket-engineer\` +- Replaced HTTP polling with **Socket.IO** connections. +- The UI maintains a live connection with the server, receiving \`topology:update\` events exactly when new data is discovered. +- Features resilient reconnection with exponential backoff and connection status indicators in the dashboard footer. + +### 4. Containerization \`docker\` +- Full local containerization. +- Features a **Multi-Stage Dockerfile** that builds the Vite frontend and serves via a lightweight Node.js Alpine image. +- A \`docker-compose.yml\` stack makes spinning up both the frontend and backend seamless. Includes a health-check endpoint. + +### 5. Testing Infrastructure \`vitest\` +- Integrated **Vitest** for unit testing. +- Includes thorough coverage formatting color utility functions and Zustand store actions. Run with \`npm test\`. + +### 6. Dashboards & Visualization \`data-visualizer\` +- Added Recharts-inspired KPI panels (\`MetricsBar.tsx\`). +- Included a pure CSS, screen-reader accessible bar chart mapping services to hosts (\`HostChart.tsx\`). +- Accessible colorblind-safe color loops are enforced. + +### 7. Domain Types & Architecture \`infrastructure-monitoring\`, \`proxmox-admin\`, \`network-engineer\` +- **Virtualization:** Native TypeScript support for Proxmox VMs and LXC containers with resource metrics. +- **Networking:** Supported types for VLANs, subnets, and gateways. +- **Monitoring:** API latency and performance are actively measured for network mapping jobs. + +## Running Locally + +To run this application via Docker Compose: + +\`\`\`bash +# Build and start the containers +docker-compose up -d --build + +# View logs +docker-compose logs -f +\`\`\` + +The applications will be running at: +- **Frontend Dashboard:** http://localhost:3000 +- **Backend API:** http://localhost:3001 + +## Development + +\`\`\`bash +# Install dependencies +npm ci + +# Start the dev server +npm run dev +\`\`\` + +## Testing + +\`\`\`bash +# Run unit tests +npm test + +# Run tests with coverage +npm run test:coverage +\`\`\`