# workingonxyz-commits/auth-app-backend architecture

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

- Interactive diagram: https://gitdiagram.com/workingonxyz-commits/auth-app-backend
- Repository: https://github.com/workingonxyz-commits/auth-app-backend

## Overview

This Spring Boot backend exposes user registration and user-management APIs. Registration passes from the auth endpoint through AuthService into the shared user-creation service; CRUD endpoints call that user service directly. The service validates and maps DTOs, then reads or writes users through the JPA repository. The entity models persistent user and role data. The README is empty, and sampled files do not establish security/configuration or database deployment details, so those are not drawn.

Main entry points: [`src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java`](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java) (User service), [`src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java`](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java) (User repository), [`src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java`](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java) (Auth endpoint), [`src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java`](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java) (User endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_auth_controller["Auth endpoint"]
  node_user_controller["User endpoints"]
  node_exception_handler["API error mapping"]
  node_error_dto["Error response<br/>[ErrorResponse.java]"]
end

subgraph group_services["Application Services"]
  node_auth_service["Registration service"]
  node_user_service["User service"]
  node_uuid_helper["UUID parsing<br/>[UserHelper.java]"]
  node_user_dto["User DTO<br/>[UserDto.java]"]
  node_role_dto["Role DTO<br/>[RoleDto.java]"]
end

subgraph group_persistence["User Persistence"]
  node_user_repository["User repository"]
  node_user_entity["User entity<br/>[User.java]"]
  node_role_entity["Role entity<br/>[Role.java]"]
end

node_client(("API client"))
node_database[("Relational database")]

node_client -->|"registers"| node_auth_controller
node_client -->|"manages users"| node_user_controller
node_auth_controller -->|"registers"| node_auth_service
node_auth_service -->|"creates user"| node_user_service
node_user_controller -->|"requests CRUD"| node_user_service
node_user_service -->|"queries and saves"| node_user_repository
node_user_service -->|"parses IDs"| node_uuid_helper
node_user_service -->|"maps data"| node_user_dto
node_user_repository -->|"persists"| node_user_entity
node_user_entity -->|"associates roles"| node_role_entity
node_user_dto -->|"contains roles"| node_role_dto
node_user_repository -->|"reads and writes"| node_database
node_exception_handler -->|"builds response"| node_error_dto

click node_auth_controller "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java"
click node_user_controller "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java"
click node_auth_service "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java"
click node_user_service "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java"
click node_uuid_helper "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/helpers/UserHelper.java"
click node_exception_handler "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/exceptions/GlobalExceptionHandler.java"
click node_user_dto "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/dtos/UserDto.java"
click node_error_dto "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/dtos/ErrorResponse.java"
click node_user_repository "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java"
click node_user_entity "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/entities/User.java"
click node_role_entity "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/entities/Role.java"
click node_role_dto "https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/dtos/RoleDto.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_controller,node_user_controller,node_exception_handler,node_error_dto,node_client toneBlue
class node_auth_service,node_user_service,node_uuid_helper,node_user_dto,node_role_dto,node_database toneAmber
class node_user_repository,node_user_entity,node_role_entity toneMint
```

## Components

### HTTP API

- [Auth endpoint](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java): `src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java`
- [User endpoints](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java): `src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java`
- [API error mapping](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/exceptions/GlobalExceptionHandler.java): `src/main/java/com/substring/auth/auth_app_backend/exceptions/GlobalExceptionHandler.java`
- [Error response](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/dtos/ErrorResponse.java): `src/main/java/com/substring/auth/auth_app_backend/dtos/ErrorResponse.java`

### Application Services

- [Registration service](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java): `src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java`
- [User service](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java): `src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java`
- [UUID parsing](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/helpers/UserHelper.java): `src/main/java/com/substring/auth/auth_app_backend/helpers/UserHelper.java`
- [User DTO](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/dtos/UserDto.java): `src/main/java/com/substring/auth/auth_app_backend/dtos/UserDto.java`
- [Role DTO](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/dtos/RoleDto.java): `src/main/java/com/substring/auth/auth_app_backend/dtos/RoleDto.java`

### User Persistence

- [User repository](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java): `src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java`
- [User entity](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/entities/User.java): `src/main/java/com/substring/auth/auth_app_backend/entities/User.java`
- [Role entity](https://github.com/workingonxyz-commits/auth-app-backend/blob/main/src/main/java/com/substring/auth/auth_app_backend/entities/Role.java): `src/main/java/com/substring/auth/auth_app_backend/entities/Role.java`

### Other components

- **API client**
- **Relational database**

## Connections

- API client → Auth endpoint: registers
- API client → User endpoints: manages users
- Auth endpoint → Registration service: registers
- Registration service → User service: creates user
- User endpoints → User service: requests CRUD
- User service → User repository: queries and saves
- User service → UUID parsing: parses IDs
- User service → User DTO: maps data
- User repository → User entity: persists
- User entity → Role entity: associates roles
- User DTO → Role DTO: contains roles
- User repository → Relational database: reads and writes
- API error mapping → Error response: builds response
