AI-powered smart city governance platform built with React Native, Node.js, MongoDB, and Gemini AI.
City Guard is a full-stack mobile platform designed to improve communication between citizens and city administration.
The system allows citizens to report infrastructure issues like:
- Potholes
- Garbage problems
- Water leaks
- Broken streetlights
Reports are tracked from submission to completion with AI-assisted verification and role-based workflows.
Inspired by the AMC (Ahmedabad Municipal Corporation) zonal governance system.
- Submit complaints with photos
- Live complaint tracking
- Earn points for valid reports
- Rate completed work
- Zone-based complaint management
- Assign contractors
- Review completed tasks
- SLA monitoring
- View assigned tasks
- Upload completion proof
- Submit work details
- City-wide analytics dashboard
- Emergency broadcasts
- Report monitoring
City Guard uses Google Gemini 2.5 Flash Vision for:
Checks whether uploaded images match the selected issue category.
Validates contractor “after repair” photos to reduce fake submissions.
React Native App
│
▼
Express.js REST API
│
├── MongoDB Atlas
├── Cloudinary
└── Gemini AI- React Native
- Expo
- Expo Router
- NativeWind (Tailwind CSS)
- Axios
- AsyncStorage
- Expo Notifications
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication
- bcryptjs
- Cloudinary
- Multer
- Nodemailer
- MongoDB Atlas
- Google Gemini AI
- Cloudinary CDN
| Role | Permissions |
|---|---|
| Citizen | Create & track reports |
| Officer | Claim & manage reports |
| Contractor | Complete assigned tasks |
| Commissioner | Full city analytics |
| Admin | System setup |
Citizen submits report
↓
AI verifies image
↓
Officer claims task
↓
Contractor assigned
↓
Contractor uploads completion proof
↓
AI validates completion image
↓
Officer reviews & closes report
↓
Citizen rates work + earns pointsMain smart-city management application with:
- Complaint reporting
- Dashboards
- Notifications
- Analytics
- Role-based routing
Shared REST API for:
- Authentication
- Reports
- Notifications
- File uploads
Main collections:
- Users
- Reports
- Notifications
- JWT Authentication
- bcrypt password hashing
- Role-based access control
- Zone-level restrictions
- AI fraud prevention
npm installCreate .env inside backend:
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret
GEMINI_API_KEY=your_key
CLOUDINARY_CLOUD_NAME=your_name
CLOUDINARY_API_KEY=your_key
CLOUDINARY_API_SECRET=your_secretcd backend
npm startcd app-governance
npx expo startProprietary project — all rights reserved.





