← Volver a proyectos

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.