Laboratorio interactivo construido con Python 3.13 + Tkinter. Reúne scraping, monitorización, chat TCP, alarmas, reproductor musical y utilidades varias en una única aplicación de escritorio. ## 🎬 Demo en video - YouTube: https://youtu.be/HgJwU_HagD8 - Drive: https://drive.google.com/file/d/14wGkkyZ9ASbV__O2xp1zIZJxSA6gpJoF/view?usp=sharing ## Foto image ## 🚀 Características clave - **Layout triple panel**: accesos rápidos a la izquierda, notebook central con pestañas temáticas y panel derecho para chat y utilidades. - **Scraping Wallapop + genérico**: asistentes emergentes, validaciones y guardado de resultados. - **Monitor de sistema**: gráficas en vivo de CPU, RAM e hilos gracias a psutil y matplotlib embebido. - **Productividad integrada**: bloc de notas, gestor de alarmas, reproductor musical con pygame y lanzadores de procesos. - **Popup meteorológico**: consulta OpenWeather para Jávea con caché y resumen formateado. - **Servidor TCP incluido**: `servidor.py` permite pruebas de chat broadcast desde la propia app. ## ⚙️ Requisitos - Python 3.8 o superior (desarrollado en 3.13) - Dependencias listadas en `requirements.txt` ```sh pip install -r requirements.txt ``` ## ▶️ Puesta en marcha 1. (Opcional) Inicia el servidor de chat: ```sh python3 servidor.py ``` 2. Lanza el panel principal: ```sh python3 app.py ``` 3. Usa el panel izquierdo para abrir scraping, notas, alarmas o el popup del clima; el panel derecho gestiona el chat y el reproductor. ## 🧱 Estructura del proyecto ``` app.py # GUI principal y lógica de negocio servidor.py # Servidor TCP broadcast para el chat requirements.txt # Lista de dependencias README.md # Documentación ``` ## 🛠️ Flujos destacados - **Scraping**: workers en segundo plano con colas y retroalimentación visual en la pestaña de resultados. - **Copias de seguridad**: selección interactiva de carpetas y reporte final con totales copiados/omitidos. - **Gestor de alarmas**: creación, cancelación y popups dedicados con recordatorio sonoro. - **Panel de recursos**: mezcla de gráficas lineales, de área y de barras para CPU/RAM/hilos. - **Popup “API Tiempo”**: resumen meteorológico en ventana modal con refresco bajo demanda. ## ⚙️ Configuración opcional - `OPENWEATHER_API_KEY` / `OPENWEATHER_FALLBACK_API_KEY`: claves para OpenWeather. - Variables `WALLAPOP_*`: encabezados y parámetros usados por el scraper. - Ajusta el host/puerto del chat en el panel derecho o modificando `SERVER_HOST_DEFAULT` y `SERVER_PORT_DEFAULT` en `app.py`. ## 📌 Próximos pasos sugeridos 1. Añadir almacenamiento persistente (SQLite) para chats y notas. 2. Incorporar pruebas unitarias para scraping y rutinas de backup. 3. Extender el reproductor musical con colas y visualizaciones. ¿Quieres ampliar alguna sección (scraping extra, nuevos paneles, automatización de tareas)? Adelante, la base está lista para seguir creciendo.