Semsamex
Hundreds of workwear variants, and a product key nobody has to type anymore.
I built the platform that holds Semsamex's industrial workwear catalog and generates its product keys. As each component of a garment is picked, the system assembles the key character by character and writes the full product name underneath. Neither one is typed by hand.
- My role
- Domain modeling, backend, frontend and deployment
- Sector
- Textil / Manufactura
- Scope
- App web
- 6
- Catalogs behind the key
- 8
- SKU search filters
- 1 month
- Delivery time
- Excel + report
- Data exports
Stack
- React (Vite)
- Material UI
- Node.js
- Express
- JavaScript
- MySQL
- Docker
- Dokploy (CD/CI)
Screens
Screenshots from the live system.
App web
Generación de SKUs
El listado de claves con su buscador y los filtros por cada componente, y el alta donde se ve el sistema trabajando: conforme se elige prenda, tipo, género, tela, bolsa, cinta y cerrado, la clave se va armando letra por letra arriba y la descripción del producto se redacta sola abajo. Cada SKU queda ligado al cliente que lo pidió.
App web
Catálogos que componen la clave
Cada pieza de la clave tiene su propio catálogo con su código: prendas, telas con su ficha técnica e imagen, configuraciones de bolsas, cintas, cerrados y personalizaciones como bordado o estampado. Todos exportables a Excel.
The problem
Semsamex manufactures industrial workwear, and every garment exists in hundreds of variants: the garment, its type, the fabric, the fabric type, the pockets, the tape and where it sits, the closure, the customization and the gender. The product key is that whole combination, and it was being typed by hand. That is exactly where the inventory errors got in.
What I built
I modeled every piece of the key as its own coded master catalog: garments, fabrics with spec sheet and image, pocket configurations, tapes, closures and customizations such as embroidery or print. Creating a product means picking those one by one while the key assembles itself in real time above and the full garment description writes itself below. SKUs are searchable and filterable by sector, garment, type, fabric, pocket, tape, closure and customization, linked to the client that ordered them, and exportable to Excel or a report. Shipped in a month on React (Vite) with Material UI, Node/Express and MySQL, containerized with Docker and deployed through Dokploy CI/CD.
Technical decisions
- 01
The key is composed, never typed
The inventory errors started in manual key entry. I modeled the key as a derivation of the components you pick, so the system builds it character by character during data entry and there is nothing left to mistype.
- 02
One catalog per piece of the key
Garments, fabrics, pockets, tapes, closures and customizations each live as a master catalog with its own code. Adding a new fabric is one more record in its catalog, not a code change.
- 03
Product names write themselves
Beyond the key, the system composes the full description with every attribute of the garment. That is the text used downstream in quotes and delivery notes, and it comes off the same data the key does.
- 04
Every SKU traces back to its client
Keys are linked to the client that requested them, and the listing filters by sector, garment, type, fabric, pocket, tape, closure and customization. You can see the exact configuration an account ordered without decoding the key.
- 05
The data leaves the system cleanly
The SKU listing and every catalog export to Excel or a report, so the data stays usable outside the platform without re-keying it.
Next project
Eventya
Book an entire event from your phone and pay for it in installments.