Alexandre DuteauResume
← All projects

Full-Stack
Hack the Change 2025 · 9th of 65 teams · team of 2

UrbanSignal

A civic 311 analytics dashboard with an LLM assistant that reasons over aggregated data instead of raw rows.

Built in 24 hours at Hack the Change 2025, UrbanSignal ingests over a thousand Calgary 311 service requests into Supabase Postgres and surfaces them through a community-district choropleth map, a live activity feed, and per-request detail and status views for city staff.

The part I'm proudest of is the AI analytics page. Rather than streaming raw rows to the model, it aggregates open requests by community and category server-side into a compact structured summary before prompting, so token cost stays flat as the dataset grows. Authentication is cookie-based SSR through @supabase/ssr with signup, email confirmation, password reset, and middleware-protected routes.

The map is Leaflet over a City of Calgary community district boundary file with 313 polygons. The boundaries and the requests share no ID, so counts are joined to districts by normalised community name, after a cleaning pass that drops stray one-to-three character district codes and title-cases the all-caps names. The result is a seven-step yellow-to-red scale with a popup per district.

The chat route runs on the Edge runtime and calls the OpenAI Responses API with plain fetch, no SDK, and replies are rendered by a small hand-written Markdown renderer. On the staff side, closing a request writes a notification row for the resident who submitted it, and the request table filters by community and type and pages through the latest thousand rows.