# machu202/swp_backend architecture

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

- Interactive diagram: https://gitdiagram.com/machu202/swp_backend
- Repository: https://github.com/machu202/swp_backend

## Overview

MangaStudio is a backend for manga production and editorial collaboration. The visible workflow begins with a mangaka creating and managing a series; the broader domain covers chapters, page editing and version restoration, hitbox-based task work, editorial review, and scheduled publication. Authentication, collaboration, notifications, uploads, and administrative settings support that workflow. The README is empty and most source was not sampled, so connections are shown only where excerpts support them; unsampled capabilities are represented without inferred call chains.

Main entry points: [`src/main/java/com/mangastudio/backend/controller/AuthController.java`](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/AuthController.java) (Authentication API), [`src/main/java/com/mangastudio/backend/controller/MangaSeriesController.java`](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/MangaSeriesController.java) (Series API), [`src/main/java/com/mangastudio/backend/service/MangaSeriesService.java`](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/MangaSeriesService.java) (Series workflow), [`src/main/java/com/mangastudio/backend/controller/TaskController.java`](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TaskController.java) (Task board API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and access"]
  node_auth_api["Authentication API"]
  node_auth_service["Authentication service<br/>[AuthService.java]"]
  node_auth_impl["Authentication implementation"]
  node_user_api["User API"]
end

subgraph group_production["Manga production"]
  node_series_api["Series API"]
  node_series_service["Series workflow"]
  node_series_store[("Series records")]
  node_chapter_api["Chapter API"]
  node_page_api["Page editing API"]
  node_page_versions["Page version restore"]
  node_hitbox_api["Hitbox comments"]
  node_task_api["Task board API"]
  node_task_service["Task workflow<br/>[TaskService.java]"]
  node_task_store[("Task records")]
  node_chapter_scripts["Chapter scripts"]
end

subgraph group_editorial["Editorial workflow"]
  node_publishing["Publication scheduling"]
  node_editorial_review["Editorial review"]
  node_board["Board votes"]
end

subgraph group_collaboration["Team collaboration"]
  node_board_chat["Board discussion"]
  node_direct_chat["Direct messaging"]
  node_notifications["Notifications"]
end

subgraph group_platform["Platform services"]
  node_resources["Resource uploads"]
  node_upload_policy["Upload validation"]
  node_runtime_settings["Runtime settings"]
  node_telemetry["Telemetry"]
  node_deadline["Deadline events"]
end

node_user(("MangaStudio user"))

node_user -->|"authenticates"| node_auth_api
node_user -->|"manages series"| node_series_api
node_user -->|"works tasks"| node_task_api
node_series_api -->|"invokes"| node_series_service
node_series_service -->|"accesses series"| node_series_store
node_task_api -->|"invokes"| node_task_service
node_task_service -->|"queries tasks"| node_task_store
node_auth_api -->|"invokes"| node_auth_service
node_auth_impl -->|"issues login"| node_user

click node_auth_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/AuthController.java"
click node_auth_service "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/AuthService.java"
click node_auth_impl "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/impl/AuthServiceImpl.java"
click node_user_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/UserController.java"
click node_series_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/MangaSeriesController.java"
click node_series_service "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/MangaSeriesService.java"
click node_series_store "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/repository/MangaSeriesRepository.java"
click node_chapter_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/ChapterController.java"
click node_page_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/PageController.java"
click node_page_versions "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/PageVersionController.java"
click node_hitbox_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/HitboxCommentController.java"
click node_task_api "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TaskController.java"
click node_task_service "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/TaskService.java"
click node_task_store "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/repository/TaskRepository.java"
click node_chapter_scripts "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/ChapterScriptController.java"
click node_publishing "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/PublishingScheduleController.java"
click node_editorial_review "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TantouFeedbackController.java"
click node_board "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/BoardVoteController.java"
click node_board_chat "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/BoardChatController.java"
click node_direct_chat "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/DirectChatController.java"
click node_notifications "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/NotificationController.java"
click node_resources "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/ResourceController.java"
click node_upload_policy "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/UploadPolicyService.java"
click node_runtime_settings "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/RuntimeSystemParameterService.java"
click node_telemetry "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TelemetryController.java"
click node_deadline "https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/DeadlineEventController.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_auth_api,node_auth_service,node_auth_impl,node_user_api,node_user toneBlue
class node_series_api,node_series_service,node_series_store,node_chapter_api,node_page_api,node_page_versions,node_hitbox_api,node_task_api,node_task_service,node_task_store,node_chapter_scripts toneAmber
class node_publishing,node_editorial_review,node_board toneMint
class node_board_chat,node_direct_chat,node_notifications toneRose
class node_resources,node_upload_policy,node_runtime_settings,node_telemetry,node_deadline toneIndigo
```

## Components

### Identity and access

- [Authentication API](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/AuthController.java): `src/main/java/com/mangastudio/backend/controller/AuthController.java`
- [Authentication service](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/AuthService.java): `src/main/java/com/mangastudio/backend/service/AuthService.java`
- [Authentication implementation](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/impl/AuthServiceImpl.java): `src/main/java/com/mangastudio/backend/service/impl/AuthServiceImpl.java`
- [User API](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/UserController.java): `src/main/java/com/mangastudio/backend/controller/UserController.java`

### Manga production

- [Series API](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/MangaSeriesController.java): `src/main/java/com/mangastudio/backend/controller/MangaSeriesController.java`
- [Series workflow](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/MangaSeriesService.java): `src/main/java/com/mangastudio/backend/service/MangaSeriesService.java`
- [Series records](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/repository/MangaSeriesRepository.java): `src/main/java/com/mangastudio/backend/repository/MangaSeriesRepository.java`
- [Chapter API](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/ChapterController.java): `src/main/java/com/mangastudio/backend/controller/ChapterController.java`
- [Page editing API](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/PageController.java): `src/main/java/com/mangastudio/backend/controller/PageController.java`
- [Page version restore](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/PageVersionController.java): `src/main/java/com/mangastudio/backend/controller/PageVersionController.java`
- [Hitbox comments](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/HitboxCommentController.java): `src/main/java/com/mangastudio/backend/controller/HitboxCommentController.java`
- [Task board API](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TaskController.java): `src/main/java/com/mangastudio/backend/controller/TaskController.java`
- [Task workflow](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/TaskService.java): `src/main/java/com/mangastudio/backend/service/TaskService.java`
- [Task records](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/repository/TaskRepository.java): `src/main/java/com/mangastudio/backend/repository/TaskRepository.java`
- [Chapter scripts](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/ChapterScriptController.java): `src/main/java/com/mangastudio/backend/controller/ChapterScriptController.java`

### Editorial workflow

- [Publication scheduling](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/PublishingScheduleController.java): `src/main/java/com/mangastudio/backend/controller/PublishingScheduleController.java`
- [Editorial review](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TantouFeedbackController.java): `src/main/java/com/mangastudio/backend/controller/TantouFeedbackController.java`
- [Board votes](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/BoardVoteController.java): `src/main/java/com/mangastudio/backend/controller/BoardVoteController.java`

### Team collaboration

- [Board discussion](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/BoardChatController.java): `src/main/java/com/mangastudio/backend/controller/BoardChatController.java`
- [Direct messaging](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/DirectChatController.java): `src/main/java/com/mangastudio/backend/controller/DirectChatController.java`
- [Notifications](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/NotificationController.java): `src/main/java/com/mangastudio/backend/controller/NotificationController.java`

### Platform services

- [Resource uploads](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/ResourceController.java): `src/main/java/com/mangastudio/backend/controller/ResourceController.java`
- [Upload validation](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/UploadPolicyService.java): `src/main/java/com/mangastudio/backend/service/UploadPolicyService.java`
- [Runtime settings](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/service/RuntimeSystemParameterService.java): `src/main/java/com/mangastudio/backend/service/RuntimeSystemParameterService.java`
- [Telemetry](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/TelemetryController.java): `src/main/java/com/mangastudio/backend/controller/TelemetryController.java`
- [Deadline events](https://github.com/machu202/swp_backend/blob/main/src/main/java/com/mangastudio/backend/controller/DeadlineEventController.java): `src/main/java/com/mangastudio/backend/controller/DeadlineEventController.java`

### Other components

- **MangaStudio user**

## Connections

- MangaStudio user → Authentication API: authenticates
- MangaStudio user → Series API: manages series
- MangaStudio user → Task board API: works tasks
- Series API → Series workflow: invokes
- Series workflow → Series records: accesses series
- Task board API → Task workflow: invokes
- Task workflow → Task records: queries tasks
- Authentication API → Authentication service: invokes
- Authentication implementation → MangaStudio user: issues login
