# rgaviria74/consignataria architecture

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

- Interactive diagram: https://gitdiagram.com/rgaviria74/consignataria
- Repository: https://github.com/rgaviria74/consignataria

## Overview

Consignataria is a Flask CRUD application for managing cars and their photos in MySQL. The main workflow routes browser requests through Flask handlers, which invoke car operations, render HTML views or return JSON, and persist records; photo uploads and deletions also manipulate files. The templates and schema indicate list, add, update, detail, and delete capabilities. The sampled code shows route-to-controller and database calls; template rendering and schema details are supported by the tree, while unsampled template and schema wiring is not expanded.

Main entry points: [`app/app.py`](https://github.com/rgaviria74/consignataria/blob/main/app/app.py) (Flask routes), [`app/controller/controllerCarro.py`](https://github.com/rgaviria74/consignataria/blob/main/app/controller/controllerCarro.py) (Car controller), [`app/conexionBD.py`](https://github.com/rgaviria74/consignataria/blob/main/app/conexionBD.py) (MySQL connection), [`bd/Tabla_carros.sql`](https://github.com/rgaviria74/consignataria/blob/main/bd/Tabla_carros.sql) (Cars table)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_routes["Flask routes<br/>[app.py]"]
  node_car_views["Car views"]
  node_layout["Listing layout<br/>[layout.html]"]
  node_alerts["Alert UI<br/>[alerta.html]"]
end

subgraph group_cars["Car operations"]
  node_car_controller["Car controller<br/>[controllerCarro.py]"]
end

subgraph group_persistence["Persistence and media"]
  node_mysql_connection["MySQL connection<br/>[conexionBD.py]"]
  node_cars_db[("Cars table<br/>[Tabla_carros.sql]")]
  node_car_photos[("Car photo files")]
  node_schema_description["Table description"]
end

node_user(("Browser user"))

node_user -->|"sends requests"| node_routes
node_routes -->|"calls"| node_car_controller
node_routes -->|"renders"| node_car_views
node_routes -->|"renders"| node_layout
node_car_controller -->|"opens connection"| node_mysql_connection
node_mysql_connection -.->|"connects to"| node_cars_db
node_routes -->|"saves and deletes"| node_car_photos
node_car_controller -->|"queries and updates"| node_cars_db
node_routes -.->|"renders alerts"| node_alerts

click node_routes "https://github.com/rgaviria74/consignataria/blob/main/app/app.py"
click node_car_views "https://github.com/rgaviria74/consignataria/tree/main/app/templates/public/acciones"
click node_layout "https://github.com/rgaviria74/consignataria/blob/main/app/templates/public/layout.html"
click node_alerts "https://github.com/rgaviria74/consignataria/blob/main/app/templates/public/alerta.html"
click node_car_controller "https://github.com/rgaviria74/consignataria/blob/main/app/controller/controllerCarro.py"
click node_mysql_connection "https://github.com/rgaviria74/consignataria/blob/main/app/conexionBD.py"
click node_cars_db "https://github.com/rgaviria74/consignataria/blob/main/bd/Tabla_carros.sql"
click node_car_photos "https://github.com/rgaviria74/consignataria/tree/main/app/static/assets/fotos_carros"
click node_schema_description "https://github.com/rgaviria74/consignataria/blob/main/bd/Descripcion_Tabla_Carros.docx"

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_routes,node_car_views,node_layout,node_alerts,node_user toneBlue
class node_car_controller toneAmber
class node_mysql_connection,node_cars_db,node_car_photos,node_schema_description toneMint
```

## Components

### Web interface

- [Flask routes](https://github.com/rgaviria74/consignataria/blob/main/app/app.py): `app/app.py`
- [Car views](https://github.com/rgaviria74/consignataria/tree/main/app/templates/public/acciones): `app/templates/public/acciones`
- [Listing layout](https://github.com/rgaviria74/consignataria/blob/main/app/templates/public/layout.html): `app/templates/public/layout.html`
- [Alert UI](https://github.com/rgaviria74/consignataria/blob/main/app/templates/public/alerta.html): `app/templates/public/alerta.html`

### Car operations

- [Car controller](https://github.com/rgaviria74/consignataria/blob/main/app/controller/controllerCarro.py): `app/controller/controllerCarro.py`

### Persistence and media

- [MySQL connection](https://github.com/rgaviria74/consignataria/blob/main/app/conexionBD.py): `app/conexionBD.py`
- [Cars table](https://github.com/rgaviria74/consignataria/blob/main/bd/Tabla_carros.sql): `bd/Tabla_carros.sql`
- [Car photo files](https://github.com/rgaviria74/consignataria/tree/main/app/static/assets/fotos_carros): `app/static/assets/fotos_carros`
- [Table description](https://github.com/rgaviria74/consignataria/blob/main/bd/Descripcion_Tabla_Carros.docx): `bd/Descripcion_Tabla_Carros.docx`

### Other components

- **Browser user**

## Connections

- Browser user → Flask routes: sends requests (evidence: `app/app.py`)
- Flask routes → Car controller: calls (evidence: `app/app.py`)
- Flask routes → Car views: renders (evidence: `app/app.py`)
- Flask routes → Listing layout: renders (evidence: `app/app.py`)
- Car controller → MySQL connection: opens connection (evidence: `app/controller/controllerCarro.py`)
- MySQL connection → Cars table: connects to
- Flask routes → Car photo files: saves and deletes (evidence: `app/app.py`)
- Car controller → Cars table: queries and updates (evidence: `app/controller/controllerCarro.py`)
- Flask routes → Alert UI: renders alerts
