# shivareddy58/complaint-grievance-management-portal-java-full-stack architecture

> Architecture diagram of the GitHub repository shivareddy58/complaint-grievance-management-portal-java-full-stack, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/shivareddy58/complaint-grievance-management-portal-java-full-stack
- Repository: https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack

## Overview

This is a web portal for submitting grievances and managing them through review, assignment, status changes, and resolution. Users submit complaints and can follow them, add attachments, and provide feedback; officers and administrators manage complaints, while administrators also oversee accounts and reporting. Supporting capabilities include notifications and email, audit records, file storage, and PDF generation. The excerpts show several controller-to-service calls and selected persistence operations; links for unsampled subsystems are kept broad or omitted where their wiring is not established.

Main entry points: [`grievance-management-portal/src/main/java/com/grievance/portal/service/UserService.java`](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/UserService.java) (Account service), [`grievance-management-portal/src/main/java/com/grievance/portal/controller/AdminController.java`](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/AdminController.java) (Admin portal), [`grievance-management-portal/src/main/java/com/grievance/portal/service/ComplaintService.java`](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/ComplaintService.java) (Complaint workflow), [`grievance-management-portal/src/main/java/com/grievance/portal/controller/UserController.java`](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/UserController.java) (User portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Accounts and access"]
  node_user_service["Account service<br/>[UserService.java]"]
  node_public_controller["Public pages"]
  node_reset_controller["Password reset"]
  node_profile_controller["Profile management"]
end

subgraph group_workflow["Complaint workflow"]
  node_user_controller["User portal"]
  node_officer_controller["Officer portal"]
  node_admin_controller["Admin portal"]
  node_complaint_service["Complaint workflow"]
  node_category_service["Category service"]
end

subgraph group_support["Supporting services"]
  node_storage["Attachment storage"]
  node_filesystem[("Uploaded files")]
  node_notification_controller["Notifications"]
  node_notification_service["Notification service"]
  node_email_service["Email service<br/>[EmailService.java]"]
end

subgraph group_records["Records and reporting"]
  node_audit_service["Audit logging"]
  node_report_controller["Reports"]
  node_pdf_service["PDF generation"]
  node_persistence[("Portal records")]
  node_complaint_repository["Complaint queries"]
end

node_user(("Portal user"))
node_staff(("Portal staff"))
node_mail["Mail provider"]

node_user -->|"uses"| node_user_controller
node_staff -->|"manages"| node_officer_controller
node_staff -->|"administers"| node_admin_controller
node_user_controller -->|"submits and tracks"| node_complaint_service
node_user_controller -->|"loads categories"| node_category_service
node_user_controller -->|"handles attachments"| node_storage
node_officer_controller -->|"updates complaints"| node_complaint_service
node_officer_controller -->|"handles evidence"| node_storage
node_officer_controller -->|"logs actions"| node_audit_service
node_admin_controller -->|"manages complaints"| node_complaint_service
node_admin_controller -->|"manages accounts"| node_user_service
node_admin_controller -->|"manages attachments"| node_storage
node_admin_controller -->|"logs actions"| node_audit_service
node_public_controller -.->|"account actions"| node_user_service
node_reset_controller -->|"resets password"| node_user_service
node_profile_controller -.->|"updates profile"| node_user_service
node_complaint_service -->|"queries and saves"| node_complaint_repository
node_complaint_repository -->|"reads and writes"| node_persistence
node_user_service -->|"persists accounts"| node_persistence
node_storage -->|"stores files"| node_filesystem
node_complaint_service -->|"sends notices"| node_email_service
node_user_service -->|"sends account mail"| node_email_service
node_email_service -.->|"delivers email"| node_mail
node_notification_controller -->|"manages notices"| node_notification_service
node_report_controller -->|"generates reports"| node_pdf_service
node_report_controller -->|"queries complaints"| node_complaint_repository
node_report_controller -->|"queries records"| node_persistence
node_audit_service -->|"stores audit records"| node_persistence

click node_user_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/UserController.java"
click node_officer_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/OfficerController.java"
click node_admin_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/AdminController.java"
click node_complaint_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/ComplaintService.java"
click node_category_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/CategoryService.java"
click node_user_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/UserService.java"
click node_public_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/PublicController.java"
click node_reset_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/ForgotResetController.java"
click node_profile_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/ProfileController.java"
click node_storage "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/StorageService.java"
click node_notification_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/NotificationController.java"
click node_notification_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/NotificationService.java"
click node_email_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/EmailService.java"
click node_audit_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/AuditLogService.java"
click node_report_controller "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/ReportController.java"
click node_pdf_service "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/PdfGeneratorService.java"
click node_persistence "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/tree/main/grievance-management-portal/src/main/java/com/grievance/portal/repository"
click node_complaint_repository "https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/repository/ComplaintRepository.java"

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_user_service,node_public_controller,node_reset_controller,node_profile_controller,node_user toneBlue
class node_user_controller,node_officer_controller,node_admin_controller,node_complaint_service,node_category_service toneAmber
class node_storage,node_filesystem,node_notification_controller,node_notification_service,node_email_service toneMint
class node_audit_service,node_report_controller,node_pdf_service,node_persistence,node_complaint_repository toneRose
class node_staff,node_mail toneIndigo
```

## Components

### Accounts and access

- [Account service](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/UserService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/UserService.java`
- [Public pages](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/PublicController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/PublicController.java`
- [Password reset](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/ForgotResetController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/ForgotResetController.java`
- [Profile management](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/ProfileController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/ProfileController.java`

### Complaint workflow

- [User portal](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/UserController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/UserController.java`
- [Officer portal](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/OfficerController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/OfficerController.java`
- [Admin portal](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/AdminController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/AdminController.java`
- [Complaint workflow](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/ComplaintService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/ComplaintService.java`
- [Category service](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/CategoryService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/CategoryService.java`

### Supporting services

- [Attachment storage](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/StorageService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/StorageService.java`
- **Uploaded files**
- [Notifications](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/NotificationController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/NotificationController.java`
- [Notification service](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/NotificationService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/NotificationService.java`
- [Email service](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/EmailService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/EmailService.java`

### Records and reporting

- [Audit logging](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/AuditLogService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/AuditLogService.java`
- [Reports](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/controller/ReportController.java): `grievance-management-portal/src/main/java/com/grievance/portal/controller/ReportController.java`
- [PDF generation](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/service/PdfGeneratorService.java): `grievance-management-portal/src/main/java/com/grievance/portal/service/PdfGeneratorService.java`
- [Portal records](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/tree/main/grievance-management-portal/src/main/java/com/grievance/portal/repository): `grievance-management-portal/src/main/java/com/grievance/portal/repository`
- [Complaint queries](https://github.com/shivareddy58/complaint-grievance-management-portal-java-full-stack/blob/main/grievance-management-portal/src/main/java/com/grievance/portal/repository/ComplaintRepository.java): `grievance-management-portal/src/main/java/com/grievance/portal/repository/ComplaintRepository.java`

### Other components

- **Portal user**
- **Portal staff**
- **Mail provider**

## Connections

- Portal user → User portal: uses
- Portal staff → Officer portal: manages
- Portal staff → Admin portal: administers
- User portal → Complaint workflow: submits and tracks
- User portal → Category service: loads categories
- User portal → Attachment storage: handles attachments
- Officer portal → Complaint workflow: updates complaints
- Officer portal → Attachment storage: handles evidence
- Officer portal → Audit logging: logs actions
- Admin portal → Complaint workflow: manages complaints
- Admin portal → Account service: manages accounts
- Admin portal → Attachment storage: manages attachments
- Admin portal → Audit logging: logs actions
- Public pages → Account service: account actions
- Password reset → Account service: resets password
- Profile management → Account service: updates profile
- Complaint workflow → Complaint queries: queries and saves
- Complaint queries → Portal records: reads and writes
- Account service → Portal records: persists accounts
- Attachment storage → Uploaded files: stores files
- Complaint workflow → Email service: sends notices
- Account service → Email service: sends account mail
- Email service → Mail provider: delivers email
- Notifications → Notification service: manages notices
- Reports → PDF generation: generates reports
- Reports → Complaint queries: queries complaints
- Reports → Portal records: queries records
- Audit logging → Portal records: stores audit records
