A production-ready complaint management system built with the MERN stack.
- Secure Authentication: JWT-based login and registration for Students, Faculty, and Admin.
- Role-Based Authorization: Custom middleware to protect routes and restrict actions based on user roles.
- Complaint Lifecycle: Submit, track, and update complaints through various stages (Pending, Accepted, In Progress, Completed).
- Admin Dashboard: Centralized panel for admins to review all complaints, add remarks, and provide official support information.
- Modern UI: Clean, responsive design with glassmorphism aesthetics and smooth animations.
- Frontend: React, Vite, Framer Motion, Lucide React, Axios.
- Backend: Node.js, Express.js, MongoDB (Mongoose), JWT, Bcrypt, Helmet.
- Node.js (v16+)
- MongoDB (running locally or a remote URI)
- Navigate to the
backenddirectory:cd backend - Install dependencies:
npm install
- Configure environment variables in
.env:PORT=5000 MONGO_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret JWT_EXPIRE=30d
- Start the server:
npm start
- Navigate to the
frontenddirectory:cd frontend - Install dependencies:
npm install
- Start the development server:
npm run dev
- Student: Can register, login, submit complaints, and track their own issue status.
- Faculty: Same as student, but with a faculty designation for categorization.
- Admin: Full control over all complaints. Can update status, add internal remarks, and send public responses.
-
Seed the Database: Follow this step to create the default admin account:
cd backend node utils/seeder.js -
Start the Application: Run both servers in separate terminals:
- Backend:
cd backend && npm run dev - Frontend:
cd frontend && npm run dev
- Backend:
-
Access the App:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
Use these details to log in as the administrator:
| Field | Value |
|---|---|
admin@college.edu |
|
| Password | password123 |