Inspiration

Civic problems are everywhere — potholes, garbage, broken streetlights, water leakage, and other issues that affect everyday life. The problem is that reporting these issues can often feel slow, complicated, or disconnected from the people responsible for solving them.

We wanted to build something that makes civic reporting as simple as seeing a problem, taking a photo, and reporting it.

That idea led us to build CivicAI — an AI-powered civic issue reporting platform designed to connect citizens, communities, and local authorities through a simple digital experience.

What it does

CivicAI allows users to report real-world civic problems using images and descriptions.

A user can:

  • 📸 Upload an image of a civic issue
  • 🤖 Use AI to analyze and identify the issue
  • 📝 Generate a structured civic report
  • 📍 Associate issues with geographic locations
  • 🗺️ View reported issues on an interactive map
  • 🔎 Filter issues by type and severity
  • 📊 Monitor reported and resolved issues through a dashboard
  • ✅ Track the status of submitted reports

The platform is designed around common problems such as potholes, garbage, broken streetlights, water leakage, and other infrastructure issues.

How we built it

CivicAI is a full-stack application built using modern web technologies.

Frontend

We built the user interface with React and Vite, focusing on a clean, responsive interface that works across desktop and mobile devices.

Backend

The backend is powered by Python and FastAPI, providing REST APIs for image analysis, report creation, report retrieval, statistics, and status updates.

AI

We integrated Google Gemini to analyze uploaded images and help identify civic issues, severity, and relevant information that can be used to create structured reports.

Database

We used Supabase for storing and managing application data.

Maps

We integrated Mapbox to visualize civic reports geographically and make it easier to understand where problems are concentrated.

Deployment

The frontend is deployed using Vercel, while the backend runs on Render.

This gave us a complete production deployment rather than keeping the project limited to a local development environment.

Challenges we ran into

One of our biggest challenges was connecting multiple technologies into one reliable production system.

During development, the application worked locally but deployment introduced several unexpected problems. We had to debug backend dependencies, environment variables, API URLs, CORS configuration, and communication between our Vercel frontend and Render backend.

We also had to make sure that sensitive API keys and configuration values were not exposed in our GitHub repository.

Another challenge was designing the application so that AI analysis, report creation, database storage, and map visualization could work together without making the user experience complicated.

These problems taught us that building a real application is not just about writing code — deployment, security, APIs, configuration, and user experience are equally important.

Accomplishments that we're proud of

We are proud that CivicAI evolved from an idea into a fully deployed working application.

Some of our biggest accomplishments include:

  • 🚀 Successfully deploying the frontend and backend
  • 🤖 Integrating AI-powered civic issue analysis
  • 🗺️ Building an interactive civic issue map
  • 📊 Creating a dashboard for monitoring reports
  • 📸 Supporting image-based issue reporting
  • 🔄 Implementing report status tracking
  • 🔐 Keeping sensitive configuration outside the public repository
  • 🌐 Making the application accessible through a public URL
  • 🔗 Connecting the complete frontend → backend → database → AI workflow

Most importantly, we built something that can actually be opened and used by someone outside our development environment.

What we learned

This project taught us a lot about building and deploying full-stack applications.

We learned how to connect a React frontend with a FastAPI backend, work with APIs, integrate AI into an application, manage environment variables, configure CORS, use Supabase, integrate mapping services, and deploy applications using Vercel and Render.

We also learned that debugging becomes very different once an application is deployed. Problems that never appeared locally — such as incorrect production API URLs and CORS configuration — became important challenges.

Most importantly, we learned how to turn an idea into a working product by continuously testing, debugging, and improving it.

What's next for CivicAI

CivicAI is only the beginning.

In the future, we want to make the platform more powerful by adding:

  • 🏛️ Direct integration with municipal complaint systems
  • 📱 A dedicated mobile application
  • 🔔 Notifications when report statuses change
  • 🧠 More advanced AI-based issue detection
  • 📈 Civic issue heatmaps and trend analysis
  • 👥 Community verification and upvoting
  • 🗺️ Better location-based issue tracking
  • 🏆 Community participation and reward systems
  • 📊 Analytics that can help authorities identify recurring infrastructure problems

Our long-term goal is to make CivicAI a platform that doesn't just report civic problems, but helps communities and authorities understand, prioritize, and solve them.

Built With

Share this project:

Updates

Submission history