# diego-go-solis/agencia-mixta architecture

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

- Interactive diagram: https://gitdiagram.com/diego-go-solis/agencia-mixta
- Repository: https://github.com/diego-go-solis/agencia-mixta

## Overview

Agencia Mixta is a vehicle-agency information and administration application: its stated aim is to bring vehicle information from preferred agencies together while retaining agency and agent identity. The Angular routes expose login/registration and authenticated dashboard and agency, car, employee, and client screens; the .NET API and SQL Server form the documented backend. The sampled access controller explicitly delegates login, registration, and user listing to its repository. Other backend connections and frontend API calls are not established by the excerpts, so those links are left out.

Main entry points: [`Frontend_AgenciaMixta/Frontend_AgenciaMixta/src/app/app.routes.ts`](https://github.com/diego-go-solis/agencia-mixta/blob/main/Frontend_AgenciaMixta/Frontend_AgenciaMixta/src/app/app.routes.ts) (App routes), [`AgenciaM/AgenciaM/Repositorio/AccesoRepositorio.cs`](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/AccesoRepositorio.cs) (Access repository), [`AgenciaM/AgenciaM/Controllers/accesoController.cs`](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/accesoController.cs) (Access controller), [`AgenciaM/AgenciaM/Program.cs`](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Program.cs) (.NET API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Angular application"]
  node_routes["App routes<br/>[app.routes.ts]"]
end

subgraph group_identity["Access and identity"]
  node_api[".NET API<br/>[Program.cs]"]
  node_access["Access controller"]
  node_accessrepo["Access repository"]
  node_crypto["Encryption service"]
  node_user_model["User model<br/>[usuario.cs]"]
end

subgraph group_catalog["Agency catalog"]
  node_agency_controller["Agency controller"]
  node_agency_repo["Agency repository"]
  node_agency_model["Agency model<br/>[Agencia.cs]"]
  node_car_controller["Car controller<br/>[carroController.cs]"]
  node_car_repo["Car repository"]
  node_car_model["Car model<br/>[Carro.cs]"]
end

subgraph group_operations["Business records"]
  node_employee_controller["Employee controller"]
  node_employee_repo["Employee repository"]
  node_employee_model["Employee model<br/>[Empleado.cs]"]
  node_client_controller["Client controller"]
  node_client_repo["Client repository"]
  node_client_model["Client model<br/>[Cliente.cs]"]
  node_header_controller["Invoice header"]
  node_header_repo["Header repository"]
  node_header_model["Invoice header model<br/>[encabezado.cs]"]
  node_detail_controller["Invoice details"]
  node_detail_repo["Detail repository"]
  node_detail_model["Invoice detail model<br/>[Detalle.cs]"]
  node_cart_controller["Cart controller<br/>[carroController.cs]"]
end

subgraph group_persistence["Persistence"]
  node_db[("SQL Server context")]
end

node_user(("User"))

node_user -->|"uses screens"| node_routes
node_routes -.->|"backend boundary"| node_api
node_access -->|"executes user process"| node_accessrepo
node_accessrepo -->|"returns user data"| node_user_model

click node_routes "https://github.com/diego-go-solis/agencia-mixta/blob/main/Frontend_AgenciaMixta/Frontend_AgenciaMixta/src/app/app.routes.ts"
click node_api "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Program.cs"
click node_access "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/accesoController.cs"
click node_accessrepo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/AccesoRepositorio.cs"
click node_crypto "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Services/EncriptacionService.cs"
click node_user_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/usuario.cs"
click node_agency_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/AgenciaController.cs"
click node_agency_repo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/agenciaRepositorio.cs"
click node_agency_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Agencia.cs"
click node_car_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/carroController.cs"
click node_car_repo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/carroRepositorio.cs"
click node_car_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Carro.cs"
click node_employee_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/empleadoController.cs"
click node_employee_repo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/empleadoRepositorio.cs"
click node_employee_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Empleado.cs"
click node_client_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/clienteController.cs"
click node_client_repo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/clienteRepositorio.cs"
click node_client_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Cliente.cs"
click node_header_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/encabezadoController.cs"
click node_header_repo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/encabezadoRdpositorio.cs"
click node_header_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/encabezado.cs"
click node_detail_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/detalleController.cs"
click node_detail_repo "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/detalleRepositorio.cs"
click node_detail_model "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Detalle.cs"
click node_cart_controller "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/carroController.cs"
click node_db "https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Data/ApplicationDbContext.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_routes,node_user toneBlue
class node_api,node_access,node_accessrepo,node_crypto,node_user_model toneAmber
class node_agency_controller,node_agency_repo,node_agency_model,node_car_controller,node_car_repo,node_car_model toneMint
class node_employee_controller,node_employee_repo,node_employee_model,node_client_controller,node_client_repo,node_client_model,node_header_controller,node_header_repo,node_header_model,node_detail_controller,node_detail_repo,node_detail_model,node_cart_controller toneRose
class node_db toneIndigo
```

## Components

### Angular application

- [App routes](https://github.com/diego-go-solis/agencia-mixta/blob/main/Frontend_AgenciaMixta/Frontend_AgenciaMixta/src/app/app.routes.ts): `Frontend_AgenciaMixta/Frontend_AgenciaMixta/src/app/app.routes.ts`

### Access and identity

- [.NET API](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Program.cs): `AgenciaM/AgenciaM/Program.cs`
- [Access controller](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/accesoController.cs): `AgenciaM/AgenciaM/Controllers/accesoController.cs`
- [Access repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/AccesoRepositorio.cs): `AgenciaM/AgenciaM/Repositorio/AccesoRepositorio.cs`
- [Encryption service](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Services/EncriptacionService.cs): `AgenciaM/AgenciaM/Services/EncriptacionService.cs`
- [User model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/usuario.cs): `AgenciaM/AgenciaM/Models/usuario.cs`

### Agency catalog

- [Agency controller](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/AgenciaController.cs): `AgenciaM/AgenciaM/Controllers/AgenciaController.cs`
- [Agency repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/agenciaRepositorio.cs): `AgenciaM/AgenciaM/Repositorio/agenciaRepositorio.cs`
- [Agency model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Agencia.cs): `AgenciaM/AgenciaM/Models/Agencia.cs`
- [Car controller](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/carroController.cs): `AgenciaM/AgenciaM/Controllers/carroController.cs`
- [Car repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/carroRepositorio.cs): `AgenciaM/AgenciaM/Repositorio/carroRepositorio.cs`
- [Car model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Carro.cs): `AgenciaM/AgenciaM/Models/Carro.cs`

### Business records

- [Employee controller](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/empleadoController.cs): `AgenciaM/AgenciaM/Controllers/empleadoController.cs`
- [Employee repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/empleadoRepositorio.cs): `AgenciaM/AgenciaM/Repositorio/empleadoRepositorio.cs`
- [Employee model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Empleado.cs): `AgenciaM/AgenciaM/Models/Empleado.cs`
- [Client controller](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/clienteController.cs): `AgenciaM/AgenciaM/Controllers/clienteController.cs`
- [Client repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/clienteRepositorio.cs): `AgenciaM/AgenciaM/Repositorio/clienteRepositorio.cs`
- [Client model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Cliente.cs): `AgenciaM/AgenciaM/Models/Cliente.cs`
- [Invoice header](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/encabezadoController.cs): `AgenciaM/AgenciaM/Controllers/encabezadoController.cs`
- [Header repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/encabezadoRdpositorio.cs): `AgenciaM/AgenciaM/Repositorio/encabezadoRdpositorio.cs`
- [Invoice header model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/encabezado.cs): `AgenciaM/AgenciaM/Models/encabezado.cs`
- [Invoice details](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/detalleController.cs): `AgenciaM/AgenciaM/Controllers/detalleController.cs`
- [Detail repository](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Repositorio/detalleRepositorio.cs): `AgenciaM/AgenciaM/Repositorio/detalleRepositorio.cs`
- [Invoice detail model](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Models/Detalle.cs): `AgenciaM/AgenciaM/Models/Detalle.cs`
- [Cart controller](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Controllers/carroController.cs): `AgenciaM/AgenciaM/Controllers/carroController.cs`

### Persistence

- [SQL Server context](https://github.com/diego-go-solis/agencia-mixta/blob/main/AgenciaM/AgenciaM/Data/ApplicationDbContext.cs): `AgenciaM/AgenciaM/Data/ApplicationDbContext.cs`

### Other components

- **User**

## Connections

- User → App routes: uses screens
- App routes → .NET API: backend boundary
- Access controller → Access repository: executes user process
- Access repository → User model: returns user data
