Actualizar README.md

This commit is contained in:
luka 2026-02-27 17:50:28 +00:00
parent df0f6059ee
commit f4fc209f22
1 changed files with 76 additions and 72 deletions

142
README.md
View File

@ -1,17 +1,15 @@
# Monitor de Sistema Avanzado (Python/Tkinter) Tienes toda la razón, fallo mío al delimitar el bloque de código. Aquí tienes el contenido íntegro y limpio, exactamente como debe ir, listo para que le des a copiar y pegar directamente en tu archivo `README.md`:
Aplicación de escritorio multiplataforma para el monitoreo en tiempo ```markdown
real de recursos del sistema (CPU, Memoria, Red, Disco), complementada # Monitor de Sistema Avanzado - TFG (Python/Tkinter)
con funciones avanzadas como administración de procesos, alarmas
programables, web scraping y utilidades adicionales (Juego, Música,
Notas, Backup).
Desarrollada en **Python 3.x** usando **tkinter**, junto con librerías Aplicación de escritorio multiplataforma orientada al monitoreo en tiempo real de recursos del sistema (CPU, Memoria, Red, Disco), complementada con herramientas de red avanzadas y utilidades integradas.
especializadas como **psutil** y **matplotlib**.
Desarrollada en **Python 3.x** usando **tkinter** con una interfaz moderna (fuentes personalizadas y temas `ttk`), junto con librerías especializadas como **psutil** y **matplotlib**, y comunicaciones por red (Sockets, SMTP, IMAP).
------------------------------------------------------------------------ ------------------------------------------------------------------------
## Enlace al Video Explicativo ## 🔗 Enlaces al Video Explicativo
**En Drive**: **En Drive**:
https://drive.google.com/file/d/1mqQ41Z2r3j3VkGJUgI2dmPMIH5i2lHNq/view?usp=sharing https://drive.google.com/file/d/1mqQ41Z2r3j3VkGJUgI2dmPMIH5i2lHNq/view?usp=sharing
@ -20,22 +18,19 @@ https://youtu.be/efW9_IRp9UY
------------------------------------------------------------------------ ------------------------------------------------------------------------
## ✨ Características Destacadas ## ✨ Características Destacadas
- **Gráficos en Tiempo Real:** CPU (total y cores), memoria, disco y - **Gráficos en Tiempo Real:** Monitorización de CPU (total y cores), memoria, E/S de disco y tráfico de red.
red. - **Gestión de Procesos:** Vista detallada de procesos activos, con opción de finalización segura en segundo plano.
- **Gestión de Procesos:** Vista detallada, con opción de finalización - **Chat Local Multipípedo (IPC):** Sistema de comunicación entre múltiples procesos/ventanas de la aplicación en el mismo equipo, usando *sockets* locales (puerto 54321) y lectura concurrente de archivos compartidos.
segura en segundo plano. - **Cliente de Correo Electrónico:** Gestor interno con inicio de sesión seguro, envío de correos vía **SMTP** (tolerante a Relay abierto) y lectura de la bandeja de entrada sincronizada mediante **IMAP**.
- **Alarmas Inteligentes:** Por hora o por umbrales de recursos (ej. - **Web Scraping Integrado:** Extracción inteligente de datos por selectores CSS usando *requests* + *BeautifulSoup*, con soporte para cargar configuraciones vía JSON.
alerta por CPU \> 90%). - **Alarmas Inteligentes:** Programación de alarmas por hora con reproducción de sonido personalizado.
- **Web Scraping Integrado:** Extracción por selectores CSS usando
*requests* + *BeautifulSoup*.
- **Utilidades Extra:** - **Utilidades Extra:**
- Reproductor de audio (pygame) - Reproductor de audio integrado (`pygame`).
- Bloc de Notas - Bloc de Notas local.
- Juego "Carrera de Camellos" - Simulación de Juego "Carrera de Camellos" (Thread-Safe).
- Sistema de Backup automático - Sistema automático de Backup en `.zip` vía script Bash.
------------------------------------------------------------------------ ------------------------------------------------------------------------
@ -56,96 +51,105 @@ https://youtu.be/efW9_IRp9UY
### 2. Clonar el Repositorio ### 2. Clonar el Repositorio
```bash ```bash
git clone https://git.ieslamar.org/luka/ProyectoPHP git clone [https://git.ieslamar.org/luka/ProyectoPHP](https://git.ieslamar.org/luka/ProyectoPHP)
``` ```
### 3. Instalar Dependencias ### 3. Instalar Dependencias
El sistema utiliza varias librerías de la biblioteca estándar (como `socket`, `smtplib`, `imaplib`, `threading`), pero requiere las siguientes dependencias externas:
```bash ```bash
pip install psutil matplotlib numpy pygame requests beautifulsoup4 pip install psutil matplotlib numpy pygame requests beautifulsoup4
``` ```
**Librería \| Propósito** - `psutil` -- Métricas del sistema (CPU, RAM, **Librería | Propósito** - `psutil` -- Métricas del sistema (CPU, RAM, Procesos Zombi...)
Procesos...) - `matplotlib` + `numpy` -- Renderizado de gráficos en
tiempo real - `pygame` -- Música y sonidos de alarma - `requests` + * `matplotlib` + `numpy` -- Renderizado de gráficos en tiempo real
`bs4` -- Web Scraping por selectores CSS * `pygame` -- Música y sonidos de alarma
* `requests` + `bs4` -- Web Scraping por selectores CSS
### 4. Ejecutar la Aplicación ### 4. Ejecutar la Aplicación
```bash ```bash
python proyecto.py python proyecto.py
``` ```
------------------------------------------------------------------------ ---
## 📁 Estructura del Proyecto ## 📁 Estructura del Proyecto
### `proyecto.py` ### `proyecto.py`
- Punto de entrada de la aplicación. * Punto de entrada de la aplicación.
- Inicializa la ventana (`tk.Tk()`) y construye la UI mediante * Inicializa la ventana (`tk.Tk()`) y construye la UI mediante `ui_layout.crear_ui_completa(root)`.
`ui_layout.crear_ui_completa(root)`.
------------------------------------------------------------------------ ---
### `config.py` ### `config.py`
Incluye: - Rutas importantes\ Archivo central de configuración que incluye:
- Buffers de datos\
- Flags de control\
- Widgets compartidos
------------------------------------------------------------------------ * Rutas importantes y variables globales.
* Buffers de datos para gráficos.
* Credenciales y configuración de red (IPs de servidor de correo, puertos SMTP/IMAP).
* Flags de control de estado e hilos.
---
### `ui_layout.py` ### `ui_layout.py`
Construye: - Menú superior\ Motor visual de la aplicación. Construye:
- Panel lateral\
- Área de gráficos\
- Pestañas funcionales
------------------------------------------------------------------------ * Menú superior y panel lateral de estado.
* Área de gráficos renderizada con Matplotlib.
* Pestañas funcionales (Monitor, Alarmas, Notas, Scraping, Juegos, Música, **Chat Local** y **Correo**).
* Aplica el tema moderno (`clam`) y gestiona las tipografías (*Marko One*, *Trirong*, *Nunito*).
---
### `monitor_manager.py` ### `monitor_manager.py`
Función Descripción Función | Descripción
------------------------------ ------------------------------------ ------------------------------ | ------------------------------------
`actualizar_resumen_lateral` Datos generales + recursos rápidos `actualizar_resumen_lateral` | Datos generales (OS, Uptime)
`actualizar_datos_graficos` Obtiene métricas desde psutil `actualizar_metricas` | Obtiene métricas desde psutil en un hilo
`actualizar_graficos` Renderiza de nuevo los gráficos `dibujar_graficos` | Renderiza y actualiza los *subplots*
`guardar_registro_csv` Escribe métricas en archivo CSV `manejar_registro_csv` | Escribe métricas en archivo CSV
`mostrar_procesos` Lista los procesos activos `actualizar_process_treeview` | Lista los procesos activos
`terminar_proceso` Finaliza procesos de forma segura `terminar_proceso` | Finaliza procesos de forma segura
------------------------------------------------------------------------ ---
### `system_utils.py` ### `system_utils.py`
Incluye: Contiene toda la lógica de negocio secundaria de la aplicación, separada por bloques:
#### Registro #### Comunicaciones y Red (NUEVO)
- `log_event`\ * `inicializar_chat()`: Controla instancias por sockets para vaciar el historial.
- `bytes_a_human_readable` * `enviar_mensaje_chat()` / `monitor_chat_file()`: Lógica del chat (IPC).
* `comprobar_login_correo()`: Validación inicial de credenciales.
* `enviar_correo()`: Lógica SMTP con bypass de errores 535 en red local.
* `cargar_correos()`: Lógica IMAP segura con limpieza de conexión.
#### Alarmas #### Registro y Utilidades
- `cargar_alarmas` / `guardar_alarmas` * `log_event` / `bytes_a_human_readable`
- `comprobar_alarmas`
#### Web Scraping #### Alarmas y Música
- `iniciar_scraping` * `cargar_alarmas` / `guardar_alarmas` / `verificar_alarma`
- `scraping_logica_web` * `reproducir_mp3` / `detener_mp3` / `ajustar_volumen_alarma`
#### Música #### Web Scraping y Archivos
- `reproducir_mp3` * `scrappear_pagina_principal`
- `detener_mp3` * Bloc de Notas local
- `ajustar_volumen_mp3` * Sistema de Backup (`backup_script.sh`)
#### Extras ```
- Juego "Carrera de Camellos" ```
- Bloc de Notas
- Sistema de Backup (`backup_script.sh`)