# pixabyte-corporation/helpdesk-java-api architecture

> Architecture diagram of the GitHub repository pixabyte-corporation/helpdesk-java-api, 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/pixabyte-corporation/helpdesk-java-api
- Repository: https://github.com/pixabyte-corporation/helpdesk-java-api

## Overview

HelpDesk API supports account signup, login and verification, then project, ticket and comment workflows. Ticket endpoints create and search tickets; project endpoints create, list and update projects; comment endpoints create, retrieve and update comments. Authentication also provides JWT/security support, and notification code handles verification email. The excerpts show controller-to-use-case calls and ticket persistence; the README is empty and most implementation files were not sampled, so uncertain links are omitted or marked unverified.

Main entry points: [`src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers`](https://github.com/pixabyte-corporation/helpdesk-java-api/tree/main/src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers) (Comment endpoints), [`src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers`](https://github.com/pixabyte-corporation/helpdesk-java-api/tree/main/src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers) (Project endpoints), [`src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java`](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java) (Ticket endpoints), [`src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java`](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java) (Signup endpoint)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_auth["Authentication"]
  node_signup["Signup endpoint"]
  node_signup_uc["Signup use case"]
  node_login["Login endpoint"]
  node_verify["Verification endpoint"]
  node_security["JWT security"]
  node_user_details["User identity"]
  node_user_store[("User repository")]
end

subgraph group_projects["Projects"]
  node_project_api["Project endpoints"]
  node_project_create["Project creation"]
  node_project_update["Project update"]
  node_project_domain["Project model<br/>[Project.java]"]
  node_project_store[("Project repository")]
end

subgraph group_tickets["Tickets"]
  node_ticket_api["Ticket endpoints"]
  node_ticket_create["Ticket creation"]
  node_ticket_search["Ticket search"]
  node_ticket_store[("Ticket repository")]
end

subgraph group_comments["Comments"]
  node_comment_api["Comment endpoints"]
  node_comment_create["Comment creation"]
  node_comment_read["Comment retrieval"]
  node_comment_update["Comment update"]
  node_comment_store[("Comment repository")]
end

subgraph group_platform["Notifications and shared"]
  node_email["Verification email"]
  node_event_bus["Domain event bus"]
  node_page["Paged results<br/>[ResultsPage.java]"]
end

node_client(("API client"))

node_client -->|"submits"| node_signup
node_signup -->|"executes"| node_signup_uc
node_client -.->|"submits"| node_login
node_client -->|"requests"| node_verify
node_security -.->|"authenticates"| node_user_details
node_signup_uc -.->|"persists user"| node_user_store
node_client -->|"requests"| node_project_api
node_project_api -->|"executes"| node_project_update
node_project_api -.->|"executes"| node_project_create
node_project_update -.->|"updates"| node_project_domain
node_project_create -.->|"persists project"| node_project_store
node_client -->|"requests"| node_ticket_api
node_ticket_api -->|"executes"| node_ticket_create
node_ticket_api -->|"executes"| node_ticket_search
node_ticket_search -->|"returns page"| node_page
node_ticket_create -.->|"persists ticket"| node_ticket_store
node_ticket_store -->|"returns page"| node_page
node_client -->|"requests"| node_comment_api
node_comment_api -->|"executes"| node_comment_create
node_comment_api -->|"executes"| node_comment_read
node_comment_api -->|"executes"| node_comment_update
node_comment_create -.->|"persists comment"| node_comment_store
node_verify -.->|"triggers email"| node_email
node_event_bus -.->|"dispatches event"| node_email

click node_signup "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java"
click node_signup_uc "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/application/signup/SignupUserUseCase.java"
click node_login "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/LoginPostController.java"
click node_verify "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/VerifyUserGetController.java"
click node_security "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/security/config/SecurityConfiguration.java"
click node_user_details "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/security/config/HelpDeskUserDetails.java"
click node_user_store "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/PostgresUserRepository.java"
click node_project_api "https://github.com/pixabyte-corporation/helpdesk-java-api/tree/main/src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers"
click node_project_create "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/application/create/CreateProjectUseCase.java"
click node_project_update "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/application/update/UpdateProjectUseCase.java"
click node_project_domain "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/domain/Project.java"
click node_project_store "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/persistence/PostgresProjectRepository.java"
click node_ticket_api "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java"
click node_ticket_create "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/application/create/CreateTicketUseCase.java"
click node_ticket_search "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/application/search/SearchTicketsUseCase.java"
click node_ticket_store "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/persistence/PostgresTicketRepository.java"
click node_comment_api "https://github.com/pixabyte-corporation/helpdesk-java-api/tree/main/src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers"
click node_comment_create "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/application/create/CreateCommentUseCase.java"
click node_comment_read "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/application/find/GetCommentsUseCase.java"
click node_comment_update "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/application/update/UpdateCommentUseCase.java"
click node_comment_store "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/persistence/PostgresCommentRepository.java"
click node_email "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/notification/infrastructure/ResendEmailSender.java"
click node_event_bus "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/shared/infrastructure/bus/SpringEventBus.java"
click node_page "https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/shared/domain/ResultsPage.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_signup,node_signup_uc,node_login,node_verify,node_security,node_user_details,node_user_store,node_client toneBlue
class node_project_api,node_project_create,node_project_update,node_project_domain,node_project_store toneAmber
class node_ticket_api,node_ticket_create,node_ticket_search,node_ticket_store toneMint
class node_comment_api,node_comment_create,node_comment_read,node_comment_update,node_comment_store toneRose
class node_email,node_event_bus,node_page toneIndigo
```

## Components

### Authentication

- [Signup endpoint](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java`
- [Signup use case](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/application/signup/SignupUserUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/application/signup/SignupUserUseCase.java`
- [Login endpoint](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/LoginPostController.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/LoginPostController.java`
- [Verification endpoint](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/VerifyUserGetController.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/VerifyUserGetController.java`
- [JWT security](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/security/config/SecurityConfiguration.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/security/config/SecurityConfiguration.java`
- [User identity](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/security/config/HelpDeskUserDetails.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/security/config/HelpDeskUserDetails.java`
- [User repository](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/PostgresUserRepository.java): `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/PostgresUserRepository.java`

### Projects

- [Project endpoints](https://github.com/pixabyte-corporation/helpdesk-java-api/tree/main/src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers): `src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers`
- [Project creation](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/application/create/CreateProjectUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/projects/application/create/CreateProjectUseCase.java`
- [Project update](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/application/update/UpdateProjectUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/projects/application/update/UpdateProjectUseCase.java`
- [Project model](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/domain/Project.java): `src/main/java/com/pixabyte/helpdeskapi/projects/domain/Project.java`
- [Project repository](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/persistence/PostgresProjectRepository.java): `src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/persistence/PostgresProjectRepository.java`

### Tickets

- [Ticket endpoints](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java): `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java`
- [Ticket creation](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/application/create/CreateTicketUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/tickets/application/create/CreateTicketUseCase.java`
- [Ticket search](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/application/search/SearchTicketsUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/tickets/application/search/SearchTicketsUseCase.java`
- [Ticket repository](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/persistence/PostgresTicketRepository.java): `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/persistence/PostgresTicketRepository.java`

### Comments

- [Comment endpoints](https://github.com/pixabyte-corporation/helpdesk-java-api/tree/main/src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers): `src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers`
- [Comment creation](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/application/create/CreateCommentUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/comments/application/create/CreateCommentUseCase.java`
- [Comment retrieval](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/application/find/GetCommentsUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/comments/application/find/GetCommentsUseCase.java`
- [Comment update](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/application/update/UpdateCommentUseCase.java): `src/main/java/com/pixabyte/helpdeskapi/comments/application/update/UpdateCommentUseCase.java`
- [Comment repository](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/persistence/PostgresCommentRepository.java): `src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/persistence/PostgresCommentRepository.java`

### Notifications and shared

- [Verification email](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/notification/infrastructure/ResendEmailSender.java): `src/main/java/com/pixabyte/helpdeskapi/notification/infrastructure/ResendEmailSender.java`
- [Domain event bus](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/shared/infrastructure/bus/SpringEventBus.java): `src/main/java/com/pixabyte/helpdeskapi/shared/infrastructure/bus/SpringEventBus.java`
- [Paged results](https://github.com/pixabyte-corporation/helpdesk-java-api/blob/main/src/main/java/com/pixabyte/helpdeskapi/shared/domain/ResultsPage.java): `src/main/java/com/pixabyte/helpdeskapi/shared/domain/ResultsPage.java`

### Other components

- **API client**

## Connections

- API client → Signup endpoint: submits (evidence: `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java`)
- Signup endpoint → Signup use case: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/SignupController.java`)
- API client → Login endpoint: submits
- API client → Verification endpoint: requests (evidence: `src/main/java/com/pixabyte/helpdeskapi/authentication/infrastructure/controllers/VerifyUserGetController.java`)
- JWT security → User identity: authenticates
- Signup use case → User repository: persists user
- API client → Project endpoints: requests (evidence: `src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers/UpdateProjectPatchController.java`)
- Project endpoints → Project update: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers/UpdateProjectPatchController.java`)
- Project endpoints → Project creation: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/projects/infrastructure/controllers/CreateProjectPutController.java`)
- Project update → Project model: updates
- Project creation → Project repository: persists project
- API client → Ticket endpoints: requests (evidence: `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java`)
- Ticket endpoints → Ticket creation: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java`)
- Ticket endpoints → Ticket search: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java`)
- Ticket search → Paged results: returns page (evidence: `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/controllers/TicketsController.java`)
- Ticket creation → Ticket repository: persists ticket
- Ticket repository → Paged results: returns page (evidence: `src/main/java/com/pixabyte/helpdeskapi/tickets/infrastructure/persistence/PostgresTicketRepository.java`)
- API client → Comment endpoints: requests (evidence: `src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers/create/CreateCommentPutController.java`)
- Comment endpoints → Comment creation: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers/create/CreateCommentPutController.java`)
- Comment endpoints → Comment retrieval: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers/find/GetCommentsGetController.java`)
- Comment endpoints → Comment update: executes (evidence: `src/main/java/com/pixabyte/helpdeskapi/comments/infrastructure/controllers/update/UpdateCommentPatchController.java`)
- Comment creation → Comment repository: persists comment
- Verification endpoint → Verification email: triggers email
- Domain event bus → Verification email: dispatches event
