How aadi-tya-24/citypulse. works
CityPulse serves a civic dashboard: users select a city or route, inspect per-area conditions and alerts, and can submit reports or trigger demos. The documented pipeline normalizes feeds, detects anomalies and coincident signals, scores area health, and produces alerts and summaries that reach REST and Socket.IO clients. The excerpts show route ownership for selected API and feed operations; other documented capabilities are represented at their enclosing source paths, with uncertain internal wiring omitted.
Main entry points: index.html Map and dashboard UI · index.js REST endpoints · engine.js Anomaly analysis · config.js Zones and thresholds
Components 23
City and feeds
- Zones and thresholds
server/config.js - Feed polling and simulation
server/index.js - City and route selection
server/index.js - Report consensus
server/index.js
Civic analytics
- Feed normalization
server/engine.js - Anomaly analysis
server/engine.js - Signal correlation
server/engine.js - Area health scoring
server/engine.js - Alert rules
server/engine.js - Plain-language summaries
server/index.js
API and live delivery
- REST endpoints
server/index.js - Socket.IO state
server/index.js - Current state and history
server/index.js
Dashboard experience
- Map and dashboard UI
public/index.html - Route and commute results
public/index.html - Report and demo controls
public/index.html
Other components
- Dashboard user
- Browser geolocation
- Open-Meteo
- OpenWeatherMap
- OSRM routes
- OpenStreetMap services
- Gemini summaries
Connections 28
- Zones and thresholds → Feed polling and simulation: configures
- Zones and thresholds → Feed normalization: sets windows
- Zones and thresholds → Anomaly analysis: sets weights
- Feed polling and simulation → Open-Meteo: fetches weather
- Feed polling and simulation → OpenWeatherMap: tries weather
- Feed polling and simulation → OpenStreetMap services: looks up areas
- City and route selection → OSRM routes: requests routes
- Feed polling and simulation → Feed normalization: supplies readings
- Feed normalization → Anomaly analysis: normalizes readings
- Anomaly analysis → Signal correlation: scores signals
- Anomaly analysis → Area health scoring: scores factors
- Anomaly analysis → Alert rules: checks rules
- Anomaly analysis → Plain-language summaries: supplies analysis
- Plain-language summaries → Gemini summaries: requests wording
- Report consensus → Feed polling and simulation: triggers update
- REST endpoints → Report consensus: records reports
- REST endpoints → City and route selection: sets city or route
- REST endpoints → Current state and history: reads state
- Current state and history → Socket.IO state: emits updates
- REST endpoints → Map and dashboard UI: serves data
- Socket.IO state → Map and dashboard UI: pushes state
- Dashboard user → Map and dashboard UI: uses
- Map and dashboard UI → REST endpoints: requests data
- Map and dashboard UI → Socket.IO state: connects
- Browser geolocation → REST endpoints: provides location
- Map and dashboard UI → Route and commute results: shows results
- Map and dashboard UI → Report and demo controls: shows controls
- Report and demo controls → REST endpoints: submits actions