Panel de un cliente en Client Tracker: total de horas del mes, estimación de factura y listado de registros con su fecha y duración

El problema

Antes, el seguimiento de horas dependía demasiado de mí.

Para algunos clientes tenía que sacar el reporte de Toggl, subirlo a Drive y compartir el enlace junto con la factura.

Para otros llevaba una hoja de cálculo que actualizaba manualmente cada semana para que pudieran saber cuántas horas llevábamos consumidas.

No era complicado, pero sí repetitivo, incómodo y fácil de posponer.

La solución

Convertí ese seguimiento manual en un sistema al que cada cliente puede acceder cuando quiera.

Cada cliente tiene su propia URL y acceso privado. Desde ahí puede consultar las horas del mes, el detalle de los registros, cuándo se sincronizó por última vez y una estimación orientativa de factura.

Los datos se sincronizan con Toggl, así que el seguimiento deja de depender de que yo prepare nada manualmente.

Mi papel

Detecté la necesidad, planteé la solución y diseñé la experiencia. Estructuré el panel de administración, creé el acceso para clientes e integré Toggl.

También planteé la autenticación, la sincronización y el cálculo de la estimación: no me limité a montar una interfaz, diseñé el sistema completo alrededor de un problema real.

Seguridad

Contraseñas nunca expuestas al frontend, tokens HMAC, validación en servidor, RLS en base de datos y uso del service role únicamente en el lado servidor.

Resultado

Ahora el cliente puede ver cómo vamos en cualquier momento y yo ya no tengo que generar reportes, subir archivos ni mantener hojas de seguimiento a mano.

El sistema convierte una tarea administrativa repetitiva en algo que funciona prácticamente solo.

Empezó porque estaba cansada de hacer una cuenta. Terminó teniendo backend, autenticación, cron y API de Toggl. Lo normal.

Panel de administración de Client Tracker: bloque de sincronización con Toggl y listado de clientes con su URL e identificador
Desde administración se sincroniza el mes con Toggl y se gestionan los clientes, su URL y su tarifa.