# jyotirbbhanu17/hostelconnect-backend architecture

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

- Interactive diagram: https://gitdiagram.com/jyotirbbhanu17/hostelconnect-backend
- Repository: https://github.com/jyotirbbhanu17/hostelconnect-backend

## Overview

HostelConnect is a hostel-community backend for student accounts and complaints, with administration and supporting notice, notification, profile, and student-import capabilities. The main visible workflow is a user submitting or managing a complaint through the complaint API, which delegates to the complaint service. Authentication, admin operations, and other capabilities are represented from the repository tree and source index; their internal call paths were not sampled, so those links are left unverified.

Main entry points: [`src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java`](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java) (Complaint services), [`src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java`](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java) (Authentication), [`src/main/java/com/hostelconnect/backend/entity/User.java`](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/User.java) (User records), [`src/main/java/com/hostelconnect/backend/controller/ComplaintController.java`](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/ComplaintController.java) (Complaint API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_complaints["Complaints"]
  node_complaint_api["Complaint API"]
  node_complaint_logic["Complaint services"]
  node_complaint_store[("Complaint data<br/>[Complaint.java]")]
  node_upvote_store[("Complaint upvotes")]
  node_complaint_filters["Complaint filtering"]
end

subgraph group_accounts["Accounts and Admin"]
  node_account_api["Authentication API"]
  node_auth_logic["Authentication"]
  node_jwt["JWT security<br/>[JwtUtil.java]"]
  node_auth_filter["JWT filter"]
  node_user_lookup["User lookup"]
  node_user_store[("User records<br/>[User.java]")]
  node_admin_api["Admin API"]
  node_admin_logic["Admin services"]
  node_excel_import["Student import"]
end

subgraph group_community["Community Updates"]
  node_notice_api["Notice API"]
  node_notice_logic["Notice services"]
  node_notice_store[("Notice data<br/>[Notice.java]")]
  node_notification_api["Notification API"]
  node_notification_logic["Notification services"]
  node_notification_store[("Notification data<br/>[Notification.java]")]
end

subgraph group_support["Supporting Services"]
  node_profile["Profile services"]
  node_file_storage["File storage"]
  node_email["Email service<br/>[EmailService.java]"]
end

node_user(("Hostel user"))

node_user -->|"submits requests"| node_complaint_api
node_complaint_api -->|"delegates operations"| node_complaint_logic
node_complaint_logic -.->|"manages records"| node_complaint_store
node_complaint_logic -.->|"tracks upvotes"| node_upvote_store
node_complaint_logic -.->|"filters complaints"| node_complaint_filters
node_user -.->|"authenticates"| node_account_api
node_account_api -.->|"delegates authentication"| node_auth_logic
node_auth_logic -.->|"looks up accounts"| node_user_store
node_auth_logic -.->|"uses tokens"| node_jwt
node_auth_logic -.->|"sends email"| node_email
node_auth_filter -.->|"loads user details"| node_user_lookup
node_user_lookup -->|"queries accounts"| node_user_store
node_user -.->|"manages students"| node_admin_api
node_admin_api -.->|"delegates admin tasks"| node_admin_logic
node_admin_logic -.->|"manages accounts"| node_user_store
node_user -.->|"imports student data"| node_excel_import
node_user -.->|"accesses notices"| node_notice_api
node_notice_api -.->|"delegates notice tasks"| node_notice_logic
node_notice_logic -.->|"manages notices"| node_notice_store
node_user -.->|"views notifications"| node_notification_api
node_notification_api -.->|"delegates notification tasks"| node_notification_logic
node_notification_logic -.->|"manages notifications"| node_notification_store
node_user -.->|"manages profile"| node_profile
node_complaint_logic -.->|"stores attachments"| node_file_storage

click node_complaint_api "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/ComplaintController.java"
click node_complaint_logic "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java"
click node_complaint_store "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/Complaint.java"
click node_upvote_store "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/repository/ComplaintUpvoteRepository.java"
click node_complaint_filters "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/repository/specification/ComplaintSpecification.java"
click node_account_api "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/AuthController.java"
click node_auth_logic "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java"
click node_jwt "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/security/jwt/JwtUtil.java"
click node_auth_filter "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/security/filter/JwtAuthenticationFilter.java"
click node_user_lookup "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/security/service/CustomUserDetailsService.java"
click node_user_store "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/User.java"
click node_admin_api "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/AdminController.java"
click node_admin_logic "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/AdminServiceImpl.java"
click node_excel_import "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/ExcelImportService.java"
click node_notice_api "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/NoticeController.java"
click node_notice_logic "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/NoticeServiceImpl.java"
click node_notice_store "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/Notice.java"
click node_notification_api "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/NotificationController.java"
click node_notification_logic "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/NotificationServiceImpl.java"
click node_notification_store "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/Notification.java"
click node_profile "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/ProfileServiceImpl.java"
click node_file_storage "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/FileStorageServiceImpl.java"
click node_email "https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/EmailService.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_complaint_api,node_complaint_logic,node_complaint_store,node_upvote_store,node_complaint_filters,node_user toneBlue
class node_account_api,node_auth_logic,node_jwt,node_auth_filter,node_user_lookup,node_user_store,node_admin_api,node_admin_logic,node_excel_import toneAmber
class node_notice_api,node_notice_logic,node_notice_store,node_notification_api,node_notification_logic,node_notification_store toneMint
class node_profile,node_file_storage,node_email toneRose
```

## Components

### Complaints

- [Complaint API](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/ComplaintController.java): `src/main/java/com/hostelconnect/backend/controller/ComplaintController.java`
- [Complaint services](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java`
- [Complaint data](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/Complaint.java): `src/main/java/com/hostelconnect/backend/entity/Complaint.java`
- [Complaint upvotes](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/repository/ComplaintUpvoteRepository.java): `src/main/java/com/hostelconnect/backend/repository/ComplaintUpvoteRepository.java`
- [Complaint filtering](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/repository/specification/ComplaintSpecification.java): `src/main/java/com/hostelconnect/backend/repository/specification/ComplaintSpecification.java`

### Accounts and Admin

- [Authentication API](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/AuthController.java): `src/main/java/com/hostelconnect/backend/controller/AuthController.java`
- [Authentication](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java`
- [JWT security](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/security/jwt/JwtUtil.java): `src/main/java/com/hostelconnect/backend/security/jwt/JwtUtil.java`
- [JWT filter](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/security/filter/JwtAuthenticationFilter.java): `src/main/java/com/hostelconnect/backend/security/filter/JwtAuthenticationFilter.java`
- [User lookup](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/security/service/CustomUserDetailsService.java): `src/main/java/com/hostelconnect/backend/security/service/CustomUserDetailsService.java`
- [User records](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/User.java): `src/main/java/com/hostelconnect/backend/entity/User.java`
- [Admin API](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/AdminController.java): `src/main/java/com/hostelconnect/backend/controller/AdminController.java`
- [Admin services](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/AdminServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/AdminServiceImpl.java`
- [Student import](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/ExcelImportService.java): `src/main/java/com/hostelconnect/backend/service/ExcelImportService.java`

### Community Updates

- [Notice API](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/NoticeController.java): `src/main/java/com/hostelconnect/backend/controller/NoticeController.java`
- [Notice services](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/NoticeServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/NoticeServiceImpl.java`
- [Notice data](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/Notice.java): `src/main/java/com/hostelconnect/backend/entity/Notice.java`
- [Notification API](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/controller/NotificationController.java): `src/main/java/com/hostelconnect/backend/controller/NotificationController.java`
- [Notification services](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/NotificationServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/NotificationServiceImpl.java`
- [Notification data](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/entity/Notification.java): `src/main/java/com/hostelconnect/backend/entity/Notification.java`

### Supporting Services

- [Profile services](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/ProfileServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/ProfileServiceImpl.java`
- [File storage](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/impl/FileStorageServiceImpl.java): `src/main/java/com/hostelconnect/backend/service/impl/FileStorageServiceImpl.java`
- [Email service](https://github.com/jyotirbbhanu17/hostelconnect-backend/blob/main/src/main/java/com/hostelconnect/backend/service/EmailService.java): `src/main/java/com/hostelconnect/backend/service/EmailService.java`

### Other components

- **Hostel user**

## Connections

- Hostel user → Complaint API: submits requests (evidence: `src/main/java/com/hostelconnect/backend/controller/ComplaintController.java`)
- Complaint API → Complaint services: delegates operations (evidence: `src/main/java/com/hostelconnect/backend/controller/ComplaintController.java`)
- Complaint services → Complaint data: manages records (evidence: `src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java`)
- Complaint services → Complaint upvotes: tracks upvotes (evidence: `src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java`)
- Complaint services → Complaint filtering: filters complaints (evidence: `src/main/java/com/hostelconnect/backend/service/impl/ComplaintServiceImpl.java`)
- Hostel user → Authentication API: authenticates
- Authentication API → Authentication: delegates authentication
- Authentication → User records: looks up accounts (evidence: `src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java`)
- Authentication → JWT security: uses tokens (evidence: `src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java`)
- Authentication → Email service: sends email (evidence: `src/main/java/com/hostelconnect/backend/service/impl/AuthServiceImpl.java`)
- JWT filter → User lookup: loads user details (evidence: `src/main/java/com/hostelconnect/backend/security/filter/JwtAuthenticationFilter.java`)
- User lookup → User records: queries accounts (evidence: `src/main/java/com/hostelconnect/backend/security/service/CustomUserDetailsService.java`)
- Hostel user → Admin API: manages students
- Admin API → Admin services: delegates admin tasks (evidence: `src/main/java/com/hostelconnect/backend/controller/AdminController.java`)
- Admin services → User records: manages accounts (evidence: `src/main/java/com/hostelconnect/backend/service/impl/AdminServiceImpl.java`)
- Hostel user → Student import: imports student data
- Hostel user → Notice API: accesses notices
- Notice API → Notice services: delegates notice tasks (evidence: `src/main/java/com/hostelconnect/backend/controller/NoticeController.java`)
- Notice services → Notice data: manages notices
- Hostel user → Notification API: views notifications
- Notification API → Notification services: delegates notification tasks (evidence: `src/main/java/com/hostelconnect/backend/controller/NotificationController.java`)
- Notification services → Notification data: manages notifications
- Hostel user → Profile services: manages profile
- Complaint services → File storage: stores attachments
