Inspiration
Residents already tell the city what is broken. Noise complaints, illegal dumping, park issues, etc., all go through 311, and Toronto publishes those requests as open data. 311 records what residents report. It does not record what they would prioritize with funding. We created WardFund to fill that missing piece: a resident reads the 311 trends for their ward, asks Gemini questions about them, and spends a virtual $10,000 where they want it to go, so officials can see what residents want prioritized.
What it does
User can select their ward to visualise real 311 open data and view monthly trends and database backed category evidence. With Gemini AI, users can ask questions about the data and Gemini can provide accurate explanations solely based on the data given. Each user is allocated $10,000 to distribute across three community projects, when one submit their budget preference, WardFund logs a demo transaction to Solana Devnet, which generate verifiable block receipts.
How we built it
We built our platform by integrating Tiger Data (TimescaleDB) to process the City of Toronto’s 311 service request data and analyze monthly service trends. Using Python and FastAPI, we developed a backend that delivers ward-level insights, manages budgets, and handles data processing. We integrated Google Gen AI into our backend to transform real civic statistics into clear, conversational answers to users’ questions. Our blockchain layer uses Solana on Devnet to demonstrate transparent and verifiable community transactions. The frontend combines HTML, CSS, JavaScript, etc to create an interactive ward map and visualize service request trends over time.
Challenges we ran into
One of the challenges is to structure Gemini’s context window to make sure it strictly answers users’ questions with claims backed by the 311 service data. The second one is that the 311 open data has addresses that have inconsistent field names, there could be french accents or unescaped commas etc. Another one is that the huge amount of data can affect time series performance, which we solved with moving our storage to tiger data.
What we learned
Throughout this project, we learnt how to handle large sizes of data using TimescaleDB on Tigerdata for quick time series analytics. We also gained experience designing prompts for Google GenAI to only follow our instructions. Besides, we learnt to interact with Solana Devnet to record demonstration transactions and verify through blockchain explorers. Beyond technical skills, we also learnt that there is an active civic engagement in the city and the importance of understanding the context behind civic data.
Built With
- chart.js
- fastapi
- gemini
- google-genai
- javascript
- pandas
- python
- solana
- tiger-data
Log in or sign up for Devpost to join the conversation.