Saltar al contenido
Alejandro
Todos los proyectos

OpsAnalytics

Limpia y estandariza reportes de horas de personal que llegan de varias agencias y los deja listos para Looker Studio.

Entrada de registros y monitor de saneamiento con los errores del lote
Cliente
RR. HH. / operaciones de personal
Año
2026
Tipo
Herramienta interna
Mi rol
Diseño y desarrollo
Tecnología
React, TypeScript, Vite, Tailwind CSS, Python (script generado)
Demo
Navegable, con datos ficticios

El problema

Una operación de personal recibe cada semana los reportes de horas de varias agencias. Cada agencia escribe distinto el nombre de la misma tienda (con abreviaturas, sufijos y errores de digitación), los formatos de fecha cambian y aparecen horas imposibles, como un empleado con 13.000 horas en una semana. Antes de poder sumar o graficar nada, alguien tenía que limpiar esas filas a mano.

Para qué se hizo

Para que la persona que consolida las horas pegue el reporte tal como llega y reciba, en segundos, una tabla limpia: cada tienda y agencia con su nombre oficial, los errores señalados y un archivo listo para el tablero en Looker Studio.

Qué se construyó

  • Entrada flexible: pegar el texto o arrastrar el archivo, separado por punto y coma.
  • Estandarización automática de tiendas y agencias contra un catálogo maestro, tolerante a errores de escritura, con una sensibilidad que se puede ajustar.
  • Monitor de saneamiento que marca horas en formato inválido, valores fuera de rango y nombres que no se pudieron reconocer, con la opción de corregirlos a mano.
  • Resumen del lote: horas totales, personal activo, sedes y distribución por tienda y por agencia.
  • Historial de procesos guardado en el navegador y exportación para Looker Studio.
  • Generador de script en Python con el mismo proceso, para correrlo de forma automática fuera del navegador.

Cómo se construyó

  • Todo corre en el navegador. Los datos del personal no se suben a ningún servidor: se procesan en el equipo de quien usa la herramienta.
  • Emparejamiento aproximado (fuzzy matching): compara cada nombre con el catálogo oficial y decide por parecido, no por coincidencia exacta; por eso una tienda mal escrita termina en su nombre correcto.
  • React y TypeScript con Tailwind para la interfaz; el script de Python usa pandas para quien prefiera automatizar.

Resultado

[CONFIRMAR] ¿Para quién fue y cuánto tiempo de limpieza manual ahorra por semana? La interfaz dice "Efectividad I.A.", pero el emparejamiento es por reglas y parecido de texto: ¿lo describimos así?

Qué puede ver en la demo

La herramienta completa con un lote de ejemplo ya cargado. Los nombres de empleados, tiendas y agencias son inventados. Lo que agregue o corrija se queda solo en su navegador.

Qué probar en la demo

  1. El lote de ejemplo ya viene pegado: mire el monitor de saneamiento a la derecha.
  2. Corrija a mano una tienda o agencia que el sistema no reconoció.
  3. En «Datos maestros» agregue una tienda oficial y mueva la sensibilidad del emparejamiento.
  4. Abra «Script Python» para ver el mismo proceso listo para automatizar.

Pantallas

Recorrido en video

Siguiente proyecto

AsistenciaSoft

Convierte el reporte del reloj biométrico en horas por empleado y un Excel listo para nómina.

Abrir la demoCompartir