Horas Claras

Horas Claras nació de un problema bastante simple: Ariel, un amigo y compañero de la facu, y yo necesitábamos registrar nuestras horas de trabajo, pero solo yo tenía acceso a Jira para cargarlas. Él llevaba sus horas en un Excel, yo anotaba las mías en un TXT y, al final del mes, tenía que cruzar ambos archivos con Jira para comprobar que todo coincidiera.

Desarrollé Horas Claras para reemplazar ese proceso por una sola aplicación donde los dos pudiéramos registrar nuestro trabajo y yo pudiera controlar qué horas seguían pendientes de cargar en Jira.

La instancia desplegada es privada y requiere autenticación.

Dashboard de Horas Claras

De tres lugares a un solo flujo

Antes
ArielExcel
NicoTXT
Cierre del mesrevisar Excel + TXT + Jira
Ahora
Registrar horas
Centralizar en Horas Claras
Revisar pendientes
Cargar en Jira

La solución

La idea no era construir un sistema enorme, sino eliminar las partes incómodas del proceso. Cada uno puede registrar y gestionar sus propias horas, consultar el trabajo realizado y mantener identificado qué todavía falta trasladar a Jira.

Para mí, además, existe una vista global desde la que puedo revisar los registros de ambos y marcar los que ya fueron cargados. El dashboard completa el flujo con métricas y una lectura rápida del período.

Registro de horas en Horas Claras

Decisiones que importan

Resolver el problema, no sobredimensionarlo

Horas Claras necesitaba ser una herramienta pequeña y fácil de mantener. Elegí una arquitectura suficiente para el problema real, sin sumar un backend independiente ni infraestructura que el proyecto no necesitaba.

Permisos que representan el uso real

Los dos usuarios no necesitan hacer lo mismo. Cada uno puede gestionar sus registros, mientras que el rol administrador tiene la visión global y puede marcar qué horas ya fueron cargadas en Jira. Los permisos no dependen únicamente de la interfaz: también están respaldados mediante Row Level Security en Supabase.

Aprender resolviendo algo real

Fue también mi primera experiencia trabajando con Supabase. En lugar de aprenderlo construyendo un ejemplo descartable, lo incorporé mientras resolvía una necesidad que ya teníamos y que después íbamos a utilizar de verdad.

De herramienta improvisada a herramienta real

Lo que empezó como un TXT, un Excel y una revisión manual a fin de mes terminó convirtiéndose en una aplicación que Ariel y yo usamos para gestionar nuestras horas de trabajo.

El MVP está completo y desplegado. La instancia de uso real permanece protegida por autenticación, mientras que el código del proyecto es público y puede consultarse en GitHub.

Tecnologías

  • Next.js
  • React
  • TypeScript
  • CSS Modules
  • Supabase Auth
  • PostgreSQL
  • Row Level Security
  • Vercel