Skip to content

Latest commit

ย 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ CitizenConnect

A full-stack Complaint Management System built with Node.js, Express.js, MongoDB, and JWT Authentication. CitizenConnect enables citizens to register complaints, officers to manage and resolve them, and administrators to monitor the complete system through an analytics dashboard.


๐Ÿ“– Overview

CitizenConnect is designed to digitalize the complaint management process for municipalities, universities, housing societies, and government organizations.

The system provides secure authentication, role-based authorization, complaint tracking, officer assignment, status updates, and administrative monitoring.


โœจ Features

๐Ÿ‘ค Citizen

  • Register & Login
  • JWT Authentication
  • Create Complaint
  • View My Complaints
  • View Complaint Details
  • Update Complaint
  • Delete Complaint
  • Search Complaints
  • Filter Complaints
  • Pagination

๐Ÿ‘ฎ Officer

  • Login
  • View All Complaints
  • Assign Complaint
  • Update Complaint Status
  • Add Remarks
  • Complaint Timeline

๐Ÿ‘จโ€๐Ÿ’ผ Admin (Upcoming)

  • Dashboard
  • User Management
  • Promote Citizen to Officer
  • Demote Officer
  • Block / Unblock Users
  • Complaint Analytics
  • Reports

๐Ÿ›  Tech Stack

Backend

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose

Authentication

  • JWT (JSON Web Token)
  • bcrypt.js

Validation

  • express-validator

Development

  • Nodemon
  • dotenv
  • CORS

Version Control

  • Git
  • GitHub

๐Ÿ“‚ Folder Structure

backend
โ”‚
โ”œโ”€โ”€ config
โ”‚   โ””โ”€โ”€ db.js
โ”‚
โ”œโ”€โ”€ controllers
โ”‚   โ”œโ”€โ”€ authController.js
โ”‚   โ”œโ”€โ”€ complaintController.js
โ”‚   โ”œโ”€โ”€ officerController.js
โ”‚   โ”œโ”€โ”€ userController.js
โ”‚   โ””โ”€โ”€ adminController.js (Upcoming)
โ”‚
โ”œโ”€โ”€ middleware
โ”‚   โ”œโ”€โ”€ authMiddleware.js
โ”‚   โ”œโ”€โ”€ roleMiddleware.js
โ”‚   โ”œโ”€โ”€ errorMiddleware.js
โ”‚   โ””โ”€โ”€ logger.js
โ”‚
โ”œโ”€โ”€ models
โ”‚   โ”œโ”€โ”€ User.js
โ”‚   โ””โ”€โ”€ Complaint.js
โ”‚
โ”œโ”€โ”€ routes
โ”‚   โ”œโ”€โ”€ authRoutes.js
โ”‚   โ”œโ”€โ”€ complaintRoutes.js
โ”‚   โ”œโ”€โ”€ officerRoutes.js
โ”‚   โ”œโ”€โ”€ userRoutes.js
โ”‚   โ””โ”€โ”€ adminRoutes.js (Upcoming)
โ”‚
โ”œโ”€โ”€ utils
โ”‚   โ”œโ”€โ”€ ApiResponse.js
โ”‚   โ”œโ”€โ”€ ApiError.js
โ”‚   โ””โ”€โ”€ asyncHandler.js
โ”‚
โ”œโ”€โ”€ validators
โ”‚   โ””โ”€โ”€ complaintValidator.js
โ”‚
โ”œโ”€โ”€ app.js
โ”œโ”€โ”€ server.js
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ README.md

โš™ Installation

Clone the repository

git clone https://github.com/Abhinavy1/CitizenConnect.git

Go to backend

cd CitizenConnect/backend

Install dependencies

npm install

Create a .env file

PORT=5000
MONGO_URI=YOUR_MONGODB_CONNECTION_STRING
JWT_SECRET=YOUR_SECRET_KEY

Start development server

npm run dev

๐Ÿ”‘ Environment Variables

Variable Description
PORT Server Port
MONGO_URI MongoDB Atlas Connection String
JWT_SECRET Secret key for JWT

๐Ÿ“ก API Overview

Authentication

POST /api/auth/register
POST /api/auth/login

Complaints

POST /api/complaints
GET /api/complaints
GET /api/complaints/:id
PUT /api/complaints/:id
DELETE /api/complaints/:id

Officer

GET /api/officer/complaints
PUT /api/officer/assign/:id
PUT /api/officer/status/:id
POST /api/officer/remark/:id

Admin (Upcoming)

GET /api/admin/dashboard
GET /api/admin/users
PUT /api/admin/promote/:id
PUT /api/admin/block/:id

๐Ÿ”’ Security Features

  • JWT Authentication
  • Password Hashing using bcrypt
  • Role-Based Authorization
  • Request Validation
  • Global Error Handling
  • Logger Middleware

๐Ÿš€ Future Enhancements

  • Admin Dashboard
  • React Frontend
  • Cloudinary Image Upload
  • Email Notifications
  • Complaint Tracking Timeline
  • Charts & Analytics
  • Docker Support
  • CI/CD Pipeline
  • Unit Testing
  • Swagger API Documentation

๐Ÿ“ธ Screenshots

Screenshots will be added after frontend completion.


๐Ÿ‘จโ€๐Ÿ’ป Author

Abhinav Kumar

B.Tech Computer Science Engineering

Software Development | Backend Development | Full Stack Development

GitHub:

https://github.com/Abhinavy1


โญ Support

If you like this project, consider giving it a โญ on GitHub.


๐Ÿ“„ License

This project is licensed under the MIT License.

About

A full-stack Complaint Management System built with Node.js, Express.js, MongoDB, and JWT Authentication.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages