<?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>Forem: Arpit Pandey</title>
    <description>The latest articles on Forem by Arpit Pandey (@arpitpandey0307).</description>
    <link>https://forem.com/arpitpandey0307</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%2F3875916%2Fdc737532-0531-4a44-ab2b-30225f69538c.jpg</url>
      <title>Forem: Arpit Pandey</title>
      <link>https://forem.com/arpitpandey0307</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arpitpandey0307"/>
    <language>en</language>
    <item>
      <title>Build ElectIQ: Turning Election Complexity into an Interactive AI Experience</title>
      <dc:creator>Arpit Pandey</dc:creator>
      <pubDate>Wed, 29 Apr 2026 23:04:13 +0000</pubDate>
      <link>https://forem.com/arpitpandey0307/build-electiq-turning-election-complexity-into-an-interactive-ai-experience-8oj</link>
      <guid>https://forem.com/arpitpandey0307/build-electiq-turning-election-complexity-into-an-interactive-ai-experience-8oj</guid>
      <description>&lt;p&gt;Elections are one of the most important pillars of any democracy — yet for many people, especially first-time voters, the process feels confusing, fragmented, and intimidating.&lt;/p&gt;

&lt;p&gt;What if understanding elections felt less like reading a rulebook and more like having a conversation?&lt;/p&gt;

&lt;p&gt;That question led me to build &lt;strong&gt;ElectIQ&lt;/strong&gt; — an AI-powered, interactive platform designed to simplify the election process and make citizens more informed, confident, and engaged.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: Information Exists, But It’s Not Accessible
&lt;/h2&gt;

&lt;p&gt;Election-related information is everywhere — government websites, news articles, PDFs — but it’s rarely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personalized&lt;/li&gt;
&lt;li&gt;Interactive&lt;/li&gt;
&lt;li&gt;Easy to explore&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most people don’t need &lt;em&gt;more&lt;/em&gt; information.&lt;br&gt;
They need &lt;strong&gt;better ways to understand it&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Idea: Make Learning Elections Conversational
&lt;/h2&gt;

&lt;p&gt;ElectIQ approaches this problem differently.&lt;/p&gt;

&lt;p&gt;Instead of forcing users to search, scroll, and decode complex content, it creates a &lt;strong&gt;guided, interactive experience&lt;/strong&gt; where users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask questions naturally&lt;/li&gt;
&lt;li&gt;Explore timelines visually&lt;/li&gt;
&lt;li&gt;Simulate real-world scenarios&lt;/li&gt;
&lt;li&gt;Test their understanding through quizzes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple:&lt;br&gt;
👉 Make every user walk in confused and walk out informed.&lt;/p&gt;




&lt;h2&gt;
  
  
  What ElectIQ Actually Does
&lt;/h2&gt;

&lt;p&gt;At its core, ElectIQ combines AI, structured data, and a clean UI to deliver multiple learning modes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 AI Chat Assistant
&lt;/h3&gt;

&lt;p&gt;Users can ask election-related questions and receive &lt;strong&gt;context-aware, role-specific answers&lt;/strong&gt; powered by Google Gemini.&lt;/p&gt;

&lt;p&gt;This isn’t just a chatbot — it adapts responses based on who the user is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First-time voter&lt;/li&gt;
&lt;li&gt;Candidate&lt;/li&gt;
&lt;li&gt;Journalist&lt;/li&gt;
&lt;li&gt;Student&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🗓️ Interactive Timeline
&lt;/h3&gt;

&lt;p&gt;Instead of reading static articles, users can explore the election process step-by-step through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Animated milestones&lt;/li&gt;
&lt;li&gt;Expandable details&lt;/li&gt;
&lt;li&gt;Contextual explanations&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧩 Scenario Simulator
&lt;/h3&gt;

&lt;p&gt;One of the most practical features.&lt;/p&gt;

&lt;p&gt;Users can explore “what if” situations like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What happens if your name is missing from the voter list?&lt;/li&gt;
&lt;li&gt;What should a candidate do during nomination?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes learning actionable — not just theoretical.&lt;/p&gt;




&lt;h3&gt;
  
  
  🏆 Gamified Quiz System
&lt;/h3&gt;

&lt;p&gt;To reinforce learning, ElectIQ includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Topic-based quizzes&lt;/li&gt;
&lt;li&gt;Progressive scoring&lt;/li&gt;
&lt;li&gt;Badge rewards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because passive learning doesn’t stick — interaction does.&lt;/p&gt;




&lt;h3&gt;
  
  
  🌙 UX That Actually Respects Users
&lt;/h3&gt;

&lt;p&gt;Small things matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dark mode support&lt;/li&gt;
&lt;li&gt;Multilingual interface (English + Hindi)&lt;/li&gt;
&lt;li&gt;Clean, distraction-free UI&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Architecture: Simple, Fast, and Scalable
&lt;/h2&gt;

&lt;p&gt;ElectIQ follows a lightweight, practical architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla JS (fast, no unnecessary bloat)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; FastAPI (clean APIs, async support)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Layer:&lt;/strong&gt; Google Gemini API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Google Cloud Run (serverless, scalable)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of overengineering, the focus was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build something that works reliably and scales when needed.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why I Didn’t Overcomplicate the Stack
&lt;/h2&gt;

&lt;p&gt;It’s easy to fall into the trap of using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React + Redux + Tailwind + Microservices + Kubernetes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But for this project, that would be unnecessary.&lt;/p&gt;

&lt;p&gt;ElectIQ proves that:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t need a complex stack to build a powerful product — you need clarity.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Deployment: From Local to Cloud
&lt;/h2&gt;

&lt;p&gt;The app is fully containerized and deployed using Google Cloud Run.&lt;/p&gt;

&lt;p&gt;A single command can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build the container&lt;/li&gt;
&lt;li&gt;Push it&lt;/li&gt;
&lt;li&gt;Deploy it&lt;/li&gt;
&lt;li&gt;Generate a public URL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps infrastructure simple and cost-efficient.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways From Building This
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Start Simple, Then Scale
&lt;/h3&gt;

&lt;p&gt;Trying to implement CI/CD, automation, and optimization too early only slows you down.&lt;/p&gt;

&lt;p&gt;Get it working first.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. UX Matters More Than Features
&lt;/h3&gt;

&lt;p&gt;You can have powerful functionality, but if it’s not intuitive, users won’t engage.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. AI Is a Tool, Not the Product
&lt;/h3&gt;

&lt;p&gt;The real value comes from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How you structure information&lt;/li&gt;
&lt;li&gt;How you guide users&lt;/li&gt;
&lt;li&gt;How you design the experience&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. Practical &amp;gt; Perfect
&lt;/h3&gt;

&lt;p&gt;A working system with clear value beats a “perfect” system that never ships.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;ElectIQ is just the starting point.&lt;/p&gt;

&lt;p&gt;Future improvements could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More regional languages&lt;/li&gt;
&lt;li&gt;Real-time election data integration&lt;/li&gt;
&lt;li&gt;Voice-based interaction&lt;/li&gt;
&lt;li&gt;Mobile-first optimization&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Elections shouldn’t feel complicated or inaccessible.&lt;/p&gt;

&lt;p&gt;With the right combination of AI, design, and structured content, we can make civic education:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;engaging&lt;/li&gt;
&lt;li&gt;understandable&lt;/li&gt;
&lt;li&gt;and actually useful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ElectIQ is a step in that direction.&lt;/p&gt;




&lt;p&gt;If you’re building something similar or exploring AI-powered education tools, I’d love to hear your thoughts.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>ux</category>
    </item>
    <item>
      <title>BiasLens: A Plug-and-Play Fairness Auditor for AI Systems</title>
      <dc:creator>Arpit Pandey</dc:creator>
      <pubDate>Fri, 24 Apr 2026 18:25:35 +0000</pubDate>
      <link>https://forem.com/arpitpandey0307/biaslens-a-plug-and-play-fairness-auditor-for-ai-systems-gnl</link>
      <guid>https://forem.com/arpitpandey0307/biaslens-a-plug-and-play-fairness-auditor-for-ai-systems-gnl</guid>
      <description>&lt;p&gt;Detect AI Bias Without Being a Machine Learning Expert&lt;/p&gt;

&lt;p&gt;Artificial intelligence is increasingly making decisions that impact people's lives - hiring, lending, healthcare, and more. But what happens when those decisions are biased?&lt;br&gt;
Amazon had to scrap an AI recruiting tool that discriminated against women. Apple Card faced backlash for offering lower credit limits to women. Healthcare systems have shown bias against Black patients compared to white patients with identical conditions.&lt;br&gt;
The pattern is clear:&lt;br&gt;
 Bias is often discovered too late.&lt;br&gt;
And here's the real issue - most tools designed to detect AI bias are built for machine learning engineers, not the people responsible for decisions.&lt;br&gt;
That's the gap I wanted to close.&lt;/p&gt;




&lt;p&gt;What is BiasLens?&lt;br&gt;
BiasLens is a web application that helps non-technical users detect and understand bias in AI systems.&lt;br&gt;
Instead of requiring expertise in machine learning, it allows users to simply upload a dataset and receive fairness insights instantly.&lt;br&gt;
What it does:&lt;br&gt;
Upload a CSV file&lt;br&gt;
Automatically detect sensitive attributes (like gender or race)&lt;br&gt;
Compute fairness metrics&lt;br&gt;
Visualize results clearly&lt;br&gt;
Export a compliance-ready report&lt;/p&gt;




&lt;p&gt;Why This Matters&lt;br&gt;
Most organizations don't intentionally deploy biased systems.&lt;br&gt;
 They just don't have the tools - or visibility - to detect bias early.&lt;br&gt;
BiasLens shifts fairness auditing from:&lt;/p&gt;

&lt;p&gt;"reactive damage control"&lt;br&gt;
 to&lt;br&gt;
 "proactive evaluation"&lt;/p&gt;




&lt;p&gt;The Stack (and Why It Matters)&lt;br&gt;
Frontend&lt;br&gt;
React 18&lt;br&gt;
TypeScript&lt;br&gt;
Tailwind CSS&lt;br&gt;
Recharts&lt;/p&gt;

&lt;p&gt;Backend&lt;br&gt;
Python&lt;br&gt;
FastAPI&lt;br&gt;
Pandas &amp;amp; NumPy&lt;br&gt;
IBM AI Fairness 360&lt;br&gt;
ReportLab&lt;/p&gt;

&lt;p&gt;Key decisions:&lt;br&gt;
FastAPI for speed, validation, and clean APIs&lt;br&gt;
AIF360 for proven fairness metrics&lt;br&gt;
TypeScript to catch errors early&lt;br&gt;
React for scalable UI&lt;/p&gt;

&lt;p&gt;Nothing fancy for the sake of it - just practical, reliable choices.&lt;/p&gt;




&lt;p&gt;How It Works&lt;br&gt;
Frontend → FastAPI → Metrics Engine&lt;br&gt;
   |          |           |&lt;br&gt;
 Upload   Validate    Compute&lt;br&gt;
   |          |           |&lt;br&gt;
Preview   Schema     Visualize&lt;br&gt;
   |          |           |&lt;br&gt;
Confirm   Analyze     Export&lt;br&gt;
Flow:&lt;br&gt;
Upload dataset&lt;br&gt;
System validates and suggests schema&lt;br&gt;
User confirms inputs&lt;br&gt;
Metrics are computed&lt;br&gt;
Results are visualized&lt;br&gt;
Report is exported&lt;/p&gt;

&lt;p&gt;Simple, fast, and intentional.&lt;/p&gt;




&lt;p&gt;The Core: 4 Fairness Metrics&lt;br&gt;
BiasLens focuses on four widely accepted fairness metrics.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Statistical Parity Difference
Do different groups receive outcomes at the same rate?
Fair range: -0.1 to 0.1
Example: 70% men hired vs 50% women → Fail&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Disparate Impact
Based on the "four-fifths rule" in employment law.
Fair range: 0.8 to 1.25
Example: 60% vs 80% → Fail&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Equal Opportunity Difference
Are qualified individuals treated equally?
Fair range: -0.1 to 0.1
Example: 90% vs 70% → Fail&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Predictive Parity Difference
Are predictions equally accurate across groups?
Fair range: -0.1 to 0.1
Example: 85% vs 65% → Fail&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Making It Understandable&lt;br&gt;
Each metric is labeled as:&lt;br&gt;
Pass → acceptable&lt;br&gt;
Warning → borderline&lt;br&gt;
Fail → problematic&lt;/p&gt;

&lt;p&gt;Because raw numbers don't help non-technical users - decisions do.&lt;/p&gt;




&lt;p&gt;Key Engineering Decisions&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No Login System
BiasLens uses session-based storage instead of accounts.
No authentication
No database overhead
Sessions expire automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This keeps friction low and usability high.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Smart Attribute Detection
The system suggests protected attributes automatically based on:
Column names
Number of unique values&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Users don't need to "know what to select" - the system guides them.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Strict Validation
One mistake users kept making:
 Selecting non-binary outcome columns (like age).
Fix:
Only allow binary outcome columns
Filter UI options
Show clear errors&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Simple constraint, huge improvement.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Performance Trade-offs
Large datasets (&amp;gt;500k rows) slowed things down.
Instead of over-engineering:
Added progress indicators
Warned users
Suggested sampling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sometimes the right solution isn't optimization - it's expectation management.&lt;/p&gt;




&lt;p&gt;Real Example: Adult Income Dataset&lt;br&gt;
~48K rows&lt;br&gt;
Attribute: gender&lt;br&gt;
Outcome: income &amp;gt;50K&lt;/p&gt;

&lt;p&gt;Results:&lt;br&gt;
Statistical Parity: 0.197 → Fail&lt;br&gt;
Disparate Impact: 0.27 → Fail&lt;br&gt;
Equal Opportunity: 0.098 → Pass&lt;br&gt;
Predictive Parity: -0.053 → Pass&lt;/p&gt;

&lt;p&gt;Insight:&lt;br&gt;
The model is biased in overall outcomes&lt;br&gt;
 - but fair in evaluating qualified candidates.&lt;br&gt;
That distinction matters.&lt;/p&gt;




&lt;p&gt;What You Should Take Away&lt;br&gt;
If you're a developer:&lt;br&gt;
Don't reinvent fairness metrics - use proven libraries&lt;br&gt;
Validate early&lt;br&gt;
Build for the actual user, not yourself&lt;/p&gt;

&lt;p&gt;If you're an organization:&lt;br&gt;
Audit before deployment, not after controversy&lt;br&gt;
Bias isn't rare - it's expected&lt;br&gt;
Documentation matters&lt;/p&gt;

&lt;p&gt;If you're a researcher:&lt;br&gt;
Your work needs usable interfaces&lt;br&gt;
Theory without accessibility doesn't scale&lt;/p&gt;




&lt;p&gt;Getting Started&lt;br&gt;
git clone &lt;a href="https://github.com/arpitpandey0307/bias-lens.git" rel="noopener noreferrer"&gt;https://github.com/arpitpandey0307/bias-lens.git&lt;/a&gt;&lt;br&gt;
cd biaslens&lt;br&gt;
docker-compose up&lt;br&gt;
Or run manually using FastAPI + React.&lt;br&gt;
Then:&lt;br&gt;
Open localhost&lt;br&gt;
Upload dataset&lt;br&gt;
Analyze fairness&lt;br&gt;
Export report&lt;/p&gt;




&lt;p&gt;Final Thoughts&lt;br&gt;
Bias in AI isn't going away.&lt;br&gt;
But ignorance about it can.&lt;br&gt;
BiasLens isn't about solving fairness completely - &lt;br&gt;
 it's about making it visible, understandable, and actionable.&lt;br&gt;
And that's where real progress starts.&lt;/p&gt;




&lt;p&gt;Resources&lt;br&gt;
IBM AI Fairness 360&lt;br&gt;
Microsoft Fairlearn&lt;br&gt;
UCI ML Repository&lt;/p&gt;




&lt;p&gt;About the Author&lt;br&gt;
[Arpit Pandey]&lt;br&gt;
 [Full Stack and AI/ML Developer]&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>StadiumOS — A Multi-Agent Coordination Engine!</title>
      <dc:creator>Arpit Pandey</dc:creator>
      <pubDate>Wed, 15 Apr 2026 21:08:54 +0000</pubDate>
      <link>https://forem.com/arpitpandey0307/stadiumos-a-multi-agent-coordination-engine-374g</link>
      <guid>https://forem.com/arpitpandey0307/stadiumos-a-multi-agent-coordination-engine-374g</guid>
      <description>&lt;p&gt;Building StadiumOS: A Real-Time Multi-Agent AI System for Crowd Management&lt;/p&gt;

&lt;p&gt;Have you ever wondered how megastructures like sports stadiums handle tens of thousands of people moving around simultaneously? Between food court rushes, security bottlenecks, and exit gate stampedes, stadium operations are incredibly complex to manage.&lt;/p&gt;

&lt;p&gt;I set out to tackle this problem by building StadiumOS — a multi-agent coordination engine capable of simulating and optimizing stadium operations in real time.&lt;/p&gt;

&lt;p&gt;The Architecture: A Brain for the Stadium&lt;/p&gt;

&lt;p&gt;This wasn’t just a simple web app. I wanted to build a true system-level intelligence platform. Here is the stack that powered it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Backend: Node.js and Express (Simulation Engine and REST API)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database: In-memory caching with optional Firebase Firestore mirroring&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend: Next.js 16 with Tailwind CSS and Leaflet.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Brain: A custom Multi-Agent Architecture&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How the Multi-Agent System Works&lt;/p&gt;

&lt;p&gt;Instead of one monolithic AI trying to figure everything out, I decentralized the logic. StadiumOS runs a live simulation (ticking every 2 seconds) passing data to four independent AI Agents, each handling a specific domain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Crowd Agent: Monitors zone densities to prevent overcrowding.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Write on Medium&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Vendor Agent: Analyzes food court queues against stall service rates to predict wait times.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security Agent: Keeps a rolling history of crowd spikes to detect anomalies and flag zones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Transport Agent: Calculates net flow rates at gates to estimate clearance times during egress.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These four agents don’t make final decisions. Instead, they produce structured reports and pass them up to the Coordinator Engine.&lt;/p&gt;

&lt;p&gt;The Decision Coordinator&lt;/p&gt;

&lt;p&gt;The Coordinator acts as the central brain. It ingests the agent reports, runs them through priority-based rules, and outputs actionable recommendations.&lt;/p&gt;

&lt;p&gt;For example: if the Crowd Agent reports the South Stand is highly dense, and the Security Agent flags an unusual spike, the Coordinator immediately generates a Critical Priority Decision: “RESTRICT_ZONE — Halt ingress to South Stand temporarily.”&lt;/p&gt;

&lt;p&gt;The Dashboard&lt;/p&gt;

&lt;p&gt;To bring this all to life, I built a dark-mode Next.js dashboard. It features an interactive Leaflet map that dynamically changes marker sizes and colors based on zone loads. A polling hook fetches the latest agent reports and coordinator decisions every 2 seconds, displaying a real-time, priority-sorted feed of actions.&lt;/p&gt;

&lt;p&gt;Deployment and Takeaways&lt;/p&gt;

&lt;p&gt;To cap it off, I containerized the entire monorepo using a multi-stage Docker build, allowing the Express backend to serve the Next.js static build from a single container, and deployed it serverlessly to Google Cloud Run.&lt;/p&gt;

&lt;p&gt;Building a multi-agent architecture from scratch was an incredible challenge. It taught me how to decouple complex state, manage real-time tick-based simulations, and build prioritizing rule engines.&lt;/p&gt;

&lt;p&gt;Check out the code on my GitHub!&lt;/p&gt;

&lt;p&gt;GitHub Repo : &lt;a href="https://github.com/arpitpandey0307/Stadium-OS.git" rel="noopener noreferrer"&gt;https://github.com/arpitpandey0307/Stadium-OS.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to Live Deployment : &lt;a href="https://stadium-os-795750315067.us-central1.run.app/" rel="noopener noreferrer"&gt;https://stadium-os-795750315067.us-central1.run.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>node</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Built SmartDesk, a multi-agent AI system using Google ADK to automate tasks, scheduling, notes, and research end-to-end.</title>
      <dc:creator>Arpit Pandey</dc:creator>
      <pubDate>Wed, 15 Apr 2026 11:16:26 +0000</pubDate>
      <link>https://forem.com/arpitpandey0307/built-smartdesk-a-multi-agent-ai-system-using-google-adk-to-automate-tasks-scheduling-notes-and-4nlh</link>
      <guid>https://forem.com/arpitpandey0307/built-smartdesk-a-multi-agent-ai-system-using-google-adk-to-automate-tasks-scheduling-notes-and-4nlh</guid>
      <description>&lt;p&gt;When I signed up for the Google Cloud Gen AI Academy APAC 2026 Hackathon, the problem statement was clear:&lt;/p&gt;

&lt;p&gt;"Build a multi-agent AI system that helps users manage tasks, schedules, and information by interacting with multiple tools and data sources."&lt;/p&gt;

&lt;p&gt;Simple enough on paper. But building it taught me more about real-world AI systems than anything I'd done before. This is the full story — what I built, how I built it, the mistakes I made, and what I learned.&lt;/p&gt;

&lt;p&gt;The Problem I Chose to Solve&lt;/p&gt;

&lt;p&gt;Here's a stat that hit me hard when I was planning this project:&lt;/p&gt;

&lt;p&gt;The average knowledge worker spends 2.5 hours every day just organizing their work — not doing it. Switching between Notion for tasks, Google Calendar for scheduling, a notes app for summaries, and a browser tab for research.&lt;/p&gt;

&lt;p&gt;Every tool is smart on its own. But none of them talk to each other intelligently. You're the human glue between them.&lt;/p&gt;

&lt;p&gt;I wanted to build something that eliminates that. One conversational interface that handles everything end-to-end. You describe what you need in plain English — and a team of AI agents handles the rest.&lt;/p&gt;

&lt;p&gt;That's SmartDesk — your personal AI Chief of Staff.&lt;/p&gt;

&lt;p&gt;The Idea: One Prompt, Four Agents&lt;/p&gt;

&lt;p&gt;Instead of building a single AI assistant, I designed SmartDesk as a team of specialist agents, each owning one responsibility:&lt;/p&gt;

&lt;p&gt;✅ Task Agent — creates and manages tasks with priorities and deadlines&lt;br&gt;
📅 Calendar Agent — schedules events and blocks focus time with conflict detection&lt;br&gt;
📝 Notes Agent — captures summaries and action items automatically&lt;br&gt;
🔍 Research Agent — answers knowledge questions via Wikipedia&lt;/p&gt;

&lt;p&gt;A single prompt like this:&lt;/p&gt;

&lt;p&gt;"I have a product launch deadline this Friday. Block 2 hours of focus time daily, create tasks for design, development, and testing milestones, and save a project summary note."&lt;/p&gt;

&lt;p&gt;…triggers all four agents to execute their jobs in sequence, passing context to each other, and returns one clean consolidated response.&lt;/p&gt;

&lt;p&gt;No app switching. No manual entry. Just results.&lt;/p&gt;

&lt;p&gt;How It Works — The Architecture&lt;/p&gt;

&lt;p&gt;SmartDesk is built on Google ADK (Agent Development Kit) using a SequentialAgent pattern.&lt;/p&gt;

&lt;p&gt;Here's the full flow:&lt;/p&gt;

&lt;p&gt;User Input (natural language)&lt;br&gt;
        ↓&lt;br&gt;
Root Agent (smartdesk_root)&lt;br&gt;
  → saves prompt to shared state&lt;br&gt;
        ↓&lt;br&gt;
Sequential Workflow (smartdesk_workflow)&lt;br&gt;
  → Task Agent        writes task_output to state&lt;br&gt;
  → Calendar Agent    reads task_output, writes calendar_output&lt;br&gt;
  → Notes Agent       reads all outputs, writes notes_output&lt;br&gt;
  → Research Agent    checks if knowledge lookup needed&lt;br&gt;
  → Response Formatter synthesizes everything&lt;br&gt;
        ↓&lt;br&gt;
Final Response to User&lt;/p&gt;

&lt;p&gt;The key insight is shared state. Every agent reads from and writes to tool_context.state — a shared memory dictionary that flows through the entire pipeline. This is what makes true multi-agent coordination possible. Each agent builds on the work of the one before it.&lt;/p&gt;

&lt;p&gt;The Database&lt;/p&gt;

&lt;p&gt;All data is persisted in SQLite across four tables:&lt;/p&gt;

&lt;p&gt;tasks      → title, priority, deadline, status&lt;br&gt;&lt;br&gt;
events     → title, start_time, end_time&lt;br&gt;&lt;br&gt;
notes      → content, tags, created_at&lt;br&gt;&lt;br&gt;
agent_logs → agent_name, action, timestamp  ← my favorite&lt;/p&gt;

&lt;p&gt;That last table — agent_logs — logs every single agent action with a timestamp. During demos, watching it fill up in real-time is the most compelling way to show judges that genuine multi-agent coordination is happening.&lt;/p&gt;

&lt;p&gt;The Tech Stack&lt;br&gt;
Layer   Technology  Why I chose it&lt;br&gt;
Agent Framework Google ADK 1.14.0   Native Google Cloud integration, built-in Cloud Run deployment&lt;br&gt;
LLM Gemini 2.5 Flash (Vertex AI)    Fast inference for multi-step pipelines, no API key needed with ADK&lt;br&gt;
Database    SQLite  Zero configuration, perfect for hackathon demos&lt;br&gt;
External Knowledge  LangChain + Wikipedia   Bridges ADK with the LangChain tool ecosystem&lt;br&gt;
Deployment  Google Cloud Run    Serverless, one-command deploy via adk deploy cloud_run&lt;br&gt;
Auth    Google IAM Service Account  Least-privilege security&lt;br&gt;
Building It — Step by Step&lt;br&gt;
Setting Up the Environment&lt;/p&gt;

&lt;p&gt;I used Google Cloud Shell — a browser-based development environment with everything pre-installed. No local setup required.&lt;/p&gt;

&lt;p&gt;cd &amp;amp;&amp;amp; mkdir smartdesk &amp;amp;&amp;amp; cd smartdesk&lt;br&gt;
uv venv &amp;amp;&amp;amp; source .venv/bin/activate&lt;br&gt;
uv pip install -r requirements.txt&lt;/p&gt;

&lt;p&gt;The requirements.txt was simple:&lt;/p&gt;

&lt;p&gt;google-adk==1.14.0&lt;br&gt;
langchain-community==0.3.27&lt;br&gt;
wikipedia&lt;/p&gt;

&lt;p&gt;One thing I learned the hard way: wikipedia==1.4.8 doesn't exist. The version pin breaks the install. Remove the version and let pip grab the latest.&lt;/p&gt;

&lt;p&gt;Writing the Agents&lt;/p&gt;

&lt;p&gt;Each agent in Google ADK is defined with a name, model, instruction, tools, and an output_key:&lt;/p&gt;

&lt;p&gt;task_agent = Agent(&lt;br&gt;
    name="task_agent",&lt;br&gt;
    model=model_name,&lt;br&gt;
    description="Creates and manages tasks in the database.",&lt;br&gt;
    instruction="""&lt;br&gt;
    You are the Task Manager Agent for SmartDesk.&lt;br&gt;
    Based on the user's PROMPT, break it down into clear tasks.&lt;br&gt;
    Create each task using the create_task tool.&lt;br&gt;
    PROMPT: { PROMPT }&lt;br&gt;
    """,&lt;br&gt;
    tools=[create_task, get_all_tasks],&lt;br&gt;
    output_key="task_output"&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;The { PROMPT } syntax injects shared state values into agent instructions.&lt;/p&gt;

&lt;p&gt;The SequentialAgent&lt;br&gt;
smartdesk_workflow = SequentialAgent(&lt;br&gt;
    name="smartdesk_workflow",&lt;br&gt;
    sub_agents=[&lt;br&gt;
        task_agent,&lt;br&gt;
        calendar_agent,&lt;br&gt;
        notes_agent,&lt;br&gt;
        research_agent,&lt;br&gt;
        response_formatter&lt;br&gt;
    ]&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;The SequentialAgent handles execution order automatically.&lt;/p&gt;

&lt;p&gt;Key Challenges I Faced&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SQLite Path on Cloud Run&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error:&lt;/p&gt;

&lt;p&gt;"Fail to load 'smartdesk' module. unable to open database file"&lt;/p&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;h1&gt;
  
  
  Before
&lt;/h1&gt;

&lt;p&gt;DB_PATH = "smartdesk.db"&lt;/p&gt;

&lt;h1&gt;
  
  
  After
&lt;/h1&gt;

&lt;p&gt;DB_PATH = "/tmp/smartdesk.db"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Service Account Name Too Short&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error:&lt;/p&gt;

&lt;p&gt;ERROR: The account ID "lab2" does not have a length between 6 and 30.&lt;/p&gt;

&lt;p&gt;Fix: renamed to smartdesk-agent.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Git Push Rejection&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error:&lt;/p&gt;

&lt;p&gt;error: failed to push some refs — Updates were rejected because the remote contains work that you do not have locally.&lt;/p&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;p&gt;git pull --rebase origin main&lt;br&gt;
git push&lt;br&gt;
The Demo — What Judges See&lt;/p&gt;

&lt;p&gt;Prompt:&lt;/p&gt;

&lt;p&gt;"I have a product launch deadline this Friday. Block 2 hours daily, create tasks for design, dev, and testing, and save a project summary note."&lt;/p&gt;

&lt;p&gt;Execution trace:&lt;/p&gt;

&lt;p&gt;smartdesk_root → task_agent → calendar_agent → notes_agent → research_agent → response_formatter&lt;/p&gt;

&lt;p&gt;Then showing agent_logs filling in real time — proof of real multi-agent coordination.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;br&gt;
Shared state is the backbone of multi-agent systems.&lt;br&gt;
Observability matters more than output.&lt;br&gt;
Google ADK makes deployment trivially easy.&lt;br&gt;
Start with the demo, work backward.&lt;br&gt;
SQLite is underrated for AI demos.&lt;br&gt;
What's Next for SmartDesk&lt;br&gt;
🔌 Real MCP integrations — Google Calendar API, Notion, Slack&lt;br&gt;
🧠 Long-term memory — ChromaDB&lt;br&gt;
🗣️ Voice interface — faster-whisper&lt;br&gt;
📊 Analytics dashboard — agent_logs insights&lt;br&gt;
🤝 Team mode — multi-user collaboration&lt;br&gt;
Try It Yourself&lt;br&gt;
GitHub: &lt;a href="https://github.com/arpitpandey0307/smart-desk" rel="noopener noreferrer"&gt;https://github.com/arpitpandey0307/smart-desk&lt;/a&gt;&lt;br&gt;
Live Demo: &lt;a href="https://smartdesk-agent-456703325610.us-central1.run.app" rel="noopener noreferrer"&gt;https://smartdesk-agent-456703325610.us-central1.run.app&lt;/a&gt;&lt;br&gt;
Demo Video: &lt;a href="https://drive.google.com/file/d/17i04sEihCSWR1J7ioeOPM0dH4MoaxzQy/view" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/17i04sEihCSWR1J7ioeOPM0dH4MoaxzQy/view&lt;/a&gt;&lt;br&gt;
Final Thoughts&lt;/p&gt;

&lt;p&gt;Building SmartDesk taught me that the real power of multi-agent AI isn't in any single agent — it's in the coordination layer between them.&lt;/p&gt;

&lt;p&gt;The moment you design agents that pass context to each other, you stop building tools and start building systems.&lt;/p&gt;

&lt;p&gt;Built with Google ADK, Gemini 2.5 Flash, Vertex AI, SQLite, and Google Cloud Run.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
