# sivakumar202/complaint_grievanc_redressal_system architecture

> Architecture diagram of the GitHub repository sivakumar202/complaint_grievanc_redressal_system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sivakumar202/complaint_grievanc_redressal_system
- Repository: https://github.com/sivakumar202/complaint_grievanc_redressal_system

## Overview

This is a role-based college grievance platform. Students authenticate, submit complaints, and track them; HOD/TPO staff handle assigned complaints and respond, while administrators manage staff and review dashboard statistics. Complaint creation can use Gemini embeddings and Pinecone to link duplicates, escalate originals, and notify affected users; resolution also updates linked duplicate records and sends email. The API routes and sampled controllers establish the main backend wiring. Frontend page-to-API calls and unsampled model implementations are not shown, so those links are omitted where wiring is uncertain.

Main entry points: [`frontend/src/App.tsx`](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/App.tsx) (Route application), [`Backend/controllers/complaintController.js`](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/complaintController.js) (Complaint handling), [`Backend/controllers/adminController.js`](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/adminController.js) (Administration and metrics), [`Backend/server.js`](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/server.js) (Express API server)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_app["Route application<br/>[App.tsx]"]
  node_authui["Session and sign-in<br/>[useAuth.tsx]"]
  node_dashboard["Dashboard and analytics<br/>[DashboardHome.tsx]"]
  node_submit["Complaint submission<br/>[NewComplaint.tsx]"]
  node_tracking["Complaint views<br/>[MyComplaints.tsx]"]
  node_staffviews["Staff workflows"]
  node_staffadmin["Staff management"]
end

subgraph group_api["API access"]
  node_api_client["HTTP API client<br/>[api.ts]"]
  node_server["Express API server<br/>[server.js]"]
  node_complaint_routes["Complaint routes<br/>[complaintRoutes.js]"]
  node_admin_routes["Admin routes<br/>[adminRoutes.js]"]
  node_student_routes["Student routes<br/>[studentRoutes.js]"]
  node_auth_mw["Authentication checks<br/>[authentication.js]"]
  node_role_mw["Role authorization<br/>[authorization.js]"]
end

subgraph group_grievance["Grievance operations"]
  node_complaint_ctrl["Complaint handling"]
  node_admin_ctrl["Administration and metrics<br/>[adminController.js]"]
  node_student_ctrl["Student accounts"]
end

subgraph group_services["Data and integrations"]
  node_complaint_model["Complaint records<br/>[complaint.js]"]
  node_repeat_model["Repeated complaint records"]
  node_user_model["User records<br/>[user.js]"]
  node_mongo[("MongoDB")]
  node_embedding["Embedding generation<br/>[embedding.js]"]
  node_pinecone[("Pinecone vector index<br/>[pinecone.js]")]
  node_email["Email delivery<br/>[emailService.js]"]
end

node_actor(("Students and staff"))
node_gemini{{"Google GenAI"}}
node_mailservice{{"Mail provider"}}

node_actor -->|"uses"| node_app
node_app -->|"provides session"| node_authui
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_submit
node_app -->|"routes to"| node_tracking
node_app -->|"routes to"| node_staffviews
node_app -->|"routes to"| node_staffadmin
node_authui -->|"calls auth APIs"| node_api_client
node_api_client -->|"sends requests"| node_server
node_server -->|"dispatches"| node_complaint_routes
node_server -->|"dispatches"| node_admin_routes
node_server -->|"dispatches"| node_student_routes
node_complaint_routes -->|"checks identity"| node_auth_mw
node_complaint_routes -->|"checks role"| node_role_mw
node_complaint_routes -->|"dispatches"| node_complaint_ctrl
node_admin_routes -->|"checks identity"| node_auth_mw
node_admin_routes -->|"checks role"| node_role_mw
node_admin_routes -->|"dispatches"| node_admin_ctrl
node_student_routes -->|"dispatches"| node_student_ctrl
node_complaint_ctrl -->|"reads and writes"| node_complaint_model
node_complaint_ctrl -->|"reads and writes"| node_repeat_model
node_complaint_ctrl -->|"looks up users"| node_user_model
node_admin_ctrl -->|"queries metrics"| node_complaint_model
node_admin_ctrl -->|"queries metrics"| node_repeat_model
node_admin_ctrl -->|"manages accounts"| node_user_model
node_student_ctrl -->|"manages accounts"| node_user_model
node_complaint_model -->|"persists records"| node_mongo
node_repeat_model -->|"persists records"| node_mongo
node_user_model -->|"persists records"| node_mongo
node_complaint_ctrl -->|"requests vector"| node_embedding
node_embedding -->|"generates embedding"| node_gemini
node_complaint_ctrl -->|"queries and indexes"| node_pinecone
node_complaint_ctrl -->|"sends notices"| node_email
node_admin_ctrl -->|"sends reset mail"| node_email
node_email -->|"delivers mail"| node_mailservice

click node_app "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/App.tsx"
click node_authui "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/hooks/useAuth.tsx"
click node_dashboard "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/DashboardHome.tsx"
click node_submit "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/NewComplaint.tsx"
click node_tracking "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/MyComplaints.tsx"
click node_staffviews "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/AssignedComplaints.tsx"
click node_staffadmin "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/StaffManagement.tsx"
click node_api_client "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/lib/api.ts"
click node_server "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/server.js"
click node_complaint_routes "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/routers/complaintRoutes.js"
click node_admin_routes "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/routers/adminRoutes.js"
click node_student_routes "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/routers/studentRoutes.js"
click node_auth_mw "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/middleWare/authentication.js"
click node_role_mw "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/middleWare/authorization.js"
click node_complaint_ctrl "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/complaintController.js"
click node_admin_ctrl "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/adminController.js"
click node_student_ctrl "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/studentController.js"
click node_complaint_model "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/models/complaint.js"
click node_repeat_model "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/models/repeatedComplaint.js"
click node_user_model "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/models/user.js"
click node_embedding "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/utils/embedding.js"
click node_pinecone "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/utils/pinecone.js"
click node_email "https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/service/emailService.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_authui,node_dashboard,node_submit,node_tracking,node_staffviews,node_staffadmin toneBlue
class node_api_client,node_server,node_complaint_routes,node_admin_routes,node_student_routes,node_auth_mw,node_role_mw toneAmber
class node_complaint_ctrl,node_admin_ctrl,node_student_ctrl toneMint
class node_complaint_model,node_repeat_model,node_user_model,node_mongo,node_embedding,node_pinecone,node_email toneRose
class node_actor,node_gemini,node_mailservice toneIndigo
```

## Components

### Web application

- [Route application](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Session and sign-in](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/hooks/useAuth.tsx): `frontend/src/hooks/useAuth.tsx`
- [Dashboard and analytics](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/DashboardHome.tsx): `frontend/src/pages/DashboardHome.tsx`
- [Complaint submission](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/NewComplaint.tsx): `frontend/src/pages/NewComplaint.tsx`
- [Complaint views](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/MyComplaints.tsx): `frontend/src/pages/MyComplaints.tsx`
- [Staff workflows](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/AssignedComplaints.tsx): `frontend/src/pages/AssignedComplaints.tsx`
- [Staff management](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/pages/StaffManagement.tsx): `frontend/src/pages/StaffManagement.tsx`

### API access

- [HTTP API client](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/frontend/src/lib/api.ts): `frontend/src/lib/api.ts`
- [Express API server](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/server.js): `Backend/server.js`
- [Complaint routes](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/routers/complaintRoutes.js): `Backend/routers/complaintRoutes.js`
- [Admin routes](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/routers/adminRoutes.js): `Backend/routers/adminRoutes.js`
- [Student routes](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/routers/studentRoutes.js): `Backend/routers/studentRoutes.js`
- [Authentication checks](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/middleWare/authentication.js): `Backend/middleWare/authentication.js`
- [Role authorization](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/middleWare/authorization.js): `Backend/middleWare/authorization.js`

### Grievance operations

- [Complaint handling](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/complaintController.js): `Backend/controllers/complaintController.js`
- [Administration and metrics](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/adminController.js): `Backend/controllers/adminController.js`
- [Student accounts](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/controllers/studentController.js): `Backend/controllers/studentController.js`

### Data and integrations

- [Complaint records](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/models/complaint.js): `Backend/models/complaint.js`
- [Repeated complaint records](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/models/repeatedComplaint.js): `Backend/models/repeatedComplaint.js`
- [User records](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/models/user.js): `Backend/models/user.js`
- **MongoDB**
- [Embedding generation](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/utils/embedding.js): `Backend/utils/embedding.js`
- [Pinecone vector index](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/utils/pinecone.js): `Backend/utils/pinecone.js`
- [Email delivery](https://github.com/sivakumar202/complaint_grievanc_redressal_system/blob/main/Backend/service/emailService.js): `Backend/service/emailService.js`

### Other components

- **Students and staff**
- **Google GenAI**
- **Mail provider**

## Connections

- Students and staff → Route application: uses
- Route application → Session and sign-in: provides session
- Route application → Dashboard and analytics: routes to
- Route application → Complaint submission: routes to
- Route application → Complaint views: routes to
- Route application → Staff workflows: routes to
- Route application → Staff management: routes to
- Session and sign-in → HTTP API client: calls auth APIs
- HTTP API client → Express API server: sends requests
- Express API server → Complaint routes: dispatches
- Express API server → Admin routes: dispatches
- Express API server → Student routes: dispatches
- Complaint routes → Authentication checks: checks identity
- Complaint routes → Role authorization: checks role
- Complaint routes → Complaint handling: dispatches
- Admin routes → Authentication checks: checks identity
- Admin routes → Role authorization: checks role
- Admin routes → Administration and metrics: dispatches
- Student routes → Student accounts: dispatches
- Complaint handling → Complaint records: reads and writes
- Complaint handling → Repeated complaint records: reads and writes
- Complaint handling → User records: looks up users
- Administration and metrics → Complaint records: queries metrics
- Administration and metrics → Repeated complaint records: queries metrics
- Administration and metrics → User records: manages accounts
- Student accounts → User records: manages accounts
- Complaint records → MongoDB: persists records
- Repeated complaint records → MongoDB: persists records
- User records → MongoDB: persists records
- Complaint handling → Embedding generation: requests vector
- Embedding generation → Google GenAI: generates embedding
- Complaint handling → Pinecone vector index: queries and indexes
- Complaint handling → Email delivery: sends notices
- Administration and metrics → Email delivery: sends reset mail
- Email delivery → Mail provider: delivers mail
