TimeTrack es una aplicación de escritorio desarrollada en Python para registrar de forma automática y precisa las horas efectivas de trabajo por proyecto. Permite pausar la jornada manualmente o detectar inactividad (teclado/ratón) de más de 5 minutos para registrar pausas automáticas. Exporta los datos a Excel para su análisis.
- Lenguaje de programación: Python 3.11
- Interfaz gráfica: Tkinter
- Detección de inactividad:
pynput
- Base de datos: SQLite (
timetrack.db
) - Exportación: Excel (via
pandas
+openpyxl
) - Pruebas automatizadas: Pytest
- Control de versiones: Git + GitHub
- Editor de desarrollo: Visual Studio Code
- Gestión de ramas:
main
(producción) ydev
(desarrollo) - Empaquetado: PyInstaller para generar
.exe
- Gestión de tareas: Basado en metodología PMBOK
- Definir objetivo y alcance del proyecto
- Crear estructura de carpetas Clean Architecture
- Crear script
.bat
de inicialización - Crear
README.md
inicial - Documentar requisitos (PMBOK + plantilla SRS)
- Diagramas y documentación técnica (
/docs
)
- Definir arquitectura (Clean Architecture)
- Diseñar modelo de datos (SQLite)
- Identificar y listar librerías en
requirements.txt
- Documentar estructura del sistema y dependencias
- Registro por proyecto con inicio/parada manual
- Detección de inactividad con pausa automática (5 min)
- Gestión de múltiples proyectos por jornada
- Exportación diaria completa a Excel (
.xlsx
) - Persistencia local en SQLite con recuperación de sesión
- Pruebas unitarias con
pytest
(entidades, usecases y exportación) - Generación de ejecutable
.exe
con PyInstaller - Pruebas del
.exe
en entorno simulado cliente - Generación de archivo
instrucciones.txt
- Actualización y entrega del
README.md
final
registro_trabajo.exe
→ ejecutable principaltimetrack.db
→ base de datos local (se crea sola si no existe)instrucciones.txt
→ guía de uso para el cliente final
Este desarrollo se ha llevado a cabo como parte de un proyecto real de formación en Ingeniería de Software. Aplica buenas prácticas de arquitectura (Clean Architecture), diseño profesional, pruebas automatizadas y entrega funcional empaquetada.
Ha servido como un caso práctico para comprender cómo estructurar un proyecto real: desde documentación inicial hasta despliegue.