Control de Horas
Cliente real
Aplicación de gestión de jornadas laborales desarrollada para una empresa de construcción y pintura, con reglas de negocio y validaciones adaptadas a sus necesidades.
React · Java · Spring Boot · PostgreSQL


Capturas reales de la aplicación con datos de demostración ficticios
Contexto y problema
Una empresa vinculada a la construcción y la pintura necesitaba gestionar las jornadas laborales de su personal, que hasta entonces se controlaban en una hoja de cálculo, con reglas y validaciones adaptadas a su actividad.
Solución
Aplicación web con interfaz en React y backend en Java con Spring Boot, que guarda los datos en PostgreSQL. Registra las horas de cada trabajador por obra y día, con vista mensual y resúmenes por trabajador y por obra.
Arquitectura
La interfaz React se comunica con el backend Spring Boot, que aplica las reglas de negocio y guarda los datos en PostgreSQL. Las sesiones de usuario se mantienen en el servidor.
Decisiones técnicas y desafíos
Validaciones en el backend
Spring Boot valida en el servidor las reglas de duración y de fechas (intervalos de 15 minutos, máximo de 24 horas al día por trabajador y sin fechas futuras) y PostgreSQL añade restricciones sobre los datos, para mantener la consistencia de los registros.
Gestión de jornadas
Las horas se registran por trabajador, obra y día, en intervalos de 15 minutos y con una observación opcional. Si el total diario de un trabajador supera las 12 horas, la aplicación pide confirmación.
Sesiones en el servidor
Spring Security gestiona la autenticación y las sesiones se almacenan en PostgreSQL mediante Spring Session, con caducidad por inactividad y absoluta.
Resultado
Aplicación desarrollada para un cliente real y preparada para su puesta en marcha, con las reglas de negocio y validaciones específicas de la empresa implementadas.