Skip to content

krushnajadhav09/college-grievance-management-system

Repository files navigation

πŸŽ“ College Grievance Management System (CGMS)

A comprehensive web-based grievance management system built for educational institutions to streamline complaint handling and resolution processes.

🌟 Features

πŸ‘₯ Multi-Role System

  • Students: Submit complaints, track progress, provide feedback
  • Staff: Manage assigned complaints, send responses, update status
  • Admin: Oversee all operations, manage users, assign complaints

πŸ“‹ Complaint Management

  • 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

πŸ“§ Email Notifications

  • Student registration notifications
  • Admin approval confirmations
  • Staff account creation with temporary passwords
  • Complaint assignment notifications
  • Status update alerts

πŸ” Security Features

  • JWT-based authentication
  • Role-based access control
  • Admin approval for student registrations
  • File upload validation and security
  • CORS protection

πŸ“Š Analytics Dashboard

  • Real-time complaint statistics
  • User role distribution
  • Department-wise metrics
  • Status-based filtering

πŸ› οΈ Technology Stack

Backend

  • 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

Frontend

  • Framework: React 19.2.4 + Vite
  • Routing: React Router DOM
  • Styling: Bootstrap 5.3.8 + Custom CSS
  • HTTP Client: Axios
  • Icons: Bootstrap Icons

πŸš€ Installation & Setup

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • Git

Backend Setup

  1. Clone the repository

    git clone https://github.com/krushnajadhav09/college-grievance-management-system.git
    cd college-grievance-management-system/grievance_backend
  2. Create virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. 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)
  5. Database Setup

    python manage.py makemigrations
    python manage.py migrate
    python manage.py createsuperuser
  6. Run Backend Server

    python manage.py runserver

Frontend Setup

  1. Navigate to frontend directory

    cd ../grievance_frontend
  2. Install dependencies

    npm install
  3. Environment Configuration

    cp .env.example .env
    # Edit .env if needed (API URL is auto-configured)
  4. Run Frontend Server

    npm run dev

🌐 Access the Application

πŸ“± User Guide

For Students

  1. Register: Create account (requires admin approval)
  2. Login: Access after approval
  3. Submit Complaint: Fill form with details and attachments
  4. Track Progress: Monitor status updates
  5. Provide Feedback: Rate resolution quality

For Staff

  1. Login: Use credentials provided by admin
  2. View Assignments: See complaints assigned to you
  3. Update Status: Mark progress (Pending β†’ In Progress β†’ Resolved)
  4. Send Responses: Communicate with students
  5. Internal Notes: Add staff-only comments

For Admin

  1. Dashboard: View system analytics
  2. User Management: Approve students, create staff accounts
  3. Complaint Assignment: Route complaints to appropriate staff
  4. Department Management: Organize staff by departments
  5. Category Management: Maintain complaint categories

πŸ”§ Configuration

Email Setup (Gmail)

  1. Enable 2-Factor Authentication on your Gmail account
  2. Generate an App Password: Google Account β†’ Security β†’ App passwords
  3. Add credentials to .env file:
    EMAIL_HOST_USER=your-email@gmail.com
    EMAIL_HOST_PASSWORD=your-app-password
    

Security Settings

  • Change SECRET_KEY in production
  • Set DEBUG=False for production
  • Configure ALLOWED_HOSTS for your domain
  • Update CORS_ALLOWED_ORIGINS for your frontend URL

πŸ“ Project Structure

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

πŸ”’ Security Features

  • 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

πŸ“Š API Endpoints

Authentication

  • POST /api/auth/register/ - Student registration
  • POST /api/auth/token/ - Login
  • POST /api/auth/token/refresh/ - Refresh token

Complaints

  • GET /api/complaints/ - List complaints (role-filtered)
  • POST /api/complaints/ - Create complaint
  • PUT /api/complaints/{id}/ - Update complaint
  • POST /api/complaints/{id}/assign/ - Assign complaint
  • POST /api/complaints/{id}/respond/ - Add response

Users

  • GET /api/auth/users/ - List users (admin only)
  • POST /api/auth/users/ - Create user (admin only)
  • GET /api/auth/users/pending/ - Pending approvals

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Developer

Krushna Jadhav

πŸ™ Acknowledgments

  • 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!

About

A comprehensive web-based grievance management system for educational institutions built with Django REST Framework and React

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages