Sistema de tiempo y nómina
Registro de horas por proyecto y empleado con cálculo automático de pagos, reportes y control de feriados. Un problema aburrido, resuelto con la seriedad de un sistema financiero.
Problema
El registro de horas y el cálculo de pagos por proyecto se resuelve casi siempre igual: hojas de cálculo que alguien consolida a mano a fin de mes, con errores que cuestan dinero y discusiones que cuestan confianza.
Decisiones
Tratarlo como sistema financiero, no como formulario. Detrás de cada hora registrada hay un pago: el backend está escrito en Rust sobre PostgreSQL, con la misma disciplina de tipos y transacciones que exigiría un libro contable.
El cálculo vive en el servidor. Tarifas por proyecto, feriados, vacaciones y roles se resuelven en un solo lugar auditable — no en fórmulas repartidas por celdas que nadie versiona.
Reportes como ciudadanos de primera. Exportación a Excel y PDF por período, proyecto o empleado, porque el output real de un sistema de nómina es el documento que alguien firma.
Contrato OpenAPI documentado. La API se explora en Swagger y el frontend Angular consume tipos generados: el contrato es la fuente de verdad.
Resultado
En producción para gestión interna: registro diario, cierres de período sin consolidación manual y reportes que antes tomaban horas, en segundos.