# haevneu/worksuite-backend architecture

> Architecture diagram of the GitHub repository haevneu/worksuite-backend, 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/haevneu/worksuite-backend
- Repository: https://github.com/haevneu/worksuite-backend

## Overview

WorkSuite is a Spring backend for team-work utilities: it exposes REST capabilities for planning, collaboration, time tracking, integrations, and file operations. The clearest sampled workflow is a client request handled by a feature controller, delegated to its service, then persisted or dispatched; shared-file downloads also combine metadata and file storage. The README provides no capability detail, so the wider feature branches are grounded in the source tree, while their unsampled wiring is intentionally not inferred.

Main entry points: [`src/main/java/de/haevn/worksuite/download`](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/download) (Exports and downloads), [`src/main/java/de/haevn/worksuite/weekly`](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/weekly) (Weekly meetings), [`src/main/java/de/haevn/worksuite/retro`](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/retro) (Retrospectives), [`src/main/java/de/haevn/worksuite/share`](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/share) (File sharing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_collaboration["Team collaboration"]
  node_review["Sprint reviews"]
  node_weekly["Weekly meetings"]
  node_retro["Retrospectives"]
  node_notes["Notes"]
  node_snippets["Snippets"]
  node_templates["Templates"]
  node_cheatsheets["Cheat sheets"]
end

subgraph group_workflows["Work tracking"]
  node_time["Time tracking"]
  node_stats["Team statistics"]
  node_database["Database browser"]
  node_validation["Validation"]
  node_mock["Mock generation"]
end

subgraph group_integrations["External integrations"]
  node_tickets["Ticket operations"]
  node_vcs["VCS operations"]
end

subgraph group_platform["Shared platform"]
  node_sharing["File sharing"]
  node_downloads["Exports and downloads"]
  node_file_store[("File storage")]
  node_user_settings["Users and licenses"]
  node_push["WebSocket push"]
  node_about["System information"]
  node_route_tracking["Route metrics"]
  node_auth["Request security"]
end

node_client(("WorkSuite client"))
node_redmine{{"Redmine"}}
node_gitlab{{"GitLab"}}

node_client -->|"sends REST requests"| node_review
node_client -->|"sends REST requests"| node_weekly
node_client -->|"sends REST requests"| node_retro
node_client -->|"sends REST requests"| node_notes
node_client -->|"sends REST requests"| node_snippets
node_client -->|"sends REST requests"| node_templates
node_client -->|"sends REST requests"| node_cheatsheets
node_client -->|"sends REST requests"| node_time
node_client -->|"sends REST requests"| node_stats
node_client -->|"sends REST requests"| node_database
node_client -->|"sends REST requests"| node_validation
node_client -->|"sends REST requests"| node_mock
node_client -->|"sends REST requests"| node_tickets
node_client -->|"sends REST requests"| node_vcs
node_client -->|"sends REST requests"| node_sharing
node_client -->|"sends REST requests"| node_downloads
node_client -->|"sends REST requests"| node_user_settings
node_client -->|"sends REST requests"| node_about
node_review -->|"returns results"| node_client
node_weekly -->|"returns results"| node_client
node_retro -->|"returns results"| node_client
node_sharing -->|"stores and loads files"| node_file_store
node_downloads -->|"requests shared files"| node_sharing
node_downloads -->|"loads meeting data"| node_weekly
node_downloads -.->|"downloads attachments"| node_redmine
node_tickets -.->|"uses provider"| node_redmine
node_vcs -.->|"uses provider"| node_gitlab
node_stats -->|"reads time entries"| node_time
node_weekly -->|"dispatches updates"| node_push
node_retro -->|"dispatches updates"| node_push
node_user_settings -->|"dispatches updates"| node_push
node_client -->|"presents credentials"| node_auth
node_client -->|"uses routes"| node_route_tracking

click node_review "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/review"
click node_weekly "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/weekly"
click node_retro "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/retro"
click node_notes "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/notes"
click node_snippets "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/snippets"
click node_templates "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/templates"
click node_cheatsheets "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/cheatsheet"
click node_time "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/time"
click node_stats "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/stats"
click node_database "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/database"
click node_validation "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/validation"
click node_mock "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/mock"
click node_tickets "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/ticket"
click node_vcs "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/vcs"
click node_sharing "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/share"
click node_downloads "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/download"
click node_file_store "https://github.com/haevneu/worksuite-backend/blob/main/src/main/java/de/haevn/worksuite/common/FileStorageService.java"
click node_user_settings "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/settings"
click node_push "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/push"
click node_about "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/about"
click node_route_tracking "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/about"
click node_auth "https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/config"

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_review,node_weekly,node_retro,node_notes,node_snippets,node_templates,node_cheatsheets,node_client toneBlue
class node_time,node_stats,node_database,node_validation,node_mock toneAmber
class node_tickets,node_vcs toneMint
class node_sharing,node_downloads,node_file_store,node_user_settings,node_push,node_about,node_route_tracking,node_auth toneRose
class node_redmine,node_gitlab toneIndigo
```

## Components

### Team collaboration

- [Sprint reviews](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/review): `src/main/java/de/haevn/worksuite/review`
- [Weekly meetings](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/weekly): `src/main/java/de/haevn/worksuite/weekly`
- [Retrospectives](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/retro): `src/main/java/de/haevn/worksuite/retro`
- [Notes](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/notes): `src/main/java/de/haevn/worksuite/notes`
- [Snippets](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/snippets): `src/main/java/de/haevn/worksuite/snippets`
- [Templates](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/templates): `src/main/java/de/haevn/worksuite/templates`
- [Cheat sheets](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/cheatsheet): `src/main/java/de/haevn/worksuite/cheatsheet`

### Work tracking

- [Time tracking](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/time): `src/main/java/de/haevn/worksuite/time`
- [Team statistics](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/stats): `src/main/java/de/haevn/worksuite/stats`
- [Database browser](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/database): `src/main/java/de/haevn/worksuite/database`
- [Validation](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/validation): `src/main/java/de/haevn/worksuite/validation`
- [Mock generation](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/mock): `src/main/java/de/haevn/worksuite/mock`

### External integrations

- [Ticket operations](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/ticket): `src/main/java/de/haevn/worksuite/ticket`
- [VCS operations](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/vcs): `src/main/java/de/haevn/worksuite/vcs`

### Shared platform

- [File sharing](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/share): `src/main/java/de/haevn/worksuite/share`
- [Exports and downloads](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/download): `src/main/java/de/haevn/worksuite/download`
- [File storage](https://github.com/haevneu/worksuite-backend/blob/main/src/main/java/de/haevn/worksuite/common/FileStorageService.java): `src/main/java/de/haevn/worksuite/common/FileStorageService.java`
- [Users and licenses](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/settings): `src/main/java/de/haevn/worksuite/settings`
- [WebSocket push](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/push): `src/main/java/de/haevn/worksuite/push`
- [System information](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/about): `src/main/java/de/haevn/worksuite/about`
- [Route metrics](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/about): `src/main/java/de/haevn/worksuite/about`
- [Request security](https://github.com/haevneu/worksuite-backend/tree/main/src/main/java/de/haevn/worksuite/config): `src/main/java/de/haevn/worksuite/config`

### Other components

- **WorkSuite client**
- **Redmine**
- **GitLab**

## Connections

- WorkSuite client → Sprint reviews: sends REST requests
- WorkSuite client → Weekly meetings: sends REST requests
- WorkSuite client → Retrospectives: sends REST requests
- WorkSuite client → Notes: sends REST requests
- WorkSuite client → Snippets: sends REST requests
- WorkSuite client → Templates: sends REST requests
- WorkSuite client → Cheat sheets: sends REST requests
- WorkSuite client → Time tracking: sends REST requests
- WorkSuite client → Team statistics: sends REST requests
- WorkSuite client → Database browser: sends REST requests
- WorkSuite client → Validation: sends REST requests
- WorkSuite client → Mock generation: sends REST requests
- WorkSuite client → Ticket operations: sends REST requests
- WorkSuite client → VCS operations: sends REST requests
- WorkSuite client → File sharing: sends REST requests
- WorkSuite client → Exports and downloads: sends REST requests
- WorkSuite client → Users and licenses: sends REST requests
- WorkSuite client → System information: sends REST requests
- Sprint reviews → WorkSuite client: returns results
- Weekly meetings → WorkSuite client: returns results
- Retrospectives → WorkSuite client: returns results
- File sharing → File storage: stores and loads files
- Exports and downloads → File sharing: requests shared files
- Exports and downloads → Weekly meetings: loads meeting data
- Exports and downloads → Redmine: downloads attachments
- Ticket operations → Redmine: uses provider
- VCS operations → GitLab: uses provider
- Team statistics → Time tracking: reads time entries
- Weekly meetings → WebSocket push: dispatches updates
- Retrospectives → WebSocket push: dispatches updates
- Users and licenses → WebSocket push: dispatches updates
- WorkSuite client → Request security: presents credentials
- WorkSuite client → Route metrics: uses routes
