<?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: Nabeel</title>
    <description>The latest articles on DEV Community by Nabeel (@nabeel_nob100).</description>
    <link>https://dev.to/nabeel_nob100</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3890993%2Ff9d9a61e-797c-462b-bc6f-ac4ea85d3f4c.jpg</url>
      <title>DEV Community: Nabeel</title>
      <link>https://dev.to/nabeel_nob100</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nabeel_nob100"/>
    <language>en</language>
    <item>
      <title>Building VoteGuide India: How AI Became My Co-Developer</title>
      <dc:creator>Nabeel</dc:creator>
      <pubDate>Sat, 02 May 2026 16:28:25 +0000</pubDate>
      <link>https://dev.to/nabeel_nob100/building-voteguide-india-how-ai-became-my-co-developer-4go9</link>
      <guid>https://dev.to/nabeel_nob100/building-voteguide-india-how-ai-became-my-co-developer-4go9</guid>
      <description>&lt;p&gt;When I joined the PromptWars Virtual hackathon, I knew I wanted to build something that mattered. The Indian election process is massive and, honestly, pretty daunting if you're a first-time voter. I wanted to build a bridge—a portal that makes understanding your democratic rights as easy as sending a text.&lt;/p&gt;

&lt;p&gt;That’s how &lt;strong&gt;VoteGuide India&lt;/strong&gt; was born: an interactive guide with visual timelines, maps, and an AI chatbot to answer any burning questions.&lt;/p&gt;

&lt;p&gt;But building all of this alone during a hackathon? That’s where AI came in. I didn't just plug an AI API into the app; I used AI as my actual development partner. Here’s how it went down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Toolbelt &amp;amp; Why I Chose It&lt;/strong&gt; For the core AI feature (the chatbot), I went with &lt;strong&gt;Google Gemini 1.5 Flash&lt;/strong&gt;. Why? Because when you're dealing with elections, speed and safety are non-negotiable. I needed a model that was snappy but wouldn't start spouting political biases or hallucinated opinions.&lt;/p&gt;

&lt;p&gt;Behind the scenes, I used &lt;strong&gt;AI coding assistants&lt;/strong&gt; constantly. I leaned on them to help scaffold my React components, figure out weird CSS flexbox issues, and set up my Express server. It was like having a senior dev sitting next to me whenever I got stuck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Evolution of a Prompt&lt;/strong&gt; If there’s one thing I learned, it’s that your first prompt is never your last.&lt;/p&gt;

&lt;p&gt;When I first hooked up the chatbot, my prompt was basically: "&lt;em&gt;You are an election assistant. Answer questions about voting.&lt;/em&gt;" The result? It was okay, but it gave generic answers and sometimes pulled in rules from US elections!&lt;/p&gt;

&lt;p&gt;I tweaked it to be more specific: "&lt;em&gt;You are an Indian election assistant. Answer based on the ECI.&lt;/em&gt;" This was much better, but if I pushed it, it would still sometimes playfully offer an opinion.&lt;/p&gt;

&lt;p&gt;Finally, I locked it down with a much stricter constraint: "&lt;em&gt;You are an official, politically neutral guide for the Indian electoral process. You must only provide factual information based on Election Commission of India (ECI) guidelines. Under no circumstances should you endorse a candidate, party, or offer political opinions. Format your answers clearly.&lt;/em&gt;" Bingo. It instantly sounded like an official, helpful, and totally neutral government guide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Human-AI Division of Labor&lt;/strong&gt; The coolest part of this hackathon was realizing what AI is good at versus what I’m good at.&lt;/p&gt;

&lt;p&gt;I let the &lt;strong&gt;GenAI handle&lt;/strong&gt; the tedious stuff: generating boilerplate code, figuring out why my API routes were crashing, and, of course, dynamically answering user questions in the app itself.&lt;/p&gt;

&lt;p&gt;This freed me up—&lt;strong&gt;the human&lt;/strong&gt;—to focus on the stuff that requires empathy and taste. I spent my time designing a clean, Government of India-inspired UI. I made sure the app was fully accessible (WCAG 2.1 AA) so everyone could use it, and I meticulously curated the Google Maps integration to show the exact locations of election offices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrapping Up&lt;/strong&gt; Building VoteGuide India was a huge learning curve, but it proved to me that AI isn't here to write our apps for us—it's here to take away the friction so we can focus on building things that actually matter.&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.amazonaws.com%2Fuploads%2Farticles%2Fqjvwn4v69e1uxf4fimqh.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.amazonaws.com%2Fuploads%2Farticles%2Fqjvwn4v69e1uxf4fimqh.png" alt=" " width="800" height="452"&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.amazonaws.com%2Fuploads%2Farticles%2F0hr1kvpm3s1jne1cty7s.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.amazonaws.com%2Fuploads%2Farticles%2F0hr1kvpm3s1jne1cty7s.png" alt=" " width="800" height="454"&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.amazonaws.com%2Fuploads%2Farticles%2Fmbhjbrkqk2f31py2bnko.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.amazonaws.com%2Fuploads%2Farticles%2Fmbhjbrkqk2f31py2bnko.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>antigravity</category>
      <category>promptwar</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>StadiumSense: Elevating the Fan Experience with AI &amp; Real-time Data 🏟️</title>
      <dc:creator>Nabeel</dc:creator>
      <pubDate>Tue, 21 Apr 2026 16:29:43 +0000</pubDate>
      <link>https://dev.to/nabeel_nob100/stadiumsense-elevating-the-fan-experience-with-ai-real-time-data-289j</link>
      <guid>https://dev.to/nabeel_nob100/stadiumsense-elevating-the-fan-experience-with-ai-real-time-data-289j</guid>
      <description>&lt;h2&gt;
  
  
  A Build-in-Public Journey for the Promptwar Virtual Hackathon
&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.amazonaws.com%2Fuploads%2Farticles%2F28kfghfivotg8xdzd1nu.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.amazonaws.com%2Fuploads%2Farticles%2F28kfghfivotg8xdzd1nu.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Attendee View&lt;/p&gt;
&lt;/blockquote&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.amazonaws.com%2Fuploads%2Farticles%2Ftegd65shpxib49hli7cq.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.amazonaws.com%2Fuploads%2Farticles%2Ftegd65shpxib49hli7cq.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Staff View&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem: The "Stadium Struggle"
&lt;/h2&gt;

&lt;p&gt;We’ve all been there. You’re at a massive stadium, the game is at a critical point, and you’re stuck in a 20-minute line for a burger. Or worse, you’re caught in a human bottleneck trying to find your gate after the final whistle.&lt;br&gt;
For venue staff, it's even more stressful. Managing 50,000+ people with static data is a recipe for safety hazards and customer frustration.&lt;br&gt;
Enter StadiumSense.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Vision: Intelligence at the Edge
&lt;/h2&gt;

&lt;p&gt;StadiumSense is a real-time event management platform designed to solve these exact pain points. My goal was to create a dual-experience solution:&lt;/p&gt;

&lt;p&gt;For Fans: A mobile-first PWA that provides live crowd density heatmaps, gate navigation, and concession pre-ordering to skip the lines.&lt;/p&gt;

&lt;p&gt;For Staff: A high-level dashboard with real-time occupancy metrics and AI-powered crowd routing suggestions to proactively manage the flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Journey: Build-in-Public &amp;amp; Promptwar Virtual
&lt;/h2&gt;

&lt;p&gt;Participating in the Promptwar Virtual Hackathon was the perfect catalyst for this project. The "Build-in-Public" approach kept the pressure on and the feedback loop tight. Seeing the community's response to daily updates was incredibly motivating.&lt;br&gt;
One of the unique aspects of this build was the integration of Antigravity, my AI coding partner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building with Antigravity 🚀
&lt;/h2&gt;

&lt;p&gt;Antigravity wasn't just a "copilot"; it felt like a senior lead developer sitting next to me. Throughout the hackathon, Antigravity helped me:&lt;/p&gt;

&lt;p&gt;Rapidly Prototype: From the first FoodOrderForm.tsx to the complex MapOverlay.tsx, we iterated at lightning speed.&lt;/p&gt;

&lt;p&gt;Squash "Heisenbugs": We tackled a nasty infinite routing loop and subtle Firestore date serialization issues that would have taken hours to debug solo.&lt;/p&gt;

&lt;p&gt;Optimize for Evaluation: We didn't just build features; we audited the code for WCAG 2.1 accessibility compliance and optimized performance using lazy loading and debounced listeners.&lt;/p&gt;

&lt;p&gt;Architecting the AI: Antigravity helped bridge the gap between the frontend and the Gemini API, ensuring the crowd-routing suggestions were both safe and realistic.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;p&gt;Frontend: React + TypeScript + Vite (for that blazing-fast dev experience).&lt;/p&gt;

&lt;p&gt;Styling: Modern Vanilla CSS with high-end aesthetics (glassmorphism and dynamic transitions).&lt;/p&gt;

&lt;p&gt;Backend: Firebase (Firestore for real-time sync, Cloud Functions for AI logic).&lt;/p&gt;

&lt;p&gt;Intelligence: Google Gemini API for predictive crowd management.&lt;br&gt;
Real-time Visualization: Google Maps JavaScript API with custom heatmap layers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Breakthroughs
&lt;/h2&gt;

&lt;p&gt;AI-Powered Routing: Using Gemini to analyze live occupancy data across different sections and suggest specific redistribution strategies (e.g., "Redirect Gate B traffic to Gate D").&lt;/p&gt;

&lt;p&gt;Offline Resilience: Building as a Progressive Web App (PWA) ensures that even in a crowded stadium with spotty 5G, the core UI remains responsive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building StadiumSense has been a whirlwind. From the initial concept to the final accessibility audit, the journey has reinforced one thing: the future of software development is collaborative. Using tools like Antigravity allows developers to focus on the "what" and the "why," while the AI helps master the "how."&lt;/p&gt;

</description>
      <category>stadiumsense</category>
      <category>promptwarvirtual</category>
      <category>coding</category>
      <category>antigravity</category>
    </item>
  </channel>
</rss>
