# quaresmagustavo/api-biblioteca-auth architecture

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

- Interactive diagram: https://gitdiagram.com/quaresmagustavo/api-biblioteca-auth
- Repository: https://github.com/quaresmagustavo/api-biblioteca-auth

## Overview

This is a Spring Boot REST API for an online library: users interact with endpoints to manage users, items, and favorites, with JWT authentication and role-based access control. The README also identifies JPA/Hibernate and MySQL as the persistence technologies. No source excerpts were supplied, so the graph shows only documented product relationships; it does not infer controller-to-service or repository call paths.

Main entry points: [`src/main/java/biblioteca/example/biblioteca/Controllers`](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/Controllers) (API endpoints), [`src/main/java/biblioteca/example/biblioteca/Security`](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/Security) (JWT and roles), [`src/main/java/biblioteca/example/biblioteca/Controllers/UsuarioController.java`](https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/UsuarioController.java) (User endpoints), [`src/main/java/biblioteca/example/biblioteca/Controllers/ItemController.java`](https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/ItemController.java) (Item endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_endpoints["API endpoints"]
  node_user_api["User endpoints"]
  node_item_api["Item endpoints"]
  node_list_api["Favorites endpoints"]
end

subgraph group_security["Access control"]
  node_security["JWT and roles"]
end

subgraph group_library["Library data"]
  node_users["Users"]
  node_items["Items"]
  node_favorites["User favorites"]
end

node_client(("API client"))
node_mysql[("MySQL")]

node_client -->|"uses REST"| node_endpoints
node_security -->|"protects endpoints"| node_endpoints
node_endpoints -->|"includes"| node_user_api
node_endpoints -->|"includes"| node_item_api
node_endpoints -->|"includes"| node_list_api
node_endpoints -->|"manages"| node_users
node_endpoints -->|"manages"| node_items
node_endpoints -->|"manages"| node_favorites

click node_endpoints "https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/Controllers"
click node_user_api "https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/UsuarioController.java"
click node_item_api "https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/ItemController.java"
click node_list_api "https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/MinhaListaController.java"
click node_security "https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/Security"
click node_users "https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/domain/Usuario"
click node_items "https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/domain/Item"
click node_favorites "https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/domain/MinhaLista"

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_endpoints,node_user_api,node_item_api,node_list_api,node_client toneBlue
class node_security,node_mysql toneAmber
class node_users,node_items,node_favorites toneMint
```

## Components

### REST API

- [API endpoints](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/Controllers): `src/main/java/biblioteca/example/biblioteca/Controllers`
- [User endpoints](https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/UsuarioController.java): `src/main/java/biblioteca/example/biblioteca/Controllers/UsuarioController.java`
- [Item endpoints](https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/ItemController.java): `src/main/java/biblioteca/example/biblioteca/Controllers/ItemController.java`
- [Favorites endpoints](https://github.com/quaresmagustavo/api-biblioteca-auth/blob/main/src/main/java/biblioteca/example/biblioteca/Controllers/MinhaListaController.java): `src/main/java/biblioteca/example/biblioteca/Controllers/MinhaListaController.java`

### Access control

- [JWT and roles](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/Security): `src/main/java/biblioteca/example/biblioteca/Security`

### Library data

- [Users](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/domain/Usuario): `src/main/java/biblioteca/example/biblioteca/domain/Usuario`
- [Items](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/domain/Item): `src/main/java/biblioteca/example/biblioteca/domain/Item`
- [User favorites](https://github.com/quaresmagustavo/api-biblioteca-auth/tree/main/src/main/java/biblioteca/example/biblioteca/domain/MinhaLista): `src/main/java/biblioteca/example/biblioteca/domain/MinhaLista`

### Other components

- **API client**
- **MySQL**

## Connections

- API client → API endpoints: uses REST (evidence: `README.md`)
- JWT and roles → API endpoints: protects endpoints (evidence: `README.md`)
- API endpoints → User endpoints: includes (evidence: `README.md`)
- API endpoints → Item endpoints: includes (evidence: `README.md`)
- API endpoints → Favorites endpoints: includes (evidence: `README.md`)
- API endpoints → Users: manages (evidence: `README.md`)
- API endpoints → Items: manages (evidence: `README.md`)
- API endpoints → User favorites: manages (evidence: `README.md`)
