# brayanromo-bit/ruta-de-mapas-grafos- architecture

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

- Interactive diagram: https://gitdiagram.com/brayanromo-bit/ruta-de-mapas-grafos-
- Repository: https://github.com/brayanromo-bit/ruta-de-mapas-grafos-

## Overview

Ruta de mapas is a Windows Forms graph editor and visualizer. Users create and edit directed or undirected, weighted or unweighted graphs on a canvas, inspect neighbors, and open adjacency-matrix or adjacency-list views. The UI selects among custom singly linked, .NET linked-list, and .NET list storage; shared graph behavior handles graph operations and representations. Edges reflect calls, inheritance, or construction shown in excerpts or the source index; unsampled UI behavior is not inferred.

Main entry points: [`Ruta de mapas/Form1.cs`](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Form1.cs) (Canvas editor), [`Ruta de mapas/GrafoBase.cs`](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoBase.cs) (Shared graph operations), [`Ruta de mapas/FormListaAdyacencia.cs`](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/FormListaAdyacencia.cs) (Adjacency list view), [`Ruta de mapas/IGrafo.cs`](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/IGrafo.cs) (Graph contract)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Graph editor UI"]
  node_editor["Canvas editor<br/>[Form1.cs]"]
  node_visual["Visual styling"]
  node_logs["Activity categories<br/>[CategoriasLog.cs]"]
end

subgraph group_views["Graph views"]
  node_matrix["Adjacency matrix view<br/>[FormMatriz.cs]"]
  node_adjlist["Adjacency list view"]
end

subgraph group_core["Graph domain"]
  node_api["Graph contract<br/>[IGrafo.cs]"]
  node_base["Shared graph operations<br/>[GrafoBase.cs]"]
  node_vertex["Vertex model<br/>[Nodo.cs]"]
  node_edge["Edge model<br/>[Arista.cs]"]
  node_neighbor["Neighbor details"]
  node_adjentry["Adjacency entry"]
  node_messages["Graph messages<br/>[Mensajes.cs]"]
end

subgraph group_storage["Storage implementations"]
  node_custom["Custom list graph"]
  node_linked["Linked-list graph<br/>[GrafoLinkedList.cs]"]
  node_list["List graph<br/>[GrafoList.cs]"]
  node_simplelist["Custom singly list<br/>[ListaSimple.cs]"]
end

node_user(("Graph editor user"))

node_user -->|"edits graph"| node_editor
node_editor -->|"uses graph API"| node_api
node_editor -->|"starts with"| node_custom
node_editor -->|"selects structure"| node_linked
node_editor -->|"selects structure"| node_list
node_editor -->|"opens view"| node_matrix
node_editor -->|"opens view"| node_adjlist
node_editor -->|"uses styling"| node_visual
node_editor -->|"categorizes logs"| node_logs
node_matrix -->|"reads graph"| node_api
node_matrix -->|"opens view"| node_adjlist
node_adjlist -->|"reads graph"| node_api
node_adjlist -->|"formats entries"| node_adjentry
node_base -->|"implements"| node_api
node_custom -->|"extends"| node_base
node_linked -->|"extends"| node_base
node_list -->|"extends"| node_base
node_custom -->|"stores collections"| node_simplelist
node_base -->|"uses messages"| node_messages
node_base -->|"creates details"| node_neighbor
node_base -->|"builds representation"| node_adjentry

click node_editor "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Form1.cs"
click node_visual "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ConfiguracionVisual.cs"
click node_logs "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/CategoriasLog.cs"
click node_matrix "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/FormMatriz.cs"
click node_adjlist "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/FormListaAdyacencia.cs"
click node_api "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/IGrafo.cs"
click node_base "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoBase.cs"
click node_vertex "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Nodo.cs"
click node_edge "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Arista.cs"
click node_neighbor "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ElementoAdyacente.cs"
click node_adjentry "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ElementoListaAdyacencia.cs"
click node_messages "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Mensajes.cs"
click node_custom "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoListaSimple.cs"
click node_linked "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoLinkedList.cs"
click node_list "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoList.cs"
click node_simplelist "https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ListaSimple.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_editor,node_visual,node_logs,node_user toneBlue
class node_matrix,node_adjlist toneAmber
class node_api,node_base,node_vertex,node_edge,node_neighbor,node_adjentry,node_messages toneMint
class node_custom,node_linked,node_list,node_simplelist toneRose
```

## Components

### Graph editor UI

- [Canvas editor](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Form1.cs): `Ruta de mapas/Form1.cs`
- [Visual styling](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ConfiguracionVisual.cs): `Ruta de mapas/ConfiguracionVisual.cs`
- [Activity categories](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/CategoriasLog.cs): `Ruta de mapas/CategoriasLog.cs`

### Graph views

- [Adjacency matrix view](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/FormMatriz.cs): `Ruta de mapas/FormMatriz.cs`
- [Adjacency list view](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/FormListaAdyacencia.cs): `Ruta de mapas/FormListaAdyacencia.cs`

### Graph domain

- [Graph contract](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/IGrafo.cs): `Ruta de mapas/IGrafo.cs`
- [Shared graph operations](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoBase.cs): `Ruta de mapas/GrafoBase.cs`
- [Vertex model](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Nodo.cs): `Ruta de mapas/Nodo.cs`
- [Edge model](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Arista.cs): `Ruta de mapas/Arista.cs`
- [Neighbor details](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ElementoAdyacente.cs): `Ruta de mapas/ElementoAdyacente.cs`
- [Adjacency entry](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ElementoListaAdyacencia.cs): `Ruta de mapas/ElementoListaAdyacencia.cs`
- [Graph messages](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/Mensajes.cs): `Ruta de mapas/Mensajes.cs`

### Storage implementations

- [Custom list graph](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoListaSimple.cs): `Ruta de mapas/GrafoListaSimple.cs`
- [Linked-list graph](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoLinkedList.cs): `Ruta de mapas/GrafoLinkedList.cs`
- [List graph](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/GrafoList.cs): `Ruta de mapas/GrafoList.cs`
- [Custom singly list](https://github.com/brayanromo-bit/ruta-de-mapas-grafos-/blob/master/Ruta%20de%20mapas/ListaSimple.cs): `Ruta de mapas/ListaSimple.cs`

### Other components

- **Graph editor user**

## Connections

- Graph editor user → Canvas editor: edits graph
- Canvas editor → Graph contract: uses graph API (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → Custom list graph: starts with (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → Linked-list graph: selects structure (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → List graph: selects structure (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → Adjacency matrix view: opens view (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → Adjacency list view: opens view (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → Visual styling: uses styling (evidence: `Ruta de mapas/Form1.cs`)
- Canvas editor → Activity categories: categorizes logs (evidence: `Ruta de mapas/Form1.cs`)
- Adjacency matrix view → Graph contract: reads graph (evidence: `Ruta de mapas/FormMatriz.cs`)
- Adjacency matrix view → Adjacency list view: opens view (evidence: `Ruta de mapas/FormMatriz.cs`)
- Adjacency list view → Graph contract: reads graph (evidence: `Ruta de mapas/FormListaAdyacencia.cs`)
- Adjacency list view → Adjacency entry: formats entries (evidence: `Ruta de mapas/FormListaAdyacencia.cs`)
- Shared graph operations → Graph contract: implements (evidence: `Ruta de mapas/GrafoBase.cs`)
- Custom list graph → Shared graph operations: extends (evidence: `Ruta de mapas/GrafoListaSimple.cs`)
- Linked-list graph → Shared graph operations: extends (evidence: `Ruta de mapas/GrafoLinkedList.cs`)
- List graph → Shared graph operations: extends (evidence: `Ruta de mapas/GrafoList.cs`)
- Custom list graph → Custom singly list: stores collections (evidence: `Ruta de mapas/GrafoListaSimple.cs`)
- Shared graph operations → Graph messages: uses messages (evidence: `Ruta de mapas/GrafoBase.cs`)
- Shared graph operations → Neighbor details: creates details (evidence: `Ruta de mapas/GrafoBase.cs`)
- Shared graph operations → Adjacency entry: builds representation (evidence: `Ruta de mapas/GrafoBase.cs`)
