# darshan758/ai-enabled-smart-village-service-portal-using-mern-stack- architecture

> Architecture diagram of the GitHub repository darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-
- Repository: https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-

## Overview

Smart Village is a civic-issue platform: citizens register and submit location- and image-supported complaints, then administrators and departments route, assign, track, and verify resolution work. Its backend also provides agricultural price/advisory, government-scheme eligibility and document checks, and an FAQ assistant. The graph follows documented routes and sampled or indexed imports; unsampled feature integrations are omitted or shown as unverified dashed links.

Main entry points: [`backend/server.js`](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/server.js) (API server), [`frontend/src/App.jsx`](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/App.jsx) (Web routing), [`backend/controllers/complaintController.js`](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/complaintController.js) (Complaint handling), [`backend/models/Complaint.js`](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/models/Complaint.js) (Complaint records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Web experience"]
  node_webapp["Web routing<br/>[App.jsx]"]
  node_complaint_ui["Complaint workflows<br/>[ComplaintForm.jsx]"]
  node_admin_ui["Admin dashboard<br/>[AdminDashboard.jsx]"]
  node_worker_ui["Worker dashboard"]
  node_auth_ui["Session context<br/>[AuthContext.jsx]"]
  node_advisory_ui["Farm advisory<br/>[AdvisoryPage.jsx]"]
end

subgraph group_civic["Civic operations"]
  node_server["API server<br/>[server.js]"]
  node_complaint_routes["Complaint routes<br/>[complaintRoutes.js]"]
  node_complaint_ops["Complaint handling"]
  node_admin_routes["Admin routes<br/>[adminRoutes.js]"]
  node_admin_ops["Admin management<br/>[adminController.js]"]
  node_department_ops["Department operations"]
  node_worker_ops["Worker operations"]
end

subgraph group_platform["Identity and data"]
  node_complaints[("Complaint records<br/>[Complaint.js]")]
  node_users[("User accounts<br/>[User.js]")]
  node_auth["Role authorization<br/>[authMiddleware.js]"]
  node_schemes[("Scheme records<br/>[Scheme.js]")]
end

subgraph group_services["Community services"]
  node_assistant["FAQ assistant"]
  node_assistant_knowledge["Assistant knowledge<br/>[knowledge.js]"]
  node_agriculture["Agriculture services<br/>[agriController.js]"]
  node_scheme_eligibility["Scheme eligibility"]
  node_scheme_documents["Document checks<br/>[documentEngine.js]"]
end

subgraph group_realtime["Live operations"]
  node_socket["Realtime events<br/>[socketHandler.js]"]
  node_sms["SMS notifications<br/>[smsService.js]"]
end

node_citizens(("Citizens"))
node_mongodb[("MongoDB")]

node_citizens -->|"use"| node_webapp
node_webapp -->|"routes to"| node_complaint_ui
node_webapp -->|"routes to"| node_admin_ui
node_webapp -->|"routes to"| node_worker_ui
node_webapp -->|"routes to"| node_advisory_ui
node_auth_ui -->|"authenticates via"| node_users
node_server -->|"mounts"| node_complaint_routes
node_server -->|"mounts"| node_admin_routes
node_complaint_routes -->|"routes requests"| node_complaint_ops
node_admin_routes -->|"routes requests"| node_admin_ops
node_admin_routes -->|"protects routes"| node_auth
node_complaint_routes -->|"protects routes"| node_auth
node_complaint_ops -->|"creates and queries"| node_complaints
node_complaint_ops -->|"looks up reporter"| node_users
node_admin_ops -->|"manages"| node_complaints
node_admin_ops -->|"manages accounts"| node_users
node_department_ops -->|"handles assignments"| node_complaints
node_worker_ops -->|"updates work"| node_complaints
node_complaints -->|"persists in"| node_mongodb
node_users -->|"persists in"| node_mongodb
node_server -->|"mounts routes"| node_assistant
node_assistant -->|"retrieves answers"| node_assistant_knowledge
node_server -->|"mounts routes"| node_agriculture
node_advisory_ui -.->|"requests advice"| node_agriculture
node_server -->|"mounts routes"| node_scheme_eligibility
node_scheme_eligibility -->|"reads schemes"| node_schemes
node_scheme_eligibility -.->|"checks documents"| node_scheme_documents
node_complaint_ops -->|"sends updates"| node_sms
node_admin_ops -->|"sends updates"| node_sms
node_server -->|"initializes"| node_socket
node_complaint_ops -->|"emits events"| node_socket

click node_webapp "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/App.jsx"
click node_complaint_ui "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/pages/ComplaintForm.jsx"
click node_admin_ui "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/pages/AdminDashboard.jsx"
click node_worker_ui "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/pages/WorkerDashboard.jsx"
click node_auth_ui "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/context/AuthContext.jsx"
click node_server "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/server.js"
click node_complaint_routes "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/routes/complaintRoutes.js"
click node_complaint_ops "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/complaintController.js"
click node_admin_routes "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/routes/adminRoutes.js"
click node_admin_ops "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/adminController.js"
click node_department_ops "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/departmentController.js"
click node_worker_ops "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/workerController.js"
click node_complaints "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/models/Complaint.js"
click node_users "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/models/User.js"
click node_auth "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/middleware/authMiddleware.js"
click node_assistant "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/assistant/assistantController.js"
click node_assistant_knowledge "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/assistant/knowledge.js"
click node_agriculture "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/agriController.js"
click node_advisory_ui "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/features/agri/pages/AdvisoryPage.jsx"
click node_scheme_eligibility "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/scheme-module/controllers/eligibilityController.js"
click node_scheme_documents "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/scheme-module/services/documentEngine.js"
click node_schemes "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/scheme-module/models/Scheme.js"
click node_socket "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/socket/socketHandler.js"
click node_sms "https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/utils/smsService.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_webapp,node_complaint_ui,node_admin_ui,node_worker_ui,node_auth_ui,node_advisory_ui toneBlue
class node_server,node_complaint_routes,node_complaint_ops,node_admin_routes,node_admin_ops,node_department_ops,node_worker_ops,node_mongodb toneAmber
class node_complaints,node_users,node_auth,node_schemes toneMint
class node_assistant,node_assistant_knowledge,node_agriculture,node_scheme_eligibility,node_scheme_documents toneRose
class node_socket,node_sms,node_citizens toneIndigo
```

## Components

### Web experience

- [Web routing](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Complaint workflows](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/pages/ComplaintForm.jsx): `frontend/src/pages/ComplaintForm.jsx`
- [Admin dashboard](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/pages/AdminDashboard.jsx): `frontend/src/pages/AdminDashboard.jsx`
- [Worker dashboard](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/pages/WorkerDashboard.jsx): `frontend/src/pages/WorkerDashboard.jsx`
- [Session context](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Farm advisory](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/frontend/src/features/agri/pages/AdvisoryPage.jsx): `frontend/src/features/agri/pages/AdvisoryPage.jsx`

### Civic operations

- [API server](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/server.js): `backend/server.js`
- [Complaint routes](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/routes/complaintRoutes.js): `backend/routes/complaintRoutes.js`
- [Complaint handling](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/complaintController.js): `backend/controllers/complaintController.js`
- [Admin routes](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/routes/adminRoutes.js): `backend/routes/adminRoutes.js`
- [Admin management](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/adminController.js): `backend/controllers/adminController.js`
- [Department operations](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/departmentController.js): `backend/controllers/departmentController.js`
- [Worker operations](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/workerController.js): `backend/controllers/workerController.js`

### Identity and data

- [Complaint records](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/models/Complaint.js): `backend/models/Complaint.js`
- [User accounts](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/models/User.js): `backend/models/User.js`
- [Role authorization](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/middleware/authMiddleware.js): `backend/middleware/authMiddleware.js`
- [Scheme records](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/scheme-module/models/Scheme.js): `backend/scheme-module/models/Scheme.js`

### Community services

- [FAQ assistant](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/assistant/assistantController.js): `backend/assistant/assistantController.js`
- [Assistant knowledge](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/assistant/knowledge.js): `backend/assistant/knowledge.js`
- [Agriculture services](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/controllers/agriController.js): `backend/controllers/agriController.js`
- [Scheme eligibility](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/scheme-module/controllers/eligibilityController.js): `backend/scheme-module/controllers/eligibilityController.js`
- [Document checks](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/scheme-module/services/documentEngine.js): `backend/scheme-module/services/documentEngine.js`

### Live operations

- [Realtime events](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/socket/socketHandler.js): `backend/socket/socketHandler.js`
- [SMS notifications](https://github.com/darshan758/ai-enabled-smart-village-service-portal-using-mern-stack-/blob/main/backend/utils/smsService.js): `backend/utils/smsService.js`

### Other components

- **Citizens**
- **MongoDB**

## Connections

- Citizens → Web routing: use (evidence: `README.md`)
- Web routing → Complaint workflows: routes to (evidence: `frontend/src/App.jsx`)
- Web routing → Admin dashboard: routes to (evidence: `frontend/src/App.jsx`)
- Web routing → Worker dashboard: routes to (evidence: `frontend/src/App.jsx`)
- Web routing → Farm advisory: routes to (evidence: `frontend/src/App.jsx`)
- Session context → User accounts: authenticates via (evidence: `frontend/src/context/AuthContext.jsx`)
- API server → Complaint routes: mounts (evidence: `backend/server.js`)
- API server → Admin routes: mounts (evidence: `backend/server.js`)
- Complaint routes → Complaint handling: routes requests (evidence: `backend/routes/complaintRoutes.js`)
- Admin routes → Admin management: routes requests (evidence: `backend/routes/adminRoutes.js`)
- Admin routes → Role authorization: protects routes (evidence: `backend/routes/adminRoutes.js`)
- Complaint routes → Role authorization: protects routes (evidence: `backend/routes/complaintRoutes.js`)
- Complaint handling → Complaint records: creates and queries (evidence: `backend/controllers/complaintController.js`)
- Complaint handling → User accounts: looks up reporter (evidence: `backend/controllers/complaintController.js`)
- Admin management → Complaint records: manages (evidence: `backend/controllers/adminController.js`)
- Admin management → User accounts: manages accounts (evidence: `backend/controllers/adminController.js`)
- Department operations → Complaint records: handles assignments (evidence: `backend/controllers/departmentController.js`)
- Worker operations → Complaint records: updates work (evidence: `backend/controllers/workerController.js`)
- Complaint records → MongoDB: persists in (evidence: `README.md`)
- User accounts → MongoDB: persists in (evidence: `README.md`)
- API server → FAQ assistant: mounts routes (evidence: `backend/server.js`)
- FAQ assistant → Assistant knowledge: retrieves answers (evidence: `backend/assistant/assistantController.js`)
- API server → Agriculture services: mounts routes (evidence: `backend/server.js`)
- Farm advisory → Agriculture services: requests advice
- API server → Scheme eligibility: mounts routes (evidence: `backend/server.js`)
- Scheme eligibility → Scheme records: reads schemes (evidence: `backend/scheme-module/controllers/eligibilityController.js`)
- Scheme eligibility → Document checks: checks documents
- Complaint handling → SMS notifications: sends updates (evidence: `backend/controllers/complaintController.js`)
- Admin management → SMS notifications: sends updates (evidence: `backend/controllers/adminController.js`)
- API server → Realtime events: initializes (evidence: `backend/server.js`)
- Complaint handling → Realtime events: emits events (evidence: `backend/controllers/complaintController.js`)
