Go to file
luka f4fc209f22 Actualizar README.md 2026-02-27 17:50:28 +00:00
Copias_Backup Video añadido y readmy acabado 2025-12-08 10:47:21 +01:00
__pycache__ Proyecto acabado 2026-02-27 12:21:17 +01:00
data Proyecto acabado 2026-02-27 12:21:17 +01:00
README.md Actualizar README.md 2026-02-27 17:50:28 +00:00
backup_script.sh Actualizar backup_script.sh 2025-12-08 10:37:32 +00:00
config.py Proyecto acabado 2026-02-27 12:21:17 +01:00
image.png Actualizado el contenido del READMY.md 2025-12-06 20:32:05 +01:00
monitor_manager.py Version FInal 2025-12-06 19:09:50 +01:00
proyecto.py Version FInal 2025-12-06 19:09:50 +01:00
system_utils.py Proyecto acabado 2026-02-27 12:21:17 +01:00
ui_layout.py Proyecto acabado 2026-02-27 12:21:17 +01:00

README.md

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:

# Monitor de Sistema Avanzado - TFG (Python/Tkinter)

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. 

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).

------------------------------------------------------------------------

## 🔗 Enlaces al Video Explicativo
**En Drive**:
https://drive.google.com/file/d/1mqQ41Z2r3j3VkGJUgI2dmPMIH5i2lHNq/view?usp=sharing

**En YouTube:**
https://youtu.be/efW9_IRp9UY

------------------------------------------------------------------------

## ✨ Características Destacadas

-   **Gráficos en Tiempo Real:** Monitorización de CPU (total y cores), memoria, E/S de disco y tráfico de red.
-   **Gestión de Procesos:** Vista detallada de procesos activos, con opción de finalización segura en segundo plano.
-   **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.
-   **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**.
-   **Web Scraping Integrado:** Extracción inteligente de datos por selectores CSS usando *requests* + *BeautifulSoup*, con soporte para cargar configuraciones vía JSON.
-   **Alarmas Inteligentes:** Programación de alarmas por hora con reproducción de sonido personalizado.
-   **Utilidades Extra:**
    -   Reproductor de audio integrado (`pygame`).
    -   Bloc de Notas local.
    -   Simulación de Juego "Carrera de Camellos" (Thread-Safe).
    -   Sistema automático de Backup en `.zip` vía script Bash.

------------------------------------------------------------------------

## 🖼️ Captura de Pantalla

![alt text](image.png)

------------------------------------------------------------------------

## ⚙️ Instalación y Requisitos

### 1. Requisitos del Sistema

-   Python **3.8+**
-   Git
-   Compatible con **Windows**, **macOS** y **Linux**

### 2. Clonar el Repositorio

```bash
git clone [https://git.ieslamar.org/luka/ProyectoPHP](https://git.ieslamar.org/luka/ProyectoPHP)

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:

pip install psutil matplotlib numpy pygame requests beautifulsoup4

Librería | Propósito - psutil -- Métricas del sistema (CPU, RAM, Procesos Zombi...)

  • matplotlib + numpy -- Renderizado de gráficos en tiempo real
  • pygame -- Música y sonidos de alarma
  • requests + bs4 -- Web Scraping por selectores CSS

4. Ejecutar la Aplicación

python proyecto.py


📁 Estructura del Proyecto

proyecto.py

  • Punto de entrada de la aplicación.
  • Inicializa la ventana (tk.Tk()) y construye la UI mediante ui_layout.crear_ui_completa(root).

config.py

Archivo central de configuración que incluye:

  • 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

Motor visual de la aplicación. Construye:

  • 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

Función Descripción
actualizar_resumen_lateral Datos generales (OS, Uptime)
actualizar_metricas Obtiene métricas desde psutil en un hilo
dibujar_graficos Renderiza y actualiza los subplots
manejar_registro_csv Escribe métricas en archivo CSV
actualizar_process_treeview Lista los procesos activos
terminar_proceso Finaliza procesos de forma segura

system_utils.py

Contiene toda la lógica de negocio secundaria de la aplicación, separada por bloques:

Comunicaciones y Red (NUEVO)

  • inicializar_chat(): Controla instancias por sockets para vaciar el historial.
  • 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.

Registro y Utilidades

  • log_event / bytes_a_human_readable

Alarmas y Música

  • cargar_alarmas / guardar_alarmas / verificar_alarma
  • reproducir_mp3 / detener_mp3 / ajustar_volumen_alarma

Web Scraping y Archivos

  • scrappear_pagina_principal
  • Bloc de Notas local
  • Sistema de Backup (backup_script.sh)