# mateofergon26-dev/gestionequiposliceo architecture

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

## Overview

This is a Java Swing application for managing shared equipment: users browse equipment and request reservations; administrators manage equipment and users, approve reservations, issue loans, record returns, and handle fault reports. Views call controllers or services, which apply business rules and use DAOs backed by a local MySQL connection. The graph preserves the distinct reservation, loan/return, incident, and fault-report stages. Some views and controllers are listed but not excerpted, so links that depend on them are limited to relationships shown in the source index or excerpts.

Main entry points: [`NewPaquetes/dao`](https://github.com/mateofergon26-dev/gestionequiposliceo/tree/master/NewPaquetes/dao) (Data access), [`NewPaquetes/vista/AdminVista.java`](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/AdminVista.java) (Admin dashboard), [`NewPaquetes/negocio/PrestamoService.java`](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/PrestamoService.java) (Loan and return rules), [`NewPaquetes/negocio/UsuarioService.java`](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/UsuarioService.java) (User rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Desktop interface"]
  node_login["Login<br/>[LoginVista.java]"]
  node_admin["Admin dashboard<br/>[AdminVista.java]"]
  node_requester["Requester dashboard"]
  node_equipment_ui["Equipment screens"]
  node_reservation_ui["Reservation screens"]
  node_loan_ui["Loan screens"]
  node_return_ui["Return screens"]
  node_report_ui["Fault report screens"]
end

subgraph group_workflows["Domain workflows"]
  node_equipment_ctrl["Equipment controller"]
  node_reservation_ctrl["Reservation controller"]
  node_loan_ctrl["Loan controller"]
  node_fault_ctrl["Fault report controller"]
  node_user_ctrl["User controller"]
  node_login_ctrl["Login controller"]
  node_equipment_service["Equipment rules<br/>[EquipoService.java]"]
  node_reservation_service["Reservation rules"]
  node_loan_service["Loan and return rules"]
  node_incident_service["Incident handling"]
  node_fault_service["Fault report rules"]
  node_user_service["User rules"]
end

subgraph group_domain["Domain data"]
  node_models["Domain records"]
end

subgraph group_persistence["Persistence"]
  node_daos["Data access"]
  node_database[("MySQL database<br/>[ConexionBD.java]")]
end

node_user(("User"))

node_user -.->|"opens"| node_login
node_admin -->|"opens"| node_equipment_ui
node_admin -->|"opens"| node_loan_ui
node_admin -->|"opens"| node_return_ui
node_admin -->|"opens"| node_report_ui
node_equipment_ui -->|"calls"| node_equipment_ctrl
node_reservation_ui -->|"calls"| node_reservation_ctrl
node_loan_ui -->|"calls"| node_loan_service
node_return_ui -->|"calls"| node_loan_ctrl
node_report_ui -->|"calls"| node_fault_ctrl
node_login -.->|"calls"| node_login_ctrl
node_equipment_ctrl -->|"delegates to"| node_equipment_service
node_reservation_ctrl -->|"delegates to"| node_reservation_service
node_loan_ctrl -->|"delegates to"| node_loan_service
node_fault_ctrl -->|"delegates to"| node_fault_service
node_user_ctrl -->|"delegates to"| node_user_service
node_login_ctrl -->|"delegates to"| node_user_service
node_equipment_service -->|"uses"| node_daos
node_reservation_service -->|"uses"| node_daos
node_loan_service -->|"uses"| node_daos
node_incident_service -->|"uses"| node_daos
node_fault_service -->|"uses"| node_daos
node_user_service -->|"uses"| node_daos
node_loan_service -->|"creates incidents"| node_incident_service
node_daos -->|"connects via"| node_database

click node_login "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/LoginVista.java"
click node_admin "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/AdminVista.java"
click node_requester "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/SolicitanteVista.java"
click node_equipment_ui "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/VentanaGestionarEquipos.java"
click node_reservation_ui "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/SolicitarReservaVista.java"
click node_loan_ui "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/GestionarPrestamosVista.java"
click node_return_ui "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/RegistrarDevolucionesVista.java"
click node_report_ui "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/GenerarReporteVista.java"
click node_equipment_ctrl "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/EquipoController.java"
click node_reservation_ctrl "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/ReservaController.java"
click node_loan_ctrl "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/PrestamoController.java"
click node_fault_ctrl "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/ReporteFallaController.java"
click node_user_ctrl "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/UsuarioController.java"
click node_login_ctrl "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/LoginController.java"
click node_equipment_service "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/EquipoService.java"
click node_reservation_service "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/ReservaService.java"
click node_loan_service "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/PrestamoService.java"
click node_incident_service "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/IncidenciaService.java"
click node_fault_service "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/ReporteFallaService.java"
click node_user_service "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/UsuarioService.java"
click node_models "https://github.com/mateofergon26-dev/gestionequiposliceo/tree/master/NewPaquetes/modelo"
click node_daos "https://github.com/mateofergon26-dev/gestionequiposliceo/tree/master/NewPaquetes/dao"
click node_database "https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/conexion/ConexionBD.java"

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_login,node_admin,node_requester,node_equipment_ui,node_reservation_ui,node_loan_ui,node_return_ui,node_report_ui,node_user toneBlue
class node_equipment_ctrl,node_reservation_ctrl,node_loan_ctrl,node_fault_ctrl,node_user_ctrl,node_login_ctrl,node_equipment_service,node_reservation_service,node_loan_service,node_incident_service,node_fault_service,node_user_service toneAmber
class node_models toneMint
class node_daos,node_database toneRose
```

## Components

### Desktop interface

- [Login](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/LoginVista.java): `NewPaquetes/vista/LoginVista.java`
- [Admin dashboard](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/AdminVista.java): `NewPaquetes/vista/AdminVista.java`
- [Requester dashboard](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/SolicitanteVista.java): `NewPaquetes/vista/SolicitanteVista.java`
- [Equipment screens](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/VentanaGestionarEquipos.java): `NewPaquetes/vista/VentanaGestionarEquipos.java`
- [Reservation screens](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/SolicitarReservaVista.java): `NewPaquetes/vista/SolicitarReservaVista.java`
- [Loan screens](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/GestionarPrestamosVista.java): `NewPaquetes/vista/GestionarPrestamosVista.java`
- [Return screens](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/RegistrarDevolucionesVista.java): `NewPaquetes/vista/RegistrarDevolucionesVista.java`
- [Fault report screens](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/vista/GenerarReporteVista.java): `NewPaquetes/vista/GenerarReporteVista.java`

### Domain workflows

- [Equipment controller](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/EquipoController.java): `NewPaquetes/controlador/EquipoController.java`
- [Reservation controller](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/ReservaController.java): `NewPaquetes/controlador/ReservaController.java`
- [Loan controller](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/PrestamoController.java): `NewPaquetes/controlador/PrestamoController.java`
- [Fault report controller](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/ReporteFallaController.java): `NewPaquetes/controlador/ReporteFallaController.java`
- [User controller](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/UsuarioController.java): `NewPaquetes/controlador/UsuarioController.java`
- [Login controller](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/controlador/LoginController.java): `NewPaquetes/controlador/LoginController.java`
- [Equipment rules](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/EquipoService.java): `NewPaquetes/negocio/EquipoService.java`
- [Reservation rules](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/ReservaService.java): `NewPaquetes/negocio/ReservaService.java`
- [Loan and return rules](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/PrestamoService.java): `NewPaquetes/negocio/PrestamoService.java`
- [Incident handling](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/IncidenciaService.java): `NewPaquetes/negocio/IncidenciaService.java`
- [Fault report rules](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/ReporteFallaService.java): `NewPaquetes/negocio/ReporteFallaService.java`
- [User rules](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/negocio/UsuarioService.java): `NewPaquetes/negocio/UsuarioService.java`

### Domain data

- [Domain records](https://github.com/mateofergon26-dev/gestionequiposliceo/tree/master/NewPaquetes/modelo): `NewPaquetes/modelo`

### Persistence

- [Data access](https://github.com/mateofergon26-dev/gestionequiposliceo/tree/master/NewPaquetes/dao): `NewPaquetes/dao`
- [MySQL database](https://github.com/mateofergon26-dev/gestionequiposliceo/blob/master/NewPaquetes/conexion/ConexionBD.java): `NewPaquetes/conexion/ConexionBD.java`

### Other components

- **User**

## Connections

- User → Login: opens
- Admin dashboard → Equipment screens: opens (evidence: `NewPaquetes/vista/AdminVista.java`)
- Admin dashboard → Loan screens: opens (evidence: `NewPaquetes/vista/AdminVista.java`)
- Admin dashboard → Return screens: opens (evidence: `NewPaquetes/vista/AdminVista.java`)
- Admin dashboard → Fault report screens: opens (evidence: `NewPaquetes/vista/AdminVista.java`)
- Equipment screens → Equipment controller: calls (evidence: `NewPaquetes/vista/VentanaGestionarEquipos.java`)
- Reservation screens → Reservation controller: calls (evidence: `NewPaquetes/vista/SolicitarReservaVista.java`)
- Loan screens → Loan and return rules: calls (evidence: `NewPaquetes/vista/GestionarPrestamosVista.java`)
- Return screens → Loan controller: calls (evidence: `NewPaquetes/vista/RegistrarDevolucionesVista.java`)
- Fault report screens → Fault report controller: calls (evidence: `NewPaquetes/vista/GenerarReporteVista.java`)
- Login → Login controller: calls
- Equipment controller → Equipment rules: delegates to (evidence: `NewPaquetes/controlador/EquipoController.java`)
- Reservation controller → Reservation rules: delegates to (evidence: `NewPaquetes/controlador/ReservaController.java`)
- Loan controller → Loan and return rules: delegates to (evidence: `NewPaquetes/controlador/PrestamoController.java`)
- Fault report controller → Fault report rules: delegates to (evidence: `NewPaquetes/controlador/ReporteFallaController.java`)
- User controller → User rules: delegates to (evidence: `NewPaquetes/controlador/UsuarioController.java`)
- Login controller → User rules: delegates to (evidence: `NewPaquetes/controlador/LoginController.java`)
- Equipment rules → Data access: uses (evidence: `NewPaquetes/negocio/EquipoService.java`)
- Reservation rules → Data access: uses (evidence: `NewPaquetes/negocio/ReservaService.java`)
- Loan and return rules → Data access: uses (evidence: `NewPaquetes/negocio/PrestamoService.java`)
- Incident handling → Data access: uses (evidence: `NewPaquetes/negocio/IncidenciaService.java`)
- Fault report rules → Data access: uses (evidence: `NewPaquetes/negocio/ReporteFallaService.java`)
- User rules → Data access: uses (evidence: `NewPaquetes/negocio/UsuarioService.java`)
- Loan and return rules → Incident handling: creates incidents (evidence: `NewPaquetes/negocio/PrestamoService.java`)
- Data access → MySQL database: connects via (evidence: `NewPaquetes/dao/PrestamoDAO.java`)
