A full-stack web application for citizens to report community issues with GPS location, AI categorization, and real-time admin management. Built for smart cities and civic engagement.
Urban communities often face challenges in reporting and managing local issues such as potholes, broken streetlights, and sanitation problems. Traditional reporting methods are inefficient, leading to delayed responses and unresolved issues. There is a need for a streamlined, user-friendly platform that enables citizens to report issues easily while providing administrators with tools to manage and resolve them effectively.
Jagruk is a web application that allows citizens to report local issues with GPS-tagged locations and AI-powered categorization. The platform features an interactive map for visualizing reported issues, a dashboard for administrators to track and manage reports, and community voting to prioritize resolutions. Built with React, Node.js, and MongoDB, the system integrates services like Appwrite for authentication, Cloudinary for image handling, and OpenRouter AI for issue categorization.
- Smart Reporting: GPS-tagged issue reporting with AI-powered categorization
- Interactive Maps: Leaflet-based geolocation and visualization
- Analytics Dashboard: Charts and statistics for administrators
- Community Voting: Citizens can vote to prioritize issues
- Role-based Access: User, Officer (coming soon), and Admin permissions
- Activity Logging: Complete audit trails
Frontend: React 19.1.1, Vite, Tailwind CSS, Leaflet Maps, Chart.js
Backend: Node.js, Express.js, MongoDB, Mongoose
Services: Appwrite (Auth), Cloudinary (Images), OpenRouter AI, OpenCage Geocoding
Overview of the Smart Community Issue Reporting System's technical architecture, showing the React frontend, Node.js backend, MongoDB database, and external service integrations.
Prerequisites: Node.js 16+, MongoDB, Git
# Clone and setup backend
git clone https://github.com/tilakjain619/Smart-Community-Issue-Reporting-System.git
cd Smart-Community-Issue-Reporting-System/backend
npm install
cp .env.example .env # Configure your API keys
npm run dev
# Setup frontend (new terminal)
cd ../frontend
npm install
cp .env.example .env # Configure endpoints
npm run devSetup your .env files with the following variables:
Backend (.env):
PORT=3000
MONGODB_URI=mongodb://localhost:27017/smart-community
APPWRITE_PROJECT_ID=your_appwrite_project_id
CLOUD_NAME=your_cloudinary_cloud_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_api_secret
OPENROUTER_API_KEY=your_openrouter_api_key
OPENCAGE_API_KEY=your_opencage_api_keyFrontend (.env):
VITE_BACKEND_URL=http://localhost:3000
VITE_APPWRITE_ENDPOINT=your_appwrite_endpoint
VITE_APPWRITE_PROJECT_ID=your_appwrite_project_idAccess: Frontend at http://localhost:5173, Backend at http://localhost:3000
GET /api/issues- Get all issuesPOST /api/issues- Create new issue (requires auth)PUT /api/issues/:id/status- Update status (requires auth)GET /api/issues/search- Search/filter issuesGET /api/logs- Get activity logs (admin)POST /api/upload- Upload images (requires auth)
- Fork the repository
- Create a feature branch:
git checkout -b feature/name - Make your changes and test
- Submit a pull request
See CONTRIBUTING.md for detailed guidelines.
MIT License - see LICENSE file.
