25 de abril de 2026¶
El arranque de todo: la primera conversación formal donde puse en palabras cómo se audita hoy el inventario en Zavidoro, y las semanas que vinieron después cerrando, de a poco, las decisiones técnicas grandes del proyecto.
Primera reunión de relevamiento¶
Hoy fue la primera conversación formal sobre el proyecto. Me junté con William —que me acompaña en todo esto— a contarle de punta a punta cómo funciona hoy la auditoría de inventario en las tiendas de Zavidoro. La grabé entera y me quedé con la transcripción como material de trabajo, y menos mal, porque al volver a escucharla me di cuenta de cuánto se me escapaba al explicar.
Fue una charla bastante cruda, la verdad. Yo conozco el proceso de tanto vivirlo, y eso me jugó en contra: arrancaba a explicar desde la mitad —desde el Excel de diferencias— y William me frenaba para que empezara desde el problema, desde el inicio de todo. Tenía razón. Cuando una da por obvio el día a día, se saltea justo lo que alguien de afuera necesita para entender.
Lo que quedó claro del proceso actual:
- Un equipo externo llega a la tienda y lee el stock físico con lectores RFID.
- Ese software del proveedor escupe un Excel con la diferencia entre lo que dice el sistema (el stock de BAS) y lo que se leyó.
- Imprimimos ese Excel, lo repartimos en hojas entre los que estamos, y salimos a buscar físicamente los faltantes y sobrantes por la sala y el depósito.
- Lo que aparece se marca; lo que no aparece queda como faltante de verdad.
- Después se consolida todo a mano, se cargan los ajustes uno por uno en QUICK POS, se imprime el cierre, lo firma el encargado de tienda y se archiva.
Donde más se va el tiempo es en la búsqueda física y en la consolidación manual. Un inventario de una tienda grande, como las de Nike, puede llevar hasta tres días.
Dos cosas me costó transmitir y quedaron anotadas para no olvidar:
- El "mal entallado": no es un faltante común, es un egreso con un concepto distinto (un cambio de talla mal vendido). Tiene su propia lógica.
- La cuestión de las tallas y los SKU: cada talla es un código distinto, y eso complica la búsqueda de pares de calzado.
Quedó un pendiente grande, y William me lo marcó fuerte: necesito el Excel crudo del RFID, el original, no el que el equipo ya modificó borrando columnas. Sin esa estructura real no se puede diseñar el procesamiento. Me comprometí a conseguirlo.
Definición técnica del proyecto (25 de abril – 24 de mayo de 2026)¶
Estas semanas fueron de ir cerrando, de a poco, las decisiones grandes. No fue todo de una; fue ida y vuelta, descartando ideas y afinando otras. Resumo lo que terminó quedando:
- Stack. Mi primera idea fue armarlo con Expo para tener web y Android de una sola vez. La descartamos: la app es ante todo web (el panel de administración es de escritorio, y la parte de tienda corre en tablet), y Expo/React Native Web complica el CSS, la accesibilidad, el SSO y hasta el manejo del Excel. Quedó Next.js full-stack con sus Route Handlers como backend, PostgreSQL de base, Prisma como ORM y Docker Compose para desplegar en los servidores on-premise de la empresa.
- Autenticación. SSO con Microsoft Entra ID, tenant único, restringido al dominio
@zavidoro.com.py. Lo que yo llamaba "invitar usuarios" en realidad es un whitelist: la persona se autentica con Microsoft y la app verifica si ese correo está habilitado. Nada de Azure B2B, que era matar mosca a cañonazos. - Integración con QUICK POS. Revisamos el Swagger con calma. La API usa OAuth2 (grant tipo password) para el token, y al final la integración se reduce a tres operaciones: pedir token, emitir RemitoEgreso y emitir RemitoIngreso. Confirmé con el negocio los valores fijos: prefijo
099-0más el código de sucursal, conceptoAJU, destinoC, yFAL26por defecto para el despacho. No hace falta reconsultar stock, porque el stock de BAS ya viene en el Excel. - Modelo de datos. Lo fuimos armando entidad por entidad, con sus constraints en la base (no solo en el código). Salieron las tablas de tiendas, usuarios, sesiones de auditoría, miembros de la sesión, ítems, remitos, la relación ítem–remito, firmas y reportes. Una regla que me gustó: una sola sesión activa por tienda, forzada desde la propia base.
- Metodología. Quedó RUP, por requerimientos estables, cliente definido y necesidad de documentación formal. Encaja con una tesis.
- El nombre. Le dimos varias vueltas. Quería algo con "Q", por la línea de QUICK POS (como Qpay, que hizo un compañero). Entre Qstock y Qaudit me quedé con Qaudit, porque apunta al proceso —la auditoría— que es justo lo que el sistema hace.