# ribanezd/finalalgoritmos architecture

> Architecture diagram of the GitHub repository ribanezd/finalalgoritmos, 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/ribanezd/finalalgoritmos
- Repository: https://github.com/ribanezd/finalalgoritmos

## Overview

Don Juan Market is a console supermarket-management application. Users work through the main menu to manage products and customer service; the service layer delegates inventory and queue operations to custom data structures. Separate menu views expose store-map routing and graph/structure exploration, while statistics and file management support operations. Edges are limited to relationships visible in the supplied excerpts, SOURCE INDEX references, or README; unsampled modules are included where their role is identified, but their internal behavior is not assumed.

Main entry points: [`Interfaz/Menu.cs`](https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/Menu.cs) (Main menu), [`Servicios/Supermercado.cs`](https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/Supermercado.cs) (Store coordinator), [`Interfaz/MenuGrafos.cs`](https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/MenuGrafos.cs) (Graph laboratory), [`Interfaz/Vista.cs`](https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/Vista.cs) (Console views)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Console interface"]
  node_program["Application entry<br/>[Program.cs]"]
  node_menu["Main menu<br/>[Menu.cs]"]
  node_graphmenu["Graph laboratory<br/>[MenuGrafos.cs]"]
  node_views["Console views<br/>[Vista.cs]"]
end

subgraph group_domain["Domain models"]
  node_product["Product<br/>[Producto.cs]"]
  node_customer["Customer<br/>[Cliente.cs]"]
  node_customer_type["Customer type<br/>[TipoCliente.cs]"]
end

subgraph group_operations["Store services"]
  node_store["Store coordinator<br/>[Supermercado.cs]"]
  node_statistics["Statistics"]
  node_file_manager["File management<br/>[GestorArchivos.cs]"]
  node_store_map["Store map<br/>[MapaTienda.cs]"]
end

subgraph group_structures["Data structures"]
  node_inventory_tree["AVL inventory<br/>[ArbolAVL.cs]"]
  node_priority_queue["Priority queue<br/>[ColaPrioridad.cs]"]
  node_graph["Graph algorithms<br/>[Grafo.cs]"]
  node_inventory_graph["Inventory graph<br/>[GrafoInventario.cs]"]
  node_attention_graph["Service graph<br/>[GrafoAtencion.cs]"]
end

subgraph group_support["Utilities"]
  node_validation["Input validation<br/>[Validaciones.cs]"]
  node_formatting["Formatting<br/>[Formato.cs]"]
  node_styling["Visual styling<br/>[EstiloVisual.cs]"]
end

node_operator(("Store operator"))

node_program -->|"creates"| node_store
node_program -->|"starts"| node_menu
node_operator -.->|"uses"| node_menu
node_menu -->|"manages"| node_store
node_menu -->|"opens"| node_graphmenu
node_menu -->|"renders via"| node_views
node_menu -->|"reads input"| node_validation
node_menu -->|"uses"| node_file_manager
node_graphmenu -->|"inspects"| node_store
node_graphmenu -->|"renders via"| node_views
node_graphmenu -->|"routes with"| node_graph
node_graphmenu -->|"inspects"| node_inventory_tree
node_graphmenu -->|"inspects"| node_priority_queue
node_store -->|"delegates inventory"| node_inventory_tree
node_store -->|"delegates service"| node_priority_queue
node_store -->|"owns"| node_store_map
node_store -->|"computes"| node_statistics
node_store_map -->|"uses"| node_graph
node_inventory_tree -->|"stores"| node_product
node_priority_queue -->|"orders"| node_customer
node_customer -->|"has type"| node_customer_type
node_statistics -->|"summarizes"| node_product
node_statistics -->|"summarizes"| node_customer
node_file_manager -->|"handles data"| node_product
node_file_manager -->|"handles data"| node_customer
node_inventory_graph -->|"wraps"| node_graph
node_attention_graph -->|"wraps"| node_graph
node_views -->|"uses"| node_styling
node_views -->|"uses"| node_formatting
node_validation -->|"uses"| node_formatting

click node_program "https://github.com/ribanezd/finalalgoritmos/blob/main/Program.cs"
click node_menu "https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/Menu.cs"
click node_graphmenu "https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/MenuGrafos.cs"
click node_views "https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/Vista.cs"
click node_product "https://github.com/ribanezd/finalalgoritmos/blob/main/Modelos/Producto.cs"
click node_customer "https://github.com/ribanezd/finalalgoritmos/blob/main/Modelos/Cliente.cs"
click node_customer_type "https://github.com/ribanezd/finalalgoritmos/blob/main/Modelos/TipoCliente.cs"
click node_store "https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/Supermercado.cs"
click node_statistics "https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/EstadisticasSistema.cs"
click node_file_manager "https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/GestorArchivos.cs"
click node_store_map "https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/MapaTienda.cs"
click node_inventory_tree "https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/ArbolAVL.cs"
click node_priority_queue "https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/ColaPrioridad.cs"
click node_graph "https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/Grafo.cs"
click node_inventory_graph "https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/GrafoInventario.cs"
click node_attention_graph "https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/GrafoAtencion.cs"
click node_validation "https://github.com/ribanezd/finalalgoritmos/blob/main/Utilidades/Validaciones.cs"
click node_formatting "https://github.com/ribanezd/finalalgoritmos/blob/main/Utilidades/Formato.cs"
click node_styling "https://github.com/ribanezd/finalalgoritmos/blob/main/Utilidades/EstiloVisual.cs"

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_program,node_menu,node_graphmenu,node_views toneBlue
class node_product,node_customer,node_customer_type toneAmber
class node_store,node_statistics,node_file_manager,node_store_map toneMint
class node_inventory_tree,node_priority_queue,node_graph,node_inventory_graph,node_attention_graph toneRose
class node_validation,node_formatting,node_styling,node_operator toneIndigo
```

## Components

### Console interface

- [Application entry](https://github.com/ribanezd/finalalgoritmos/blob/main/Program.cs): `Program.cs`
- [Main menu](https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/Menu.cs): `Interfaz/Menu.cs`
- [Graph laboratory](https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/MenuGrafos.cs): `Interfaz/MenuGrafos.cs`
- [Console views](https://github.com/ribanezd/finalalgoritmos/blob/main/Interfaz/Vista.cs): `Interfaz/Vista.cs`

### Domain models

- [Product](https://github.com/ribanezd/finalalgoritmos/blob/main/Modelos/Producto.cs): `Modelos/Producto.cs`
- [Customer](https://github.com/ribanezd/finalalgoritmos/blob/main/Modelos/Cliente.cs): `Modelos/Cliente.cs`
- [Customer type](https://github.com/ribanezd/finalalgoritmos/blob/main/Modelos/TipoCliente.cs): `Modelos/TipoCliente.cs`

### Store services

- [Store coordinator](https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/Supermercado.cs): `Servicios/Supermercado.cs`
- [Statistics](https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/EstadisticasSistema.cs): `Servicios/EstadisticasSistema.cs`
- [File management](https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/GestorArchivos.cs): `Servicios/GestorArchivos.cs`
- [Store map](https://github.com/ribanezd/finalalgoritmos/blob/main/Servicios/MapaTienda.cs): `Servicios/MapaTienda.cs`

### Data structures

- [AVL inventory](https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/ArbolAVL.cs): `Estructuras/ArbolAVL.cs`
- [Priority queue](https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/ColaPrioridad.cs): `Estructuras/ColaPrioridad.cs`
- [Graph algorithms](https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/Grafo.cs): `Estructuras/Grafo.cs`
- [Inventory graph](https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/GrafoInventario.cs): `Estructuras/GrafoInventario.cs`
- [Service graph](https://github.com/ribanezd/finalalgoritmos/blob/main/Estructuras/GrafoAtencion.cs): `Estructuras/GrafoAtencion.cs`

### Utilities

- [Input validation](https://github.com/ribanezd/finalalgoritmos/blob/main/Utilidades/Validaciones.cs): `Utilidades/Validaciones.cs`
- [Formatting](https://github.com/ribanezd/finalalgoritmos/blob/main/Utilidades/Formato.cs): `Utilidades/Formato.cs`
- [Visual styling](https://github.com/ribanezd/finalalgoritmos/blob/main/Utilidades/EstiloVisual.cs): `Utilidades/EstiloVisual.cs`

### Other components

- **Store operator**

## Connections

- Application entry → Store coordinator: creates (evidence: `Program.cs`)
- Application entry → Main menu: starts (evidence: `Program.cs`)
- Store operator → Main menu: uses
- Main menu → Store coordinator: manages (evidence: `Interfaz/Menu.cs`)
- Main menu → Graph laboratory: opens (evidence: `Interfaz/Menu.cs`)
- Main menu → Console views: renders via (evidence: `Interfaz/Menu.cs`)
- Main menu → Input validation: reads input (evidence: `Interfaz/Menu.cs`)
- Main menu → File management: uses (evidence: `Interfaz/Menu.cs`)
- Graph laboratory → Store coordinator: inspects (evidence: `Interfaz/MenuGrafos.cs`)
- Graph laboratory → Console views: renders via (evidence: `Interfaz/MenuGrafos.cs`)
- Graph laboratory → Graph algorithms: routes with (evidence: `Interfaz/MenuGrafos.cs`)
- Graph laboratory → AVL inventory: inspects (evidence: `Interfaz/MenuGrafos.cs`)
- Graph laboratory → Priority queue: inspects (evidence: `Interfaz/MenuGrafos.cs`)
- Store coordinator → AVL inventory: delegates inventory (evidence: `Servicios/Supermercado.cs`)
- Store coordinator → Priority queue: delegates service (evidence: `Servicios/Supermercado.cs`)
- Store coordinator → Store map: owns (evidence: `Servicios/Supermercado.cs`)
- Store coordinator → Statistics: computes (evidence: `Servicios/Supermercado.cs`)
- Store map → Graph algorithms: uses (evidence: `Servicios/MapaTienda.cs`)
- AVL inventory → Product: stores (evidence: `Estructuras/ArbolAVL.cs`)
- Priority queue → Customer: orders (evidence: `Estructuras/ColaPrioridad.cs`)
- Customer → Customer type: has type (evidence: `Modelos/Cliente.cs`)
- Statistics → Product: summarizes (evidence: `Servicios/EstadisticasSistema.cs`)
- Statistics → Customer: summarizes (evidence: `Servicios/EstadisticasSistema.cs`)
- File management → Product: handles data (evidence: `Servicios/GestorArchivos.cs`)
- File management → Customer: handles data (evidence: `Servicios/GestorArchivos.cs`)
- Inventory graph → Graph algorithms: wraps (evidence: `Estructuras/GrafoInventario.cs`)
- Service graph → Graph algorithms: wraps (evidence: `Estructuras/GrafoAtencion.cs`)
- Console views → Visual styling: uses (evidence: `Interfaz/Vista.cs`)
- Console views → Formatting: uses (evidence: `Interfaz/Vista.cs`)
- Input validation → Formatting: uses (evidence: `Utilidades/Validaciones.cs`)
