# SignalMap client A collaborative danger zone explorer built with React, Vite, and Leaflet. Crowd members can drop signals on an OpenStreetMap base layer; the UI highlights the hottest areas as a heatmap and keeps track of active contributors without any authentication. ## Getting started 1. Install dependencies (Node.js 20+ recommended): ```bash npm install ``` 2. Start the Vite dev server: ```bash npm run dev ``` The app assumes the API is available at `http://localhost:8000/api.php`. You can override this by setting `VITE_API_BASE` in an `.env` file. 3. Start the lightweight PHP backend (from the repository root): ```bash php -S 0.0.0.0:8000 -t server/public ``` The backend stores data in `server/var/points.sqlite` (ignored by git). It identifies users by IP address and provides aggregated heatmap cells plus contributor statistics. ## Features - Leaflet + OpenStreetMap map canvas with a live heat layer (via `leaflet.heat`). - Click-to-report interaction that drops a signal at the clicked coordinates. - Heatmap aggregation and "danger zone" overlays that spotlight the busiest cells. - Live contributor feed showing the most recent pings and top spotters. - Accessible, shadcn-inspired UI components without any authentication requirement. ## Production build ```bash npm run build ``` The output will be placed in `dist/`. Serve it with your favourite static host while keeping the PHP API reachable at `/api.php`.