|
|
||
|---|---|---|
| Copias_Backup | ||
| __pycache__ | ||
| data | ||
| README.md | ||
| backup_script.sh | ||
| config.py | ||
| image.png | ||
| monitor_manager.py | ||
| proyecto.py | ||
| system_utils.py | ||
| ui_layout.py | ||
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
.zipvía script Bash.
- Reproductor de audio integrado (
🖼️ Captura de Pantalla
⚙️ Instalación y Requisitos
1. Requisitos del Sistema
- Python 3.8+
- Git
- Compatible con Windows, macOS y Linux
2. Clonar el Repositorio
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 realpygame-- Música y sonidos de alarmarequests+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 medianteui_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_alarmareproducir_mp3/detener_mp3/ajustar_volumen_alarma
Web Scraping y Archivos
scrappear_pagina_principal- Bloc de Notas local
- Sistema de Backup (
backup_script.sh)
