# adityachy07/campus-infrastructure-complaint-tracker architecture

> Architecture diagram of the GitHub repository adityachy07/campus-infrastructure-complaint-tracker, 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/adityachy07/campus-infrastructure-complaint-tracker
- Repository: https://github.com/adityachy07/campus-infrastructure-complaint-tracker

## Overview

Campus Infrastructure Complaint Tracker supports student registration and complaint submission, administrator review and assignment, and maintenance handling, with role-specific dashboards and notifications. The sampled backend shows authentication, complaint persistence, admin assignment notifications, and dashboard aggregation. The tree also identifies the maintenance and notification subsystems, but their full controller and frontend wiring was not sampled, so uncertain links are omitted.

Main entry points: [`backend/src/server.js`](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/server.js) (Express API), [`frontend/src/App.jsx`](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/App.jsx) (Route application), [`backend/src/models/Complaint.js`](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/Complaint.js) (Complaint records), [`backend/src/models/User.js`](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/User.js) (User records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Route application<br/>[App.jsx]"]
  node_auth_pages["Login and registration"]
  node_student_pages["Student portal"]
  node_admin_pages["Admin console"]
  node_maintenance_pages["Maintenance portal"]
  node_auth_service["Auth requests<br/>[authService.js]"]
  node_admin_service["Admin requests<br/>[adminService.js]"]
end

subgraph group_api["API runtime"]
  node_server["Express API<br/>[server.js]"]
  node_auth_routes["Authentication routes<br/>[authRoutes.js]"]
  node_complaint_routes["Complaint routes<br/>[complaintRoutes.js]"]
  node_admin_routes["Admin routes<br/>[adminRoutes.js]"]
  node_dashboard_routes["Dashboard routes<br/>[dashboardRoutes.js]"]
  node_maintenance_routes["Maintenance routes"]
end

subgraph group_workflows["Complaint workflows"]
  node_auth_controller["Account handling<br/>[authController.js]"]
  node_complaint_controller["Complaint handling"]
  node_admin_controller["Review and assignment<br/>[adminController.js]"]
  node_dashboard_controller["Role dashboards"]
  node_maintenance_controller["Work status handling"]
  node_notification_controller["Notification handling"]
end

subgraph group_data["Domain data"]
  node_user_model[("User records<br/>[User.js]")]
  node_complaint_model[("Complaint records<br/>[Complaint.js]")]
  node_notification_model[("Notification records<br/>[Notification.js]")]
end

node_user(("Campus user"))
node_mongo[("MongoDB")]

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_auth_pages
node_app -->|"routes to"| node_student_pages
node_app -->|"routes to"| node_admin_pages
node_app -->|"routes to"| node_maintenance_pages
node_auth_pages -->|"requests"| node_auth_service
node_auth_service -->|"posts auth"| node_server
node_server -->|"mounts"| node_auth_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_server -->|"mounts"| node_complaint_routes
node_server -->|"mounts"| node_admin_routes
node_server -->|"mounts"| node_dashboard_routes
node_server -->|"mounts"| node_maintenance_routes
node_dashboard_routes -->|"dispatches"| node_dashboard_controller
node_maintenance_routes -->|"dispatches"| node_maintenance_controller
node_complaint_controller -->|"reads and writes"| node_complaint_model
node_complaint_controller -->|"finds admins"| node_user_model
node_complaint_controller -->|"creates alerts"| node_notification_model
node_admin_controller -->|"reads and writes"| node_complaint_model
node_admin_controller -->|"checks staff"| node_user_model
node_admin_controller -->|"creates alerts"| node_notification_model
node_dashboard_controller -->|"aggregates"| node_complaint_model
node_dashboard_controller -->|"counts users"| node_user_model
node_notification_controller -->|"handles records"| node_notification_model
node_maintenance_controller -->|"handles assignments"| node_complaint_model
node_user_model -->|"persists"| node_mongo
node_complaint_model -->|"persists"| node_mongo
node_notification_model -->|"persists"| node_mongo

click node_app "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/App.jsx"
click node_auth_pages "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Auth"
click node_student_pages "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Student"
click node_admin_pages "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Admin"
click node_maintenance_pages "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Maintenance"
click node_auth_service "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/services/authService.js"
click node_admin_service "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/services/adminService.js"
click node_server "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/server.js"
click node_auth_routes "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/authRoutes.js"
click node_complaint_routes "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/complaintRoutes.js"
click node_admin_routes "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/adminRoutes.js"
click node_dashboard_routes "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/dashboardRoutes.js"
click node_maintenance_routes "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/maintenanceRoutes.js"
click node_auth_controller "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/authController.js"
click node_complaint_controller "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/complaintController.js"
click node_admin_controller "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/adminController.js"
click node_dashboard_controller "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/dashboardController.js"
click node_maintenance_controller "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/maintenanceController.js"
click node_notification_controller "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/notificationController.js"
click node_user_model "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/User.js"
click node_complaint_model "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/Complaint.js"
click node_notification_model "https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/Notification.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_auth_pages,node_student_pages,node_admin_pages,node_maintenance_pages,node_auth_service,node_admin_service,node_user toneBlue
class node_server,node_auth_routes,node_complaint_routes,node_admin_routes,node_dashboard_routes,node_maintenance_routes,node_mongo toneAmber
class node_auth_controller,node_complaint_controller,node_admin_controller,node_dashboard_controller,node_maintenance_controller,node_notification_controller toneMint
class node_user_model,node_complaint_model,node_notification_model toneRose
```

## Components

### Web client

- [Route application](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Login and registration](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Auth): `frontend/src/pages/Auth`
- [Student portal](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Student): `frontend/src/pages/Student`
- [Admin console](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Admin): `frontend/src/pages/Admin`
- [Maintenance portal](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/tree/main/frontend/src/pages/Maintenance): `frontend/src/pages/Maintenance`
- [Auth requests](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/services/authService.js): `frontend/src/services/authService.js`
- [Admin requests](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/frontend/src/services/adminService.js): `frontend/src/services/adminService.js`

### API runtime

- [Express API](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/server.js): `backend/src/server.js`
- [Authentication routes](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/authRoutes.js): `backend/src/routes/authRoutes.js`
- [Complaint routes](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/complaintRoutes.js): `backend/src/routes/complaintRoutes.js`
- [Admin routes](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/adminRoutes.js): `backend/src/routes/adminRoutes.js`
- [Dashboard routes](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/dashboardRoutes.js): `backend/src/routes/dashboardRoutes.js`
- [Maintenance routes](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/routes/maintenanceRoutes.js): `backend/src/routes/maintenanceRoutes.js`

### Complaint workflows

- [Account handling](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/authController.js): `backend/src/controllers/authController.js`
- [Complaint handling](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/complaintController.js): `backend/src/controllers/complaintController.js`
- [Review and assignment](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/adminController.js): `backend/src/controllers/adminController.js`
- [Role dashboards](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/dashboardController.js): `backend/src/controllers/dashboardController.js`
- [Work status handling](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/maintenanceController.js): `backend/src/controllers/maintenanceController.js`
- [Notification handling](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/controllers/notificationController.js): `backend/src/controllers/notificationController.js`

### Domain data

- [User records](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/User.js): `backend/src/models/User.js`
- [Complaint records](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/Complaint.js): `backend/src/models/Complaint.js`
- [Notification records](https://github.com/adityachy07/campus-infrastructure-complaint-tracker/blob/main/backend/src/models/Notification.js): `backend/src/models/Notification.js`

### Other components

- **Campus user**
- **MongoDB**

## Connections

- Campus user → Route application: uses
- Route application → Login and registration: routes to
- Route application → Student portal: routes to
- Route application → Admin console: routes to
- Route application → Maintenance portal: routes to
- Login and registration → Auth requests: requests
- Auth requests → Express API: posts auth
- Express API → Authentication routes: mounts
- Authentication routes → Account handling: dispatches
- Express API → Complaint routes: mounts
- Express API → Admin routes: mounts
- Express API → Dashboard routes: mounts
- Express API → Maintenance routes: mounts
- Dashboard routes → Role dashboards: dispatches
- Maintenance routes → Work status handling: dispatches
- Complaint handling → Complaint records: reads and writes
- Complaint handling → User records: finds admins
- Complaint handling → Notification records: creates alerts
- Review and assignment → Complaint records: reads and writes
- Review and assignment → User records: checks staff
- Review and assignment → Notification records: creates alerts
- Role dashboards → Complaint records: aggregates
- Role dashboards → User records: counts users
- Notification handling → Notification records: handles records
- Work status handling → Complaint records: handles assignments
- User records → MongoDB: persists
- Complaint records → MongoDB: persists
- Notification records → MongoDB: persists
