Monica
An AI-powered WhatsApp bot that automates San Francisco 311 service requests.
Core trick
Gemini drives multi-turn WhatsApp clarification from text, images, and video, then Playwright submits the SF 311 form automatically.
Description
An AI-powered WhatsApp bot that automates San Francisco 311 service requests. Users report issues (potholes, graffiti, illegal dumping) via WhatsApp messages, and the system uses Gemini
AI to analyze the conversation, extract location and issue details, and automatically submit requests to SF 311. The project includes:
- Multi-turn conversational AI for clarifying issue details and location
- Multimodal support: analyzes text, images, and video to understand what's being reported
- Automated browser-based form submission using Playwright
- Real-time dashboard showing message processing and request status
- Integration with Twilio WhatsApp API
The bot simplifies civic engagement by allowing residents to report issues through natural conversation instead of complex web forms.
README excerpt
<div align="center"> <img width="1200" height="475" alt="GHBanner" src="https://github.com/user-attachments/assets/0aa67016-6eaf-458a-adb2-6e31a0763ed6" /> </div> # SF 311 WhatsApp Bot Dashboard A full-stack application that demonstrates an AI-powered WhatsApp bot for submitting San Francisco 311 service requests. The system uses Twilio for WhatsApp messaging and Gemini AI for intelligent message analysis. View your app in AI Studio: https://ai.studio/apps/drive/13ZxrTpztNKibK7zwxXn9Joto0oFEonoB ## Features - 🤖 **AI-Powered Analysis**: Gemini AI analyzes WhatsApp messages to extract service request details - 📱 **WhatsApp Integration**: Receive and respond to messages via Twilio WhatsApp - 📊 **Real-time Dashboard**: React-based dashboard showing message processing and request status - 🏙️ **311 Service Requests**: Automated submission of various SF 311 request types (potholes, graffiti, abandoned vehicles, etc.) ## Quick Start **Prerequisites:** - Node.js 18+ - Python 3.9+ 1. **Install dependencies:** ```bash npm run install:all ``` This installs both frontend (npm) and backend (Python) dependencies. 2. **Set up environment variables:** Create a `.env.local` file in the project root: ```env GEMINI_API_KEY=your_gemini_api_key_here PORT=3001 ``` Get your Gemini API key from: https://aistudio.google.com/app/apikey 3. **Run the application:** **Both frontend and backend (recommended):** ```bash npm run dev ``` - Frontend run