# Monitor de Sistema Avanzado (Python/Tkinter) Aplicación de escritorio multiplataforma para el monitoreo en tiempo real de recursos del sistema (CPU, Memoria, Red, Disco), complementada 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 especializadas como **psutil** y **matplotlib**. ------------------------------------------------------------------------ ## Enlace 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:** CPU (total y cores), memoria, disco y red. - **Gestión de Procesos:** Vista detallada, con opción de finalización segura en segundo plano. - **Alarmas Inteligentes:** Por hora o por umbrales de recursos (ej. alerta por CPU \> 90%). - **Web Scraping Integrado:** Extracción por selectores CSS usando *requests* + *BeautifulSoup*. - **Utilidades Extra:** - Reproductor de audio (pygame) - Bloc de Notas - Juego "Carrera de Camellos" - Sistema de Backup automático ------------------------------------------------------------------------ ## 🖼️ 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 ``` ### 3. Instalar Dependencias ``` bash pip install psutil matplotlib numpy pygame requests beautifulsoup4 ``` **Librería \| Propósito** - `psutil` -- Métricas del sistema (CPU, RAM, Procesos...) - `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 ``` bash 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` Incluye: - Rutas importantes\ - Buffers de datos\ - Flags de control\ - Widgets compartidos ------------------------------------------------------------------------ ### `ui_layout.py` Construye: - Menú superior\ - Panel lateral\ - Área de gráficos\ - Pestañas funcionales ------------------------------------------------------------------------ ### `monitor_manager.py` Función Descripción ------------------------------ ------------------------------------ `actualizar_resumen_lateral` Datos generales + recursos rápidos `actualizar_datos_graficos` Obtiene métricas desde psutil `actualizar_graficos` Renderiza de nuevo los gráficos `guardar_registro_csv` Escribe métricas en archivo CSV `mostrar_procesos` Lista los procesos activos `terminar_proceso` Finaliza procesos de forma segura ------------------------------------------------------------------------ ### `system_utils.py` Incluye: #### Registro - `log_event`\ - `bytes_a_human_readable` #### Alarmas - `cargar_alarmas` / `guardar_alarmas` - `comprobar_alarmas` #### Web Scraping - `iniciar_scraping` - `scraping_logica_web` #### Música - `reproducir_mp3` - `detener_mp3` - `ajustar_volumen_mp3` #### Extras - Juego "Carrera de Camellos" - Bloc de Notas - Sistema de Backup (`backup_script.sh`)