GridSight — Project Story
Inspiration
GridSight was inspired by how difficult it is for everyday citizens to report infrastructure problems in a meaningful way.
Streetlight outages, vegetation near power lines, damaged utility poles, and unsafe sidewalks often go unreported or are reported without enough detail to be useful. Even when people do report them, their submissions are frequently ignored, delayed, or lost in complex systems.
At the same time, many people are hesitant to submit photos because of privacy concerns. Faces, license plates, and personal surroundings are often captured unintentionally.
We wanted to build a system that makes reporting easy, fast, and privacy-safe, while helping operations teams act on issues immediately.
What We Learned
This project taught us that technical solutions only work when they are trusted.
Privacy is not just a legal requirement. It is a design principle. If users do not feel safe submitting data, they will not participate.
We learned how on-device processing can reduce risk and increase confidence. We also learned that modern AI systems must be treated as unreliable components that require validation and fallback logic.
From an engineering perspective, we learned how to design systems that balance usability, security, and automation.
How We Built GridSight
GridSight is built as a Progressive Web App using Next.js and TypeScript, with Supabase for authentication, storage, and database management.
The system has three main layers:
$$ \text{Client} \rightarrow \text{Privacy Layer} \rightarrow \text{AI Analysis} \rightarrow \text{Workflow System} $$
1. Client-Side Privacy Layer
All uploaded images are processed locally in the browser.
We use face detection models and a manual blur tool to redact faces and license plates before upload. Only the redacted image is ever sent to the backend.
Formally, for an image ( I ), we compute:
$$ I_r = f_{\text{redact}}(I) $$
where ( I_r ) is the privacy-protected image.
The original image is never stored or transmitted.
2. AI Analysis Service
After redaction, images are sent to a secure API route.
This route uses the OpenAI Responses API to analyze the image and return structured data in strict JSON format, including:
- Issue type
- Severity
- Confidence
- Recommended actions
- Safety notes
If the AI system fails, the backend returns a deterministic fallback:
$$ A = \text{ManualReview} $$
This ensures system reliability.
3. Workflow and Ticket System
Each submission is saved as a report in Supabase.
Operations users can triage reports and convert them into tickets that follow a structured workflow:
$$ \text{new} \rightarrow \text{assigned} \rightarrow \text{in_progress} \rightarrow \text{resolved} $$
This bridges the gap between citizen input and institutional response.
Challenges We Faced
Privacy and Redaction Accuracy
Automatically detecting all sensitive regions is difficult in real-world images.
Lighting, angles, and occlusion reduce detection accuracy. To address this, we built a manual redaction tool that allows users to blur any missed areas.
AI Reliability
AI models can return incomplete or invalid outputs.
We implemented strict schema validation and fallback logic to ensure that every submission produces a usable report.
Role-Based Security
Implementing fine-grained access control with Supabase Row Level Security required careful policy design to prevent unauthorized access.
Testing these policies thoroughly was time-consuming but necessary.
System Integration
Connecting the frontend, database, authentication, storage, and AI services into one coherent system was challenging.
Small configuration errors could break the entire workflow, especially in deployment environments.
Reflection
This project showed us that social impact systems require more than advanced technology.
They require trust, transparency, and reliability.
GridSight demonstrates that privacy and automation can coexist, and that citizens can participate in infrastructure maintenance without sacrificing personal safety.
What’s Next
In the future, we plan to:
- Improve redaction accuracy using lightweight on-device models
- Support offline submissions
- Integrate directly with municipal systems
- Add accessibility features for visually impaired users
- Expand to other forms of civic reporting
Our long-term goal is to create a global, privacy-first platform for safer and more responsive public infrastructure.
Conclusion
GridSight turns citizen observations into actionable intelligence.
By combining on-device privacy protection, AI-powered analysis, and structured workflows, we reduce response time and increase trust between communities and service providers.
Our aim is simple: safer infrastructure, built with respect for privacy.
Built With
- 15
- ai:
- api
- auth
- frontend:
- next.js
- openai
- postgresql
- responses
- storage
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.