# anton10-ar/dulcesaromas architecture

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

- Interactive diagram: https://gitdiagram.com/anton10-ar/dulcesaromas
- Repository: https://github.com/anton10-ar/dulcesaromas

## Overview

Dulces Aromas es una tienda de pastelería con apps para clientes y personal, respaldadas por una API Spring Boot y PostgreSQL. El flujo principal va desde consultar y personalizar el catálogo hasta registrar un pedido, pagar con comprobante y seguir su estado; el personal gestiona pedidos, pagos y entregas. La documentación describe capacidades de las apps, pero su código Flutter no aparece en el árbol proporcionado. Los nodos de esos subsistemas apuntan a directorios existentes y sus conexiones reflejan solo relaciones documentadas.

Main entry points: [`backend/src/main/java/bo/dulcesaromas/DulcesAromasApplication.java`](https://github.com/anton10-ar/dulcesaromas/blob/main/backend/src/main/java/bo/dulcesaromas/DulcesAromasApplication.java) (API REST), [`backend/src/main/java/bo/dulcesaromas/seguridad/acceso`](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/acceso) (Sesiones y acceso), [`backend/src/main/java/bo/dulcesaromas/seguridad/cuentas`](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/cuentas) (Cuentas y perfiles), [`backend/src/main/java/bo/dulcesaromas/ecommerce/pedidos`](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/pedidos) (Pedidos y cotización)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontends["Tienda y Panel"]
  node_store["Tienda móvil/web"]
  node_panel["Panel web"]
end

subgraph group_commerce["Comercio electrónico"]
  node_catalog["Catálogo y personalización"]
  node_inventory["Inventario"]
  node_orders["Pedidos y cotización"]
end

subgraph group_operations["Operación"]
  node_payment["Pagos y comprobantes"]
  node_delivery["Entregas"]
  node_reports["Reportes de ventas"]
end

subgraph group_identity["Seguridad"]
  node_accounts["Cuentas y perfiles"]
  node_sessions["Sesiones y acceso"]
  node_roles["Roles y permisos"]
  node_audit["Auditoría"]
end

subgraph group_platform["API y datos"]
  node_api["API REST"]
  node_postgres[("PostgreSQL")]
  node_mail["Correo transaccional"]
end

node_customer(("Cliente"))
node_staff(("Personal"))

node_customer -->|"usa tienda"| node_store
node_staff -->|"gestiona operación"| node_panel
node_store -->|"consume API"| node_api
node_panel -->|"consume API"| node_api
node_api -->|"expone catálogo"| node_catalog
node_api -->|"expone inventario"| node_inventory
node_api -->|"expone pedidos"| node_orders
node_api -->|"expone cobros"| node_payment
node_api -->|"expone entregas"| node_delivery
node_api -->|"expone cuentas"| node_accounts
node_api -->|"aplica permisos"| node_roles
node_api -->|"ofrece reportes"| node_reports
node_orders -.->|"notifica pedidos"| node_payment
node_orders -.->|"habilita seguimiento"| node_delivery
node_api -->|"persiste datos"| node_postgres
node_sessions -->|"consulta usuarios"| node_accounts
node_sessions -->|"registra eventos"| node_audit
node_sessions -->|"guarda sesiones"| node_postgres
node_accounts -->|"abre sesión"| node_sessions
node_accounts -.->|"envía recuperación"| node_mail

click node_api "https://github.com/anton10-ar/dulcesaromas/blob/main/backend/src/main/java/bo/dulcesaromas/DulcesAromasApplication.java"
click node_catalog "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/catalogo"
click node_inventory "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/inventario"
click node_orders "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/pedidos"
click node_payment "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/cobros/pagos"
click node_delivery "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/distribucion/entregas"
click node_reports "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/cobros/pagos"
click node_accounts "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/cuentas"
click node_sessions "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/acceso"
click node_roles "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/permisos"
click node_audit "https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/auditoria"

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_store,node_panel,node_customer toneBlue
class node_catalog,node_inventory,node_orders toneAmber
class node_payment,node_delivery,node_reports toneMint
class node_accounts,node_sessions,node_roles,node_audit toneRose
class node_api,node_postgres,node_mail,node_staff toneIndigo
```

## Components

### Tienda y Panel

- **Tienda móvil/web**
- **Panel web**

### Comercio electrónico

- [Catálogo y personalización](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/catalogo): `backend/src/main/java/bo/dulcesaromas/ecommerce/catalogo`
- [Inventario](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/inventario): `backend/src/main/java/bo/dulcesaromas/ecommerce/inventario`
- [Pedidos y cotización](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/ecommerce/pedidos): `backend/src/main/java/bo/dulcesaromas/ecommerce/pedidos`

### Operación

- [Pagos y comprobantes](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/cobros/pagos): `backend/src/main/java/bo/dulcesaromas/cobros/pagos`
- [Entregas](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/distribucion/entregas): `backend/src/main/java/bo/dulcesaromas/distribucion/entregas`
- [Reportes de ventas](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/cobros/pagos): `backend/src/main/java/bo/dulcesaromas/cobros/pagos`

### Seguridad

- [Cuentas y perfiles](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/cuentas): `backend/src/main/java/bo/dulcesaromas/seguridad/cuentas`
- [Sesiones y acceso](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/acceso): `backend/src/main/java/bo/dulcesaromas/seguridad/acceso`
- [Roles y permisos](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/permisos): `backend/src/main/java/bo/dulcesaromas/seguridad/permisos`
- [Auditoría](https://github.com/anton10-ar/dulcesaromas/tree/main/backend/src/main/java/bo/dulcesaromas/seguridad/auditoria): `backend/src/main/java/bo/dulcesaromas/seguridad/auditoria`

### API y datos

- [API REST](https://github.com/anton10-ar/dulcesaromas/blob/main/backend/src/main/java/bo/dulcesaromas/DulcesAromasApplication.java): `backend/src/main/java/bo/dulcesaromas/DulcesAromasApplication.java`
- **PostgreSQL**
- **Correo transaccional**

### Other components

- **Cliente**
- **Personal**

## Connections

- Cliente → Tienda móvil/web: usa tienda
- Personal → Panel web: gestiona operación
- Tienda móvil/web → API REST: consume API
- Panel web → API REST: consume API
- API REST → Catálogo y personalización: expone catálogo
- API REST → Inventario: expone inventario
- API REST → Pedidos y cotización: expone pedidos
- API REST → Pagos y comprobantes: expone cobros
- API REST → Entregas: expone entregas
- API REST → Cuentas y perfiles: expone cuentas
- API REST → Roles y permisos: aplica permisos
- API REST → Reportes de ventas: ofrece reportes
- Pedidos y cotización → Pagos y comprobantes: notifica pedidos
- Pedidos y cotización → Entregas: habilita seguimiento
- API REST → PostgreSQL: persiste datos
- Sesiones y acceso → Cuentas y perfiles: consulta usuarios (evidence: `backend/src/main/java/bo/dulcesaromas/seguridad/acceso/ServicioSesiones.java`)
- Sesiones y acceso → Auditoría: registra eventos (evidence: `backend/src/main/java/bo/dulcesaromas/seguridad/acceso/ServicioSesiones.java`)
- Sesiones y acceso → PostgreSQL: guarda sesiones (evidence: `backend/src/main/java/bo/dulcesaromas/seguridad/acceso/ServicioSesiones.java`)
- Cuentas y perfiles → Sesiones y acceso: abre sesión (evidence: `backend/src/main/java/bo/dulcesaromas/seguridad/cuentas/RegistroClientes.java`)
- Cuentas y perfiles → Correo transaccional: envía recuperación
