4.8 KiB
4.8 KiB
Proyecto PSP — Interfaz de utilidades (Tkinter)
Enlace al video explicativo de la interfaz
Descarga: https://we.tl/t-IvY8pi641e Expira el 11 de diciembre YouTube: https://youtu.be/z6CQhWgzbgs
Descripción
Aplicación de escritorio en Python que agrupa varias utilidades en una sola interfaz: navegador, scraping, monitor de recursos, copias de seguridad, reproductor de audio, alarmas y una mini‑app (carreras). La GUI está implementada con Tkinter y aprovecha módulos opcionales para funcionalidades avanzadas.
Estructura del repositorio
proyecto.py— Código fuente principal con la GUI y todas las utilidades.backup/— Carpeta destino para copias de seguridad generadas por la app.scrapping/— Carpeta donde se guardan resultados de scraping.__pycache__/— Caché de Python (no versionar).
Requisitos
- Python 3.8+
- Dependencias requeridas:
- psutil
- Dependencias opcionales (habilitan funcionalidades extra):
- requests, beautifulsoup4 — scraping y OpenWeather
- matplotlib — monitor de recursos en ventana gráfica
- pygame — reproducción de audio local (fallback a
afplayen macOS)
Instalación (recomendado con entorno virtual)
python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install psutil
# opcionales según uso:
pip install requests beautifulsoup4 matplotlib pygame
Ejecución
python proyecto.py
La aplicación abrirá la ventana principal; desde ella se accede a todas las utilidades.
Características principales
- Visualización y actualización de fecha/hora: función
proyecto.update_time - Abrir navegador (directo o por diálogo):
proyecto.launch_browser,proyecto.launch_browser_prompt - Ejecutar script PowerShell y backup de archivos/carpetas:
proyecto.run_backup_script,proyecto._copy_path_to_backup,proyecto.backup_ui - Scraping web y guardado en
scrapping/:proyecto.scrape_url - Consulta OpenWeather (persistencia de API key):
proyecto.fetch_weather_xabia, borrar key conproyecto.clear_openweather_key - Monitor de recursos con matplotlib (si instalado):
proyecto.open_resource_window - Reproductor de música (pygame o afplay):
proyecto.play_music_file, parada conproyecto.stop_music - Alarmas programables:
proyecto.set_alarm_minutes, cancelar conproyecto.cancel_alarm - Juego de carreras (canvas):
proyecto.open_game_race - Abrir aplicaciones macOS con
open:proyecto.launch_app - Monitor de red en la barra de estado:
proyecto.network_monitor
Configuración y datos sensibles
- OpenWeather API key (opcional) se guarda en:
$HOME/.config/proyecto/openweather.key
Usa la opción "Borrar OpenWeather Key" en la UI o la funciónproyecto.clear_openweather_keypara eliminarla. - Carpetas
backup/yscrapping/se crean automáticamente al usar las utilidades correspondientes.
Buenas prácticas y recomendaciones
- Añadir
.gitignorepara excluir__pycache__/,.venv/y ficheros de configuración local. - Mantener un
requirements.txtopyproject.tomlpara el control de dependencias. - Separar funcionalidades en módulos (p. ej.
ui.py,utils/backup.py,utils/scrape.py) para mejorar mantenibilidad. - Añadir tests unitarios y/o pruebas de integración manuales para las utilidades críticas.
Propuestas de archivo adicional sugerido
.gitignore(ejemplo mínimo):
__pycache__/
.venv/
*.pyc
*.key
requirements.txt(sugerido):
psutil
requests
beautifulsoup4
matplotlib
pygame
Contribuir
- Abrir un issue describiendo el bug o la mejora.
- Hacer fork y branch con nombre descriptivo.
- Añadir cambios y pruebas manuales.
- Enviar pull request con descripción y pasos para reproducir.
Solución de problemas comunes
- Si falta
matplotlibverás advertencia: instalapip install matplotlib. - Para reproducción de audio en macOS se usa
afplaycomo fallback; en Linux/Windows proporcionapygame. - Si la consulta a OpenWeather devuelve 401, la app pregunta si quieres borrar la key persistida y reintroducirla.
Licencia
Añade un archivo LICENSE según la política del proyecto (ej. MIT, Apache‑2.0).
Contacto
Abrir un issue en este repositorio para dudas técnicas o propuestas de mejora.
