# noe-zm28/panel-administracion architecture

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

- Interactive diagram: https://gitdiagram.com/noe-zm28/panel-administracion
- Repository: https://github.com/noe-zm28/panel-administracion

## Overview

Panel-Administracion is a Tkinter desktop application for managing parking-system access and producing operational reports. The principal workflow is user login and connection selection, followed by searching a domain panel and viewing or exporting results to Excel. The tree identifies additional user-administration, system-change, ticket, income, and pension features. Sampled code confirms the general-report UI-to-controller handoff, controller use of Queries, and database connection/configuration behavior; wiring for unsampled panels is therefore shown only where the module names support the feature, not as detailed call sequences. The README provides no further capability details.

Main entry points: [`Models/queries.py`](https://github.com/noe-zm28/panel-administracion/blob/main/Models/queries.py) (Query operations), [`Models/database.py`](https://github.com/noe-zm28/panel-administracion/blob/main/Models/database.py) (Database access), [`Controller/controller_panel_general.py`](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_general.py) (General report logic), [`Views/view_login.py`](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_login.py) (Login screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and access"]
  node_main["Application entry<br/>[main.py]"]
  node_login_view["Login screen<br/>[view_login.py]"]
  node_login_controller["Login controller"]
  node_connection_view["Connection selection"]
  node_connection_controller["Connection controller"]
  node_connection_manage["Manage connections"]
  node_report_select_view["Report selection"]
  node_report_select_controller["Report selector"]
end

subgraph group_admin["Administration"]
  node_user_admin_view["User administration"]
  node_user_admin_controller["TPV user controller"]
  node_report_user_view["Report-user administration"]
  node_report_user_controller["Report-user controller"]
end

subgraph group_reports["Parking reports"]
  node_general_view["General report UI"]
  node_general_controller["General report logic"]
  node_ticket_controller["Ticket reports"]
  node_income_controller["Income reports"]
  node_days_controller["Daily reports"]
  node_pension_income_controller["Pension income"]
  node_pension_controller["Pensioners"]
  node_changes_controller["System changes"]
  node_panel_views["Other report screens"]
end

subgraph group_data["Data access"]
  node_queries["Query operations<br/>[queries.py]"]
  node_database["Database access<br/>[database.py]"]
  node_db_config["Connection configuration<br/>[config_database.py]"]
  node_email["Email retrieval"]
end

node_operator(("Operator"))
node_mysql[("MySQL server")]
node_config_files["Local configuration files"]
node_excel["Excel workbook"]

node_operator -->|"starts"| node_main
node_main -->|"opens"| node_login_view
node_operator -->|"enters credentials"| node_login_view
node_login_view -->|"delegates login"| node_login_controller
node_connection_view -->|"selects connection"| node_connection_controller
node_connection_view -->|"manages settings"| node_connection_manage
node_report_select_view -->|"chooses report"| node_report_select_controller
node_report_select_controller -->|"opens panel"| node_panel_views
node_general_view -->|"submits filters"| node_general_controller
node_general_controller -->|"requests records"| node_queries
node_ticket_controller -->|"requests records"| node_queries
node_income_controller -->|"requests records"| node_queries
node_days_controller -->|"requests records"| node_queries
node_pension_income_controller -->|"requests records"| node_queries
node_pension_controller -->|"requests records"| node_queries
node_changes_controller -->|"requests records"| node_queries
node_queries -->|"executes queries"| node_database
node_database -->|"connects and queries"| node_mysql
node_database -->|"loads settings"| node_db_config
node_db_config -->|"reads and writes"| node_config_files
node_database -->|"requests download"| node_email
node_general_controller -->|"exports report"| node_excel
node_ticket_controller -->|"exports report"| node_excel
node_income_controller -->|"exports report"| node_excel
node_days_controller -->|"exports report"| node_excel
node_pension_income_controller -->|"exports report"| node_excel
node_pension_controller -->|"exports report"| node_excel
node_changes_controller -->|"exports report"| node_excel
node_user_admin_view -->|"manages users"| node_user_admin_controller
node_report_user_view -->|"manages users"| node_report_user_controller

click node_main "https://github.com/noe-zm28/panel-administracion/blob/main/main.py"
click node_login_view "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_login.py"
click node_login_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_login.py"
click node_connection_view "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_select_conection.py"
click node_connection_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_select_conection.py"
click node_connection_manage "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_manejar_conexiones.py"
click node_report_select_view "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_select_report.py"
click node_report_select_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_select_report.py"
click node_user_admin_view "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_crud_usuarios_tpv.py"
click node_user_admin_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_crud_usuarios_tpv.py"
click node_report_user_view "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_crud_usuarios_reportes.py"
click node_report_user_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_crud_usuarios_reportes.py"
click node_general_view "https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_panel_general.py"
click node_general_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_general.py"
click node_ticket_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_boletos_ingresos.py"
click node_income_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_ingresos.py"
click node_days_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_dias.py"
click node_pension_income_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_ingresos_pensiones.py"
click node_pension_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_pensinados.py"
click node_changes_controller "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_cambios_sistema.py"
click node_panel_views "https://github.com/noe-zm28/panel-administracion/tree/main/Views"
click node_queries "https://github.com/noe-zm28/panel-administracion/blob/main/Models/queries.py"
click node_database "https://github.com/noe-zm28/panel-administracion/blob/main/Models/database.py"
click node_db_config "https://github.com/noe-zm28/panel-administracion/blob/main/Config/config_database.py"
click node_email "https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_email.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_main,node_login_view,node_login_controller,node_connection_view,node_connection_controller,node_connection_manage,node_report_select_view,node_report_select_controller toneBlue
class node_user_admin_view,node_user_admin_controller,node_report_user_view,node_report_user_controller,node_mysql toneAmber
class node_general_view,node_general_controller,node_ticket_controller,node_income_controller,node_days_controller,node_pension_income_controller,node_pension_controller,node_changes_controller,node_panel_views toneMint
class node_queries,node_database,node_db_config,node_email toneRose
class node_operator,node_config_files,node_excel toneIndigo
```

## Components

### Entry and access

- [Application entry](https://github.com/noe-zm28/panel-administracion/blob/main/main.py): `main.py`
- [Login screen](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_login.py): `Views/view_login.py`
- [Login controller](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_login.py): `Controller/controller_login.py`
- [Connection selection](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_select_conection.py): `Views/view_select_conection.py`
- [Connection controller](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_select_conection.py): `Controller/controller_select_conection.py`
- [Manage connections](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_manejar_conexiones.py): `Views/view_manejar_conexiones.py`
- [Report selection](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_select_report.py): `Views/view_select_report.py`
- [Report selector](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_select_report.py): `Controller/controller_select_report.py`

### Administration

- [User administration](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_crud_usuarios_tpv.py): `Views/view_crud_usuarios_tpv.py`
- [TPV user controller](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_crud_usuarios_tpv.py): `Controller/controller_crud_usuarios_tpv.py`
- [Report-user administration](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_crud_usuarios_reportes.py): `Views/view_crud_usuarios_reportes.py`
- [Report-user controller](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_crud_usuarios_reportes.py): `Controller/controller_crud_usuarios_reportes.py`

### Parking reports

- [General report UI](https://github.com/noe-zm28/panel-administracion/blob/main/Views/view_panel_general.py): `Views/view_panel_general.py`
- [General report logic](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_general.py): `Controller/controller_panel_general.py`
- [Ticket reports](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_boletos_ingresos.py): `Controller/controller_panel_boletos_ingresos.py`
- [Income reports](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_ingresos.py): `Controller/controller_panel_ingresos.py`
- [Daily reports](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_dias.py): `Controller/controller_panel_dias.py`
- [Pension income](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_ingresos_pensiones.py): `Controller/controller_panel_ingresos_pensiones.py`
- [Pensioners](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_pensinados.py): `Controller/controller_panel_pensinados.py`
- [System changes](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_panel_cambios_sistema.py): `Controller/controller_panel_cambios_sistema.py`
- [Other report screens](https://github.com/noe-zm28/panel-administracion/tree/main/Views): `Views`

### Data access

- [Query operations](https://github.com/noe-zm28/panel-administracion/blob/main/Models/queries.py): `Models/queries.py`
- [Database access](https://github.com/noe-zm28/panel-administracion/blob/main/Models/database.py): `Models/database.py`
- [Connection configuration](https://github.com/noe-zm28/panel-administracion/blob/main/Config/config_database.py): `Config/config_database.py`
- [Email retrieval](https://github.com/noe-zm28/panel-administracion/blob/main/Controller/controller_email.py): `Controller/controller_email.py`

### Other components

- **Operator**
- **MySQL server**
- **Local configuration files**
- **Excel workbook**

## Connections

- Operator → Application entry: starts
- Application entry → Login screen: opens
- Operator → Login screen: enters credentials
- Login screen → Login controller: delegates login
- Connection selection → Connection controller: selects connection
- Connection selection → Manage connections: manages settings
- Report selection → Report selector: chooses report
- Report selector → Other report screens: opens panel
- General report UI → General report logic: submits filters
- General report logic → Query operations: requests records
- Ticket reports → Query operations: requests records
- Income reports → Query operations: requests records
- Daily reports → Query operations: requests records
- Pension income → Query operations: requests records
- Pensioners → Query operations: requests records
- System changes → Query operations: requests records
- Query operations → Database access: executes queries
- Database access → MySQL server: connects and queries
- Database access → Connection configuration: loads settings
- Connection configuration → Local configuration files: reads and writes
- Database access → Email retrieval: requests download
- General report logic → Excel workbook: exports report
- Ticket reports → Excel workbook: exports report
- Income reports → Excel workbook: exports report
- Daily reports → Excel workbook: exports report
- Pension income → Excel workbook: exports report
- Pensioners → Excel workbook: exports report
- System changes → Excel workbook: exports report
- User administration → TPV user controller: manages users
- Report-user administration → Report-user controller: manages users
