IndyChat is a scalable, AI-powered chatbot platform designed to assist the residents, workers, and visitors of Indianapolis, Indiana. Built for the Chatbot for Public Safety Hackathon, the project bridges the gap between people and the city’s public services using a modern tech stack, real-time information delivery, and intelligent civic engagement tools.
🔗 Live: indychat.vercel.app
💻 GitHub: github.com/Purv-Kabaria/IndyChat
- AI chatbot powered by Dify with Retrieval-Augmented Generation (RAG)
- Complaint and report submission through chat
- TTS/STT support via ElevenLabs
- Google Maps + city image embeds
- Admin dashboard for monitoring, publishing, user and data management
- Built with
shadcn/uiand modeled after ChatGPT’s layout - Context-aware, locality-specific query handling
- Temporary and saved chat history support
- Live Google Maps directions
- Images and metadata of Indianapolis landmarks
- Event, safety, transit, and service-based Q&A
- Upload PDFs as bot knowledge base (RAG-ready)
- View/manage users, complaints, and conversation logs
- Create city-wide announcements and blog posts
- Text-to-Speech and Speech-to-Text via ElevenLabs
Frontend:
Next.js 15(App Router, Server Actions, Edge Functions)TypeScript,Tailwind CSS v3,shadcn/ui
Backend:
Firebase Auth,Firestore,Cloud FunctionsDify AIwith custom prompt designCloudinaryfor image handlingElevenLabsfor voice services
Deployment:
- Hosted on
Vercel
⚠️ For casual users, use the live site. Local setup requires Firebase/Dify credentials and some configuration effort.
git clone https://github.com/Purv-Kabaria/IndyChat
cd IndyChatnpm install
# or
pnpm installCreate a .env.local file and configure:
- Firebase project settings (API key, Auth domain, DB URL, etc.)
- Dify API keys
- ElevenLabs API key
- Cloudinary keys
This also requires setting up Firestore indexes and OAuth redirect domains in Firebase Console.
npm run dev
# or
pnpm devAdmin:
- Email:
[email protected] - Password:
admin12345678
User:
- Email:
[email protected] - Password:
user12345678
/app → App Router-based pages and layouts (Next 15)
/components → Reusable UI components
/lib → Firebase & utility logic
/pages/api → API endpoints (server functions)
/public → Static assets and images
/styles → Tailwind base + global styles
Deployed using Vercel with automatic CI from GitHub.
Ensure .env variables are securely configured in Vercel’s dashboard for production.
An example .env.example file is given in the repository.
- Purv Kabaria
- Rushang Bagada
- Gaurav Damor
- Jenil Prajapati
- Krishna Tahiliani