Timora: control de jornadas y reportes
Timora ayuda a cada usuario a gestionar su historial de horas de trabajo con separación estricta por sesión. Incluye flujo completo de jornadas, proyectos, reportes y configuración de períodos en una arquitectura orientada a features.
Reto
Construir una app confiable para control diario de jornadas y pago por horas, con reglas de negocio configurables y aislamiento multiusuario por sesión.
Solución
Se implementó una arquitectura por features sobre Next.js App Router con Server Actions, servicios y repositorios sobre Prisma. Se incorporaron autenticación con Better Auth, validaciones Zod y cálculo automático de horas normales/extra por plantilla.
Resultados
- - Registro y edición de jornadas con cálculo de horas y pago en tiempo real
- - Gestion de plantillas/proyectos con reglas por usuario
- - Reportes exportables en CSV, PDF e imagen
- - Configuración flexible de períodos de trabajo por usuario
- - Base técnica lista para evolucionar con nuevos módulos
Ficha técnica del sistema
Resumen
Timora es una app web para control de jornadas, cálculo de pagos y reportes por usuario, con autenticación y arquitectura por dominios para mantener escalabilidad.
Qué problema resuelve
- - Centraliza registro de horas, pago y plantillas en un solo sistema
- - Estandariza cálculo de horas extra según reglas configurables
- - Asegura separacion de datos por usuario autenticado
- - Facilita decisiones con reportes por rango y proyecto
Stack y tecnologías
- - Next.js 15 + React 19 + TypeScript
- - Tailwind CSS v4 + componentes reutilizables
- - Prisma 7 + PostgreSQL
- - Better Auth (Prisma adapter)
- - Zod para validación en Server Actions
- - Zustand para notificaciones de cliente
Cómo está organizado
- - src/app: rutas, layouts, redirects y metadata
- - src/features: work-days, projects, reports, settings, auth, notifications
- - src/lib: auth, prisma y utilidades de infraestructura
- - Actions validan input y delegan reglas a services
- - Repositories encapsulan acceso Prisma
Flujo principal
- - Usuario entra a ruta protegida y se valida sesión en layout
- - UI invoca Server Action del feature correspondiente
- - Action valida con Zod y llama al service
- - Service aplica reglas y delega persistencia al repository
- - Repository ejecuta Prisma y retorna datos para render/feedback
Módulos clave
- - Work-days: alta/edición de jornadas y cálculo normal/extra con cutoff
- - Projects: plantillas por usuario con reglas de tarifa y multiplicador
- - Reports: analítica por rango/proyecto y exportación CSV/PDF/imagen
- - Settings: configuración de períodos y semana de inicio
- - Auth: login/registro, sesiones y guards reutilizables
Fortalezas
- - Arquitectura limpia y escalable por features
- - Reglas de negocio claras en capas service/repository
- - Experiencia de usuario cuidada con responsive y tokens de diseño
- - Flujo DevOps definido (CI, migraciones, hooks de calidad)
Riesgos / deuda técnica
- - Complejidad creciente de reglas de horas extra puede requerir motor dedicado
- - Dependencia de Server Actions exige disciplina en manejo de errores
- - Sin e2e robusto, algunos flujos críticos dependen de pruebas unitarias
- - Escenarios de concurrencia en edición de jornadas requieren monitoreo
¿Tienes un sistema que necesitas construir o mejorar?
Te ayudo a convertir tu necesidad en una solución técnica sólida, mantenible y alineada al negocio.