# demoner21/delivery architecture

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

- Interactive diagram: https://gitdiagram.com/demoner21/delivery
- Repository: https://github.com/demoner21/delivery

## Overview

Delivery Tech API is a Spring Boot REST backend for a delivery system. Its central workflow accepts an order request, validates the customer, restaurant, and products, calculates totals, persists the order, and exposes order lookup and status operations. Separate API areas cover authentication, customers, restaurants, products, dashboard, and health. The tree also identifies monitoring, auditing, and alerting services. Evidence is limited to the README, tree, and sampled source; links for unsampled areas are omitted rather than inferred.

Main entry points: [`src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java) (Order Service), [`src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java`](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java) (Product Service), [`src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java`](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java) (Catalog APIs), [`src/main/java/com/deliverytech/delivery_api/service/AuthService.java`](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AuthService.java) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["REST API"]
  node_auth_api["Authentication API"]
  node_customer_api["Customer API"]
  node_order_api["Order API"]
  node_catalog_api["Catalog APIs"]
  node_product_api["Product API"]
  node_dashboard_api["Dashboard API"]
  node_health_api["Health API"]
end

subgraph group_domain["Delivery Services"]
  node_auth_service["Authentication<br/>[AuthService.java]"]
  node_customer_service["Customer Service"]
  node_order_service["Order Service"]
  node_product_service["Product Service"]
  node_restaurant_service["Restaurant Service"]
  node_api_models["API DTOs"]
end

subgraph group_data["Persistence Model"]
  node_customer_repo["Customer Repository"]
  node_order_repo["Order Repository"]
  node_product_repo["Product Repository"]
  node_restaurant_repo["Restaurant Repository"]
  node_user_repo["User Repository"]
  node_domain_entities["Delivery Entities"]
end

subgraph group_platform["Security and Operations"]
  node_security["JWT Security"]
  node_monitoring["Monitoring"]
  node_audit["Audit Services<br/>[AuditService.java]"]
  node_alerts["Alert Service<br/>[AlertService.java]"]
  node_metrics["Metrics Service"]
  node_tracing["Tracing Service"]
end

node_client(("API Client"))
node_database[("H2 Database")]

node_client -->|"sends requests"| node_auth_api
node_client -->|"sends requests"| node_customer_api
node_client -->|"sends requests"| node_order_api
node_client -->|"sends requests"| node_catalog_api
node_client -->|"sends requests"| node_product_api
node_client -.->|"sends requests"| node_dashboard_api
node_client -.->|"checks health"| node_health_api
node_auth_api -->|"delegates"| node_auth_service
node_customer_api -->|"delegates"| node_customer_service
node_order_api -->|"delegates"| node_order_service
node_catalog_api -->|"delegates"| node_restaurant_service
node_catalog_api -->|"delegates"| node_product_service
node_product_api -->|"delegates"| node_product_service
node_order_service -->|"loads customer"| node_customer_repo
node_order_service -->|"loads restaurant"| node_restaurant_repo
node_order_service -->|"loads products"| node_product_repo
node_order_service -->|"saves orders"| node_order_repo
node_order_service -->|"builds order"| node_domain_entities
node_order_service -->|"maps responses"| node_api_models
node_product_service -->|"queries products"| node_product_repo
node_product_service -->|"loads restaurant"| node_restaurant_repo
node_auth_service -->|"loads and saves users"| node_user_repo
node_auth_service -->|"uses user"| node_domain_entities
node_order_repo -.->|"persists records"| node_database
node_product_repo -.->|"persists records"| node_database
node_restaurant_repo -.->|"persists records"| node_database
node_customer_repo -.->|"persists records"| node_database
node_user_repo -.->|"persists records"| node_database

click node_auth_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/AuthController.java"
click node_customer_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/ClienteController.java"
click node_order_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/PedidoController.java"
click node_catalog_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java"
click node_product_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/ProdutoController.java"
click node_dashboard_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/DashboardController.java"
click node_health_api "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/HealthController.java"
click node_auth_service "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AuthService.java"
click node_customer_service "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/ClienteService.java"
click node_order_service "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java"
click node_product_service "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java"
click node_restaurant_service "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/RestauranteService.java"
click node_api_models "https://github.com/demoner21/delivery/tree/main/src/main/java/com/deliverytech/delivery_api/dto"
click node_customer_repo "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/ClienteRepository.java"
click node_order_repo "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/PedidoRepository.java"
click node_product_repo "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/ProdutoRepository.java"
click node_restaurant_repo "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/RestauranteRepository.java"
click node_user_repo "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/UsuarioRepository.java"
click node_domain_entities "https://github.com/demoner21/delivery/tree/main/src/main/java/com/deliverytech/delivery_api/entity"
click node_security "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/security/JwtAuthenticationFilter.java"
click node_monitoring "https://github.com/demoner21/delivery/tree/main/src/main/java/com/deliverytech/delivery_api/config/monitoring"
click node_audit "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AuditService.java"
click node_alerts "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AlertService.java"
click node_metrics "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/MetricsService.java"
click node_tracing "https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/TracingService.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_customer_api,node_order_api,node_catalog_api,node_product_api,node_dashboard_api,node_health_api,node_client toneBlue
class node_auth_service,node_customer_service,node_order_service,node_product_service,node_restaurant_service,node_api_models,node_database toneAmber
class node_customer_repo,node_order_repo,node_product_repo,node_restaurant_repo,node_user_repo,node_domain_entities toneMint
class node_security,node_monitoring,node_audit,node_alerts,node_metrics,node_tracing toneRose
```

## Components

### REST API

- [Authentication API](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/AuthController.java): `src/main/java/com/deliverytech/delivery_api/controller/AuthController.java`
- [Customer API](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/ClienteController.java): `src/main/java/com/deliverytech/delivery_api/controller/ClienteController.java`
- [Order API](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/PedidoController.java): `src/main/java/com/deliverytech/delivery_api/controller/PedidoController.java`
- [Catalog APIs](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java): `src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java`
- [Product API](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/ProdutoController.java): `src/main/java/com/deliverytech/delivery_api/controller/ProdutoController.java`
- [Dashboard API](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/DashboardController.java): `src/main/java/com/deliverytech/delivery_api/controller/DashboardController.java`
- [Health API](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/controller/HealthController.java): `src/main/java/com/deliverytech/delivery_api/controller/HealthController.java`

### Delivery Services

- [Authentication](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AuthService.java): `src/main/java/com/deliverytech/delivery_api/service/AuthService.java`
- [Customer Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/ClienteService.java): `src/main/java/com/deliverytech/delivery_api/service/ClienteService.java`
- [Order Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java): `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`
- [Product Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java): `src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java`
- [Restaurant Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/RestauranteService.java): `src/main/java/com/deliverytech/delivery_api/service/RestauranteService.java`
- [API DTOs](https://github.com/demoner21/delivery/tree/main/src/main/java/com/deliverytech/delivery_api/dto): `src/main/java/com/deliverytech/delivery_api/dto`

### Persistence Model

- [Customer Repository](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/ClienteRepository.java): `src/main/java/com/deliverytech/delivery_api/repository/ClienteRepository.java`
- [Order Repository](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/PedidoRepository.java): `src/main/java/com/deliverytech/delivery_api/repository/PedidoRepository.java`
- [Product Repository](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/ProdutoRepository.java): `src/main/java/com/deliverytech/delivery_api/repository/ProdutoRepository.java`
- [Restaurant Repository](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/RestauranteRepository.java): `src/main/java/com/deliverytech/delivery_api/repository/RestauranteRepository.java`
- [User Repository](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/repository/UsuarioRepository.java): `src/main/java/com/deliverytech/delivery_api/repository/UsuarioRepository.java`
- [Delivery Entities](https://github.com/demoner21/delivery/tree/main/src/main/java/com/deliverytech/delivery_api/entity): `src/main/java/com/deliverytech/delivery_api/entity`

### Security and Operations

- [JWT Security](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/security/JwtAuthenticationFilter.java): `src/main/java/com/deliverytech/delivery_api/security/JwtAuthenticationFilter.java`
- [Monitoring](https://github.com/demoner21/delivery/tree/main/src/main/java/com/deliverytech/delivery_api/config/monitoring): `src/main/java/com/deliverytech/delivery_api/config/monitoring`
- [Audit Services](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AuditService.java): `src/main/java/com/deliverytech/delivery_api/service/AuditService.java`
- [Alert Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/AlertService.java): `src/main/java/com/deliverytech/delivery_api/service/AlertService.java`
- [Metrics Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/MetricsService.java): `src/main/java/com/deliverytech/delivery_api/service/MetricsService.java`
- [Tracing Service](https://github.com/demoner21/delivery/blob/main/src/main/java/com/deliverytech/delivery_api/service/TracingService.java): `src/main/java/com/deliverytech/delivery_api/service/TracingService.java`

### Other components

- **API Client**
- **H2 Database**

## Connections

- API Client → Authentication API: sends requests (evidence: `src/main/java/com/deliverytech/delivery_api/controller/AuthController.java`)
- API Client → Customer API: sends requests (evidence: `src/main/java/com/deliverytech/delivery_api/controller/ClienteController.java`)
- API Client → Order API: sends requests (evidence: `src/main/java/com/deliverytech/delivery_api/controller/PedidoController.java`)
- API Client → Catalog APIs: sends requests (evidence: `src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java`)
- API Client → Product API: sends requests (evidence: `src/main/java/com/deliverytech/delivery_api/controller/ProdutoController.java`)
- API Client → Dashboard API: sends requests
- API Client → Health API: checks health
- Authentication API → Authentication: delegates (evidence: `src/main/java/com/deliverytech/delivery_api/controller/AuthController.java`)
- Customer API → Customer Service: delegates (evidence: `src/main/java/com/deliverytech/delivery_api/controller/ClienteController.java`)
- Order API → Order Service: delegates (evidence: `src/main/java/com/deliverytech/delivery_api/controller/PedidoController.java`)
- Catalog APIs → Restaurant Service: delegates (evidence: `src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java`)
- Catalog APIs → Product Service: delegates (evidence: `src/main/java/com/deliverytech/delivery_api/controller/RestauranteController.java`)
- Product API → Product Service: delegates (evidence: `src/main/java/com/deliverytech/delivery_api/controller/ProdutoController.java`)
- Order Service → Customer Repository: loads customer (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`)
- Order Service → Restaurant Repository: loads restaurant (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`)
- Order Service → Product Repository: loads products (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`)
- Order Service → Order Repository: saves orders (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`)
- Order Service → Delivery Entities: builds order (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`)
- Order Service → API DTOs: maps responses (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/PedidoServiceImpl.java`)
- Product Service → Product Repository: queries products (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java`)
- Product Service → Restaurant Repository: loads restaurant (evidence: `src/main/java/com/deliverytech/delivery_api/service/impl/ProdutoServiceImpl.java`)
- Authentication → User Repository: loads and saves users (evidence: `src/main/java/com/deliverytech/delivery_api/service/AuthService.java`)
- Authentication → Delivery Entities: uses user (evidence: `src/main/java/com/deliverytech/delivery_api/service/AuthService.java`)
- Order Repository → H2 Database: persists records
- Product Repository → H2 Database: persists records
- Restaurant Repository → H2 Database: persists records
- Customer Repository → H2 Database: persists records
- User Repository → H2 Database: persists records
