# aleon30/matematica-computacional architecture

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

- Interactive diagram: https://gitdiagram.com/aleon30/matematica-computacional
- Repository: https://github.com/aleon30/matematica-computacional

## Overview

FastRoute is a desktop Python app for finding and explaining a minimum-cost route in a weighted graph. The user chooses automatic or manual graph creation, selects source and destination vertices, and runs Dijkstra; the app displays the route, graph matrices, priority queue, and algorithm steps. The graph and step-formatting code are sampled; manual entry and table styling are not, so their internal behavior and some wiring are not asserted.

Main entry points: [`interfazUsuario.py`](https://github.com/aleon30/matematica-computacional/blob/main/interfazUsuario.py) (Application UI), [`estilos_tablas.py`](https://github.com/aleon30/matematica-computacional/blob/main/estilos_tablas.py) (Table styles), [`tabla_matriz.py`](https://github.com/aleon30/matematica-computacional/blob/main/tabla_matriz.py) (Matrix view), [`Grafo.py`](https://github.com/aleon30/matematica-computacional/blob/main/Grafo.py) (Dijkstra and history)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["User workflow"]
  node_app["Application UI<br/>[interfazUsuario.py]"]
  node_manual["Manual entry<br/>[ingreso_manual.py]"]
  node_entrypoint["Application entry point<br/>[main.py]"]
end

subgraph group_domain["Graph and routing"]
  node_graph["Weighted graph<br/>[Grafo.py]"]
  node_dijkstra["Dijkstra and history<br/>[Grafo.py]"]
end

subgraph group_views["Result views"]
  node_drawing["Graph visualization<br/>[dibujarGrafo.py]"]
  node_matrices["Matrix view<br/>[tabla_matriz.py]"]
  node_queue["Priority queue view<br/>[tabla_cola.py]"]
  node_steps["Step history view<br/>[tabla_pasos.py]"]
  node_step_format["Step formatting"]
  node_matrix_format["Matrix formatting<br/>[tabla_matriz.py]"]
end

subgraph group_presentation["Table presentation"]
  node_table_styles["Table styles<br/>[estilos_tablas.py]"]
end

node_user(("User"))

node_user -->|"configures and runs"| node_app
node_entrypoint -->|"starts"| node_app
node_app -->|"creates and updates"| node_graph
node_app -.->|"opens manual entry"| node_manual
node_app -->|"runs route search"| node_dijkstra
node_dijkstra -->|"uses adjacency data"| node_graph
node_app -->|"renders graph"| node_drawing
node_app -->|"renders matrices"| node_matrices
node_app -->|"updates queue view"| node_queue
node_app -->|"renders step rows"| node_steps
node_app -->|"formats step events"| node_step_format
node_step_format -->|"provides row models"| node_steps
node_app -->|"selects matrix view"| node_matrix_format
node_matrices -->|"formats cell values"| node_matrix_format
node_app -->|"configures table styles"| node_table_styles
node_matrices -->|"applies row styles"| node_table_styles
node_queue -->|"applies row styles"| node_table_styles
node_steps -->|"applies row styles"| node_table_styles
node_app -->|"reads route and history"| node_dijkstra

click node_app "https://github.com/aleon30/matematica-computacional/blob/main/interfazUsuario.py"
click node_manual "https://github.com/aleon30/matematica-computacional/blob/main/ingreso_manual.py"
click node_graph "https://github.com/aleon30/matematica-computacional/blob/main/Grafo.py"
click node_dijkstra "https://github.com/aleon30/matematica-computacional/blob/main/Grafo.py"
click node_drawing "https://github.com/aleon30/matematica-computacional/blob/main/dibujarGrafo.py"
click node_matrices "https://github.com/aleon30/matematica-computacional/blob/main/tabla_matriz.py"
click node_queue "https://github.com/aleon30/matematica-computacional/blob/main/tabla_cola.py"
click node_steps "https://github.com/aleon30/matematica-computacional/blob/main/tabla_pasos.py"
click node_step_format "https://github.com/aleon30/matematica-computacional/blob/main/estrategias_tablas.py"
click node_matrix_format "https://github.com/aleon30/matematica-computacional/blob/main/tabla_matriz.py"
click node_table_styles "https://github.com/aleon30/matematica-computacional/blob/main/estilos_tablas.py"
click node_entrypoint "https://github.com/aleon30/matematica-computacional/blob/main/main.py"

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_app,node_manual,node_entrypoint,node_user toneBlue
class node_graph,node_dijkstra toneAmber
class node_drawing,node_matrices,node_queue,node_steps,node_step_format,node_matrix_format toneMint
class node_table_styles toneRose
```

## Components

### User workflow

- [Application UI](https://github.com/aleon30/matematica-computacional/blob/main/interfazUsuario.py): `interfazUsuario.py`
- [Manual entry](https://github.com/aleon30/matematica-computacional/blob/main/ingreso_manual.py): `ingreso_manual.py`
- [Application entry point](https://github.com/aleon30/matematica-computacional/blob/main/main.py): `main.py`

### Graph and routing

- [Weighted graph](https://github.com/aleon30/matematica-computacional/blob/main/Grafo.py): `Grafo.py`
- [Dijkstra and history](https://github.com/aleon30/matematica-computacional/blob/main/Grafo.py): `Grafo.py`

### Result views

- [Graph visualization](https://github.com/aleon30/matematica-computacional/blob/main/dibujarGrafo.py): `dibujarGrafo.py`
- [Matrix view](https://github.com/aleon30/matematica-computacional/blob/main/tabla_matriz.py): `tabla_matriz.py`
- [Priority queue view](https://github.com/aleon30/matematica-computacional/blob/main/tabla_cola.py): `tabla_cola.py`
- [Step history view](https://github.com/aleon30/matematica-computacional/blob/main/tabla_pasos.py): `tabla_pasos.py`
- [Step formatting](https://github.com/aleon30/matematica-computacional/blob/main/estrategias_tablas.py): `estrategias_tablas.py`
- [Matrix formatting](https://github.com/aleon30/matematica-computacional/blob/main/tabla_matriz.py): `tabla_matriz.py`

### Table presentation

- [Table styles](https://github.com/aleon30/matematica-computacional/blob/main/estilos_tablas.py): `estilos_tablas.py`

### Other components

- **User**

## Connections

- User → Application UI: configures and runs (evidence: `README.md`)
- Application entry point → Application UI: starts (evidence: `main.py`)
- Application UI → Weighted graph: creates and updates (evidence: `interfazUsuario.py`)
- Application UI → Manual entry: opens manual entry (evidence: `interfazUsuario.py`)
- Application UI → Dijkstra and history: runs route search (evidence: `interfazUsuario.py`)
- Dijkstra and history → Weighted graph: uses adjacency data (evidence: `Grafo.py`)
- Application UI → Graph visualization: renders graph (evidence: `interfazUsuario.py`)
- Application UI → Matrix view: renders matrices (evidence: `interfazUsuario.py`)
- Application UI → Priority queue view: updates queue view (evidence: `interfazUsuario.py`)
- Application UI → Step history view: renders step rows (evidence: `interfazUsuario.py`)
- Application UI → Step formatting: formats step events (evidence: `interfazUsuario.py`)
- Step formatting → Step history view: provides row models (evidence: `tabla_pasos.py`)
- Application UI → Matrix formatting: selects matrix view (evidence: `interfazUsuario.py`)
- Matrix view → Matrix formatting: formats cell values (evidence: `tabla_matriz.py`)
- Application UI → Table styles: configures table styles (evidence: `interfazUsuario.py`)
- Matrix view → Table styles: applies row styles (evidence: `tabla_matriz.py`)
- Priority queue view → Table styles: applies row styles (evidence: `tabla_cola.py`)
- Step history view → Table styles: applies row styles (evidence: `tabla_pasos.py`)
- Application UI → Dijkstra and history: reads route and history (evidence: `interfazUsuario.py`)
