A comprehensive web-based grievance management system built for educational institutions to streamline complaint handling and resolution processes.
- Students: Submit complaints, track progress, provide feedback
- Staff: Manage assigned complaints, send responses, update status
- Admin: Oversee all operations, manage users, assign complaints
- Complete complaint lifecycle (Submit β Assign β Progress β Resolve)
- File attachment support (Images, PDF, DOC, DOCX)
- Real-time status tracking with unique tracking IDs
- Priority-based categorization (High, Medium, Low)
- Department-wise complaint routing
- Student registration notifications
- Admin approval confirmations
- Staff account creation with temporary passwords
- Complaint assignment notifications
- Status update alerts
- JWT-based authentication
- Role-based access control
- Admin approval for student registrations
- File upload validation and security
- CORS protection
- Real-time complaint statistics
- User role distribution
- Department-wise metrics
- Status-based filtering
- Framework: Django 6.0.2 + Django REST Framework
- Database: SQLite (development) / PostgreSQL (production ready)
- Authentication: JWT (Simple JWT)
- Email: SMTP (Gmail)
- File Storage: Local storage with validation
- Framework: React 19.2.4 + Vite
- Routing: React Router DOM
- Styling: Bootstrap 5.3.8 + Custom CSS
- HTTP Client: Axios
- Icons: Bootstrap Icons
- Python 3.8+
- Node.js 16+
- Git
-
Clone the repository
git clone https://github.com/krushnajadhav09/college-grievance-management-system.git cd college-grievance-management-system/grievance_backend -
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Environment Configuration
cp .env.example .env # Edit .env with your settings: # - SECRET_KEY (generate a new one) # - EMAIL_HOST_USER (your Gmail) # - EMAIL_HOST_PASSWORD (Gmail app password)
-
Database Setup
python manage.py makemigrations python manage.py migrate python manage.py createsuperuser
-
Run Backend Server
python manage.py runserver
-
Navigate to frontend directory
cd ../grievance_frontend -
Install dependencies
npm install
-
Environment Configuration
cp .env.example .env # Edit .env if needed (API URL is auto-configured) -
Run Frontend Server
npm run dev
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000/api/
- Admin Panel: http://localhost:8000/admin/
- Register: Create account (requires admin approval)
- Login: Access after approval
- Submit Complaint: Fill form with details and attachments
- Track Progress: Monitor status updates
- Provide Feedback: Rate resolution quality
- Login: Use credentials provided by admin
- View Assignments: See complaints assigned to you
- Update Status: Mark progress (Pending β In Progress β Resolved)
- Send Responses: Communicate with students
- Internal Notes: Add staff-only comments
- Dashboard: View system analytics
- User Management: Approve students, create staff accounts
- Complaint Assignment: Route complaints to appropriate staff
- Department Management: Organize staff by departments
- Category Management: Maintain complaint categories
- Enable 2-Factor Authentication on your Gmail account
- Generate an App Password: Google Account β Security β App passwords
- Add credentials to
.envfile:EMAIL_HOST_USER=your-email@gmail.com EMAIL_HOST_PASSWORD=your-app-password
- Change
SECRET_KEYin production - Set
DEBUG=Falsefor production - Configure
ALLOWED_HOSTSfor your domain - Update
CORS_ALLOWED_ORIGINSfor your frontend URL
college-grievance-system/
βββ grievance_backend/ # Django Backend
β βββ config/ # Project settings
β βββ users/ # User management app
β βββ complaints/ # Complaint management app
β βββ notifications/ # Notification system
β βββ media/ # File uploads
β βββ requirements.txt
βββ grievance_frontend/ # React Frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ services/ # API services
β β βββ assets/ # Static assets
β βββ package.json
βββ README.md
- Authentication: JWT tokens with refresh mechanism
- Authorization: Role-based access control
- File Upload: Type and size validation
- CORS: Restricted to specific origins
- Input Validation: Server-side validation for all inputs
- Password Security: Django's built-in password validation
POST /api/auth/register/- Student registrationPOST /api/auth/token/- LoginPOST /api/auth/token/refresh/- Refresh token
GET /api/complaints/- List complaints (role-filtered)POST /api/complaints/- Create complaintPUT /api/complaints/{id}/- Update complaintPOST /api/complaints/{id}/assign/- Assign complaintPOST /api/complaints/{id}/respond/- Add response
GET /api/auth/users/- List users (admin only)POST /api/auth/users/- Create user (admin only)GET /api/auth/users/pending/- Pending approvals
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Krushna Jadhav
- Email: jadhavkrushna705@gmail.com
- GitHub: @krushnajadhav09
- Built as part of academic project
- Inspired by modern grievance management systems
- Thanks to the open-source community for the amazing tools
β If you found this project helpful, please give it a star!