<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aayush Malve</title>
    <description>The latest articles on DEV Community by Aayush Malve (@aayushmalve).</description>
    <link>https://dev.to/aayushmalve</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155285%2F44f65d74-adf4-4b13-8bbc-a5731629784c.jpeg</url>
      <title>DEV Community: Aayush Malve</title>
      <link>https://dev.to/aayushmalve</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aayushmalve"/>
    <language>en</language>
    <item>
      <title>CivicLens: Turn a Civic Problem Photo into a Verified Complaint</title>
      <dc:creator>Aayush Malve</dc:creator>
      <pubDate>Mon, 05 Oct 2026 05:52:27 +0000</pubDate>
      <link>https://dev.to/aayushmalve/civiclens-turn-a-civic-problem-photo-into-a-verified-complaint-43aa</link>
      <guid>https://dev.to/aayushmalve/civiclens-turn-a-civic-problem-photo-into-a-verified-complaint-43aa</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;CivicLens&lt;/strong&gt; for a friend who encounters civic issues daily but rarely reports them because the complaint process is too tedious.&lt;/p&gt;

&lt;p&gt;The problem is simple: when someone notices a pothole, garbage accumulation, broken streetlight, damaged road, overflowing drain, or another civic issue, reporting it can be surprisingly difficult. They have to figure out what the issue is, describe it properly, identify where it belongs, find the right department, and then have little visibility into what happens afterward.&lt;/p&gt;

&lt;p&gt;CivicLens turns that process into:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Take a photo → AI analyzes it → confirm the location → route the complaint → track it → verify the resolution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A citizen can upload a photo of a civic problem and CivicLens uses &lt;strong&gt;Gemma 4&lt;/strong&gt; to identify the issue, assess its severity and confidence, extract visible evidence, describe the risk, and generate a structured civic report.&lt;/p&gt;

&lt;p&gt;The complaint is connected to a location and routed toward the appropriate department, giving authorities a structured case they can track and act on. Once work begins, the system can use before-and-after evidence to help determine whether the issue was actually resolved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcl26qf7o15cvgvbu2j08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcl26qf7o15cvgvbu2j08.png" alt="CivicLens Authority Dashboard" width="799" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgld24sqgdvo8y7gs9406.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgld24sqgdvo8y7gs9406.png" alt="CivicLens AI Civic Issue Analysis" width="799" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhp37o0y7myqslvwog76x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhp37o0y7myqslvwog76x.png" alt="CivicLens Complaint Tracking Workflow" width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://civiclens-hacktober.vercel.app/" rel="noopener noreferrer"&gt;https://civiclens-hacktober.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo shows the complete CivicLens workflow from uploading a civic issue photo to AI analysis, location confirmation, and complaint management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/aayushmalve/civiclens-hacktober-041026" rel="noopener noreferrer"&gt;https://github.com/aayushmalve/civiclens-hacktober-041026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the CivicLens application code without API keys, environment files, or generated dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;CivicLens is built around &lt;strong&gt;Gemma 4&lt;/strong&gt;, specifically &lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;, for visual analysis of civic problems.&lt;/p&gt;

&lt;p&gt;The AI analyzes uploaded images and returns structured information including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Civic issue category&lt;/li&gt;
&lt;li&gt;Issue title&lt;/li&gt;
&lt;li&gt;Severity&lt;/li&gt;
&lt;li&gt;Confidence&lt;/li&gt;
&lt;li&gt;Visual evidence&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Public risk&lt;/li&gt;
&lt;li&gt;Recommended action&lt;/li&gt;
&lt;li&gt;Complaint report&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Next.js&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemma 4&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google GenAI SDK&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EXIF GPS extraction&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Browser Geolocation API&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Photon geocoding&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leaflet / OpenStreetMap&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The overall workflow is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Photo evidence → Gemma 4 analysis → Location detection → Citizen confirmation → Department routing → Civic complaint → Tracking → Resolution evidence → AI verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The MVP uses Neon PostgresSQL for complaint persistence, while the architecture can later add object storage and municipal integrations for production deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Using &lt;strong&gt;Gemma 4&lt;/strong&gt;, an open-weight model, gives CivicLens a more adaptable AI layer.&lt;/p&gt;

&lt;p&gt;The model can be evaluated, replaced, adapted, or deployed according to the needs and infrastructure of the application rather than making the entire civic workflow dependent on a single closed model.&lt;/p&gt;

&lt;p&gt;This flexibility is particularly useful for civic applications, where different cities and organizations may have different infrastructure, privacy requirements, and deployment constraints.&lt;/p&gt;

&lt;p&gt;The AI layer can also evolve independently from the reporting, routing, tracking, and resolution-verification systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Build for a Friend&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
