# linx7a/task-management-system-spring-boot architecture

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

- Interactive diagram: https://gitdiagram.com/linx7a/task-management-system-spring-boot
- Repository: https://github.com/linx7a/task-management-system-spring-boot

## Overview

This is a Spring Boot task-management API. Clients create, retrieve, filter, update, delete, start, and complete tasks through REST endpoints; the service applies lifecycle rules and delegates persistence to the repository. The mapper translates between API/domain tasks and JPA entities. A global exception handler converts validation and service failures into HTTP error responses. The README is empty, so capabilities and wiring are based on the sampled source and file tree.

Main entry points: [`src/main/java/linx7a/task_management_system/tasks/TaskController.java`](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskController.java) (Task controller), [`src/main/java/linx7a/task_management_system/tasks/TaskService.java`](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskService.java) (Task service), [`src/main/java/linx7a/task_management_system/web/GlobalExceptionHandler.java`](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/web/GlobalExceptionHandler.java) (Exception handler), [`src/main/java/linx7a/task_management_system/tasks/TaskRepository.java`](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskRepository.java) (Task repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_controller["Task controller"]
end

subgraph group_tasks["Task Management"]
  node_service["Task service<br/>[TaskService.java]"]
  node_task["Task model<br/>[Task.java]"]
  node_filter["Search filter"]
  node_mapper["Task mapper<br/>[TaskMapper.java]"]
end

subgraph group_persistence["Persistence and Errors"]
  node_repository["Task repository"]
  node_entity["Task entity<br/>[TaskEntity.java]"]
  node_database[("Task database")]
  node_exception_handler["Exception handler"]
  node_error_response["Error response"]
end

node_client(("API client"))

node_client -->|"sends requests"| node_controller
node_controller -->|"calls operations"| node_service
node_controller -->|"creates filter"| node_filter
node_controller -->|"accepts and returns"| node_task
node_service -->|"queries and saves"| node_repository
node_service -->|"converts tasks"| node_mapper
node_mapper -->|"maps fields"| node_entity
node_repository -->|"loads and stores"| node_entity
node_database -->|"persists records"| node_repository
node_controller -->|"dispatches exceptions"| node_exception_handler
node_exception_handler -->|"builds response"| node_error_response
node_exception_handler -->|"returns HTTP errors"| node_client

click node_controller "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskController.java"
click node_service "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskService.java"
click node_task "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/Task.java"
click node_filter "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskSearchFilter.java"
click node_mapper "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskMapper.java"
click node_repository "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskRepository.java"
click node_entity "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskEntity.java"
click node_exception_handler "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/web/GlobalExceptionHandler.java"
click node_error_response "https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/web/ErrorResponseDto.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_controller,node_client toneBlue
class node_service,node_task,node_filter,node_mapper toneAmber
class node_repository,node_entity,node_database,node_exception_handler,node_error_response toneMint
```

## Components

### REST API

- [Task controller](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskController.java): `src/main/java/linx7a/task_management_system/tasks/TaskController.java`

### Task Management

- [Task service](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskService.java): `src/main/java/linx7a/task_management_system/tasks/TaskService.java`
- [Task model](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/Task.java): `src/main/java/linx7a/task_management_system/tasks/Task.java`
- [Search filter](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskSearchFilter.java): `src/main/java/linx7a/task_management_system/tasks/TaskSearchFilter.java`
- [Task mapper](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskMapper.java): `src/main/java/linx7a/task_management_system/tasks/TaskMapper.java`

### Persistence and Errors

- [Task repository](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskRepository.java): `src/main/java/linx7a/task_management_system/tasks/TaskRepository.java`
- [Task entity](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/tasks/TaskEntity.java): `src/main/java/linx7a/task_management_system/tasks/TaskEntity.java`
- **Task database**
- [Exception handler](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/web/GlobalExceptionHandler.java): `src/main/java/linx7a/task_management_system/web/GlobalExceptionHandler.java`
- [Error response](https://github.com/linx7a/task-management-system-spring-boot/blob/main/src/main/java/linx7a/task_management_system/web/ErrorResponseDto.java): `src/main/java/linx7a/task_management_system/web/ErrorResponseDto.java`

### Other components

- **API client**

## Connections

- API client → Task controller: sends requests
- Task controller → Task service: calls operations
- Task controller → Search filter: creates filter
- Task controller → Task model: accepts and returns
- Task service → Task repository: queries and saves
- Task service → Task mapper: converts tasks
- Task mapper → Task entity: maps fields
- Task repository → Task entity: loads and stores
- Task database → Task repository: persists records
- Task controller → Exception handler: dispatches exceptions
- Exception handler → Error response: builds response
- Exception handler → API client: returns HTTP errors
