Skip to content

Subhadip006/CityCare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

CityCare: Public Complaint Management System

CityCare is a civic engagement platform that empowers citizens to report issues in their community, track complaint progress, and collaborate with local authorities to improve their neighborhoods.

Image 1

Badges

License

Last commit

Stars

Features

  • Raise Complaints — Submit detailed reports with descriptions, images.
  • Track Status — Monitor your complaint’s progress in real time.
  • Department Routing — Complaints are automatically assigned to relevant departments (roads, sanitation, power, etc.).
  • Officer Dashboard — Dedicated portal for municipal officers to view and resolve complaints.
  • User Dashboard — View submitted complaints, and check updates.
  • Authentication — Secure login via email/password and Google Sign-In.
  • Responsive UI — Modern, mobile-friendly interface built with Tailwind CSS and Lucide Icons.
  • Media Uploads — Upload images to Cloudinary for better issue documentation.
  • Map Integration — Pin complaint locations using Leaflet maps.
  • Admin Dashboard - Unified Dashboard for accepting or rejecting officers request, and to view to total, pending, resolved complaints.

Project Structure

citycare/
├── client/         # React frontend
│   ├── src/
│   ├── public/
│   └── ...
├── server/         # Go Fiber backend
│   ├── cmd/
│   ├── pkg/
│   │   ├── handlers/
│   │   ├── models/
│   │   ├── routes/
│   │   └── db/
│   └── ...
├── docker-compose.yml
└── README.md

Tech Stack

Client:

Server:

Deployment:

  • Dockerized (Frontend + Backend + PostgreSQL)
  • Hosted on Render (backend) and Vercel (frontend)
  • Nginx reverse proxy
  • PostgreSQL hosted on NeonDB

Installation

Run with docker

docker compose up -- build

Run without docker

Backend

cd server
go mod tidy
go run cmd/main.go

Frontend

cd client
npm install
npm run dev

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

Server/.env

JWT_SECRET=
RESEND_API_KEY=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
DATABASE_URL=
APP_BASE_URL=http://localhost:8000/    #used by resend to send mail


Client/.env

For Docker
VITE_GOOGLE_CLIENT_ID =   #please generate one from the google cloud console
VITE_API_BASE_URL = http://localhost:8000

Without Docker
VITE_GOOGLE_CLIENT_ID = 
VITE_API_BASE_URL = http://localhost:8000

Images


Image 2

Image 3


Image 4


Image 5


License

MIT