Developed a Civic Reporting Platform Backend using Node.js, Express.js, and Sequelize, designed to help citizens report infrastructure issues and track their resolution.
The system provides a RESTful API for managing citizen reports, user accounts, notifications, and administrative operations.
Key Features:
• User registration, login, and authentication using JWT.
• Role-Based Access Control for citizens, supervisors, and administrators.
• Password hashing using bcryptjs.
• Create, manage, filter, and track civic reports.
• Upload report images using Multer.
• AI-powered report classification and automatic title generation using Google Gemini.
• AI chatbot with conversation history and offline fallback.
• Real-time notifications using Socket.IO.
• Report upvoting and citizen leaderboard.
• Admin dashboard statistics and report status management.
• Duplicate report detection based on nearby locations.
• Report resolution feedback and status history.
• Input validation using Zod.
• API rate limiting and security headers using Helmet.
• Database management using Sequelize ORM with SQLite and PostgreSQL support.
Technologies:
Node.js, Express.js, JavaScript, Sequelize, SQLite, PostgreSQL, JWT, Socket.IO, Google Gemini API, Zod, Multer, bcryptjs.
The project focuses on building a structured backend architecture with secure authentication, real-time communication, AI integration, and efficient report management.