Santiago Valencia Vera.
Todos los sistemas

Gestor de información de producto textil

Un sistema de información de producto para textiles, construido sobre un modelo relacional profundo. Genera fichas técnicas listas para imprimir bajo demanda, en dos formatos y dos idiomas.

01El problema

Las especificaciones de tela vivían en hojas de cálculo y en la cabeza de quienes las mantenían. Cada ficha técnica se diagramaba a mano en una herramienta de diseño, así que corregir una composición o una instrucción de cuidado implicaba reabrir y reexportar cada documento, y la versión que recibía un cliente rara vez era la vigente.

02Arquitectura
Esquema de arquitectura del gestor de producto textil: modelo relacional a través de un ORM y fichas técnicas renderizadas bajo demanda por un navegador sin interfaz.

El modelo de datos es el producto. Los textiles tienen relaciones reales que modelar: composiciones, acabados, requisitos de cuidado, clasificaciones comerciales y líneas de negocio, cada una con sus propias restricciones. Todo eso vive como enumeraciones y relaciones tipadas en Postgres, definidas una sola vez en un esquema que comparten la aplicación y su validación, así que no se puede escribir un registro inválido desde ninguna pantalla. Las vistas grandes del catálogo están virtualizadas para que navegar miles de registros siga siendo fluido.

Las fichas técnicas se generan bajo demanda en vez de almacenarse. La ruta renderiza una página interna con estilos de impresión en un navegador sin interfaz y devuelve un documento paginado. La instancia del navegador se reutiliza entre solicitudes, porque levantar una por solicitud es la diferencia entre una respuesta rápida y un tiempo agotado. Existen dos variantes de ficha para audiencias distintas, y ambas se renderizan en cualquiera de los dos idiomas desde los mismos datos, lo que elimina por completo el paso manual de diagramación.

03Stack

Stack

  • Next.js
  • TypeScript
  • Drizzle ORM
  • Postgres
  • Zod
  • Playwright
  • Tailwind CSS
  • Docker

Integraciones

  • Supabase Auth
  • Supabase Storage
  • Spreadsheet import
04Decisiones

Renderizar documentos desde una página viva en lugar de componerlos con una librería de documentos fue un intercambio deliberado. Significa que la ficha se estiliza con las mismas herramientas que el resto de la interfaz, y quien diseña puede ajustar el diagrama sin tocar el código de generación. El costo es un entorno de ejecución más pesado, y por eso el navegador se comparte y la ruta valida el registro antes de gastar uno.

Las fichas se generan por solicitud en vez de cachearse en almacenamiento. Para este catálogo el render es lo bastante rápido, un documento desactualizado era el riesgo mayor, y así se elimina toda una clase de errores de invalidación.

02 — Próximo proyecto

Tracemos la ruta.

santiagovalenciavera@gmail.com · Abierto a roles senior y proyectos seleccionados