Sistema de escritorio desarrollado en Python para la gestión, rotación y control de asistencia de personal en operaciones de campo bajo el esquema 21x10 (21 días de trabajo en campo / 10 días de descanso).
En operaciones de campo (minería, construcción, proyectos remotos), el personal suele trabajar bajo ciclos de rotación estrictos, como el 21x10. Gestionar esta rotación manualmente mediante hojas de cálculo o registros en papel presenta varios desafíos críticos:
- Cálculo manual propenso a errores: Determinar en qué día del ciclo se encuentra cada trabajador, si está en campo o descansando, y cuántos días le faltan para su relevo requiere cálculos constantes.
- Falta de alertas tempranas: Los supervisores no reciben notificaciones automáticas cuando un trabajador está próximo a cumplir sus 21 días, lo que puede generar retrasos en los relevos y fatiga laboral.
- Control de cobertura deficiente: Es difícil saber en tiempo real si se está cumpliendo con el número mínimo de personal requerido por puesto (ej. 2 Operadores, 1 Supervisor) en el lote.
- Histórico desorganizado: Registrar ingresos y salidas del lote en formatos no estructurados impide generar reportes fiables para Recursos Humanos y operaciones.
Esta aplicación digitaliza y automatiza el control de rotación de personal. Permite registrar el ingreso y salida de cada trabajador al lote, calcula automáticamente su estado actual (en campo o descansando), muestra alertas visuales cuando el ciclo está por terminar y genera reportes instantáneos de cobertura operativa. Por eso desarrollé un sistema automatizado en Python que calcula automáticamente el estado de cada trabajador, genera alertas 7 días antes del relevo y reporta cobertura en tiempo real.
Vista Principal - Tabla de Control de Personal

Reporte de Cobertura en Campo

Interfaz principal con la tabla de empleados y sus estados
Visualización del personal en campo vs. requerido
Carga masiva de empleados desde archivo CSV
Formulario para registrar movimiento del personal

- 🔄 Cálculo Automático de Ciclos: Algoritmo preciso que calcula el día exacto del ciclo 21x10 basándose en la fecha de inicio o el último ingreso registrado.
⚠️ Sistema de Alertas: Resaltado automático en color ámbar cuando a un trabajador le faltan 7 días o menos para terminar su turno en campo.- ✅ Registro de Ingreso/Salida: Botones dedicados para registrar el movimiento del personal al lote, reiniciando el ciclo de 21 días automáticamente.
- 📊 Reporte de Cobertura en Tiempo Real: Visualización instantánea de si se cumple con el personal mínimo requerido por puesto (Operadores, Supervisores, etc.).
- 📂 Importación Masiva vía CSV: Carga rápida de múltiples empleados desde un archivo CSV, con validación automática de duplicados.
- 🌙 Interfaz Moderna (Dark Mode): UI limpia, profesional y con botones deslizables para optimizar el espacio en pantalla.
- 🛡️ Prevención de Errores: Validaciones de formularios, control de ventanas duplicadas y consultas SQL parametrizadas para evitar inyecciones.
- Python 3.8 o superior
- No requiere instalación de librerías externas (usa librerías estándar:
tkinter,sqlite3,csv,datetime).
-
Clona o descarga el repositorio:
git clone https://github.com/javi1942/sisyrma_lite.git cd sisyrma_lite