Ficha Técnica
Papel
Desenvolvedor full-stack (Lumine Tec)
Stack
🔒 Projeto de cliente — código fechado, desenvolvido na Lumine Tec. Este case descreve a arquitetura e as decisões técnicas em alto nível.
Confecção sob medida é um domínio que não cabe em ERP de prateleira: cada produto é definido por um conjunto de medidas corporais e uma lista de materiais, cada cliente carrega as próprias medidas, e cada pedido acumula atributos de confecção — tecido, gola, forro, barrado — até virar um molde de corte gerado para a produção. O Portal Prefácio/CSJ é o sistema interno que gerencia esse ciclo de ponta a ponta.
O domínio
O sistema cobre o fluxo produtivo completo:
- Clientes com dados pessoais e medidas corporais (gerais e específicas por produto);
- Catálogo onde o produto é modelado como conjunto de medidas + bill of materials com unidades;
- Pedidos com atributos de confecção, datas de produção/entrega/evento, impressão individual e em lote, exportação para planilha e bloqueio de agenda;
- Plotters/moldes: arquivos de corte vinculados 1:1 ao pedido, armazenados em S3;
- Estoque e compras: movimentações de materiais, fornecedores, pedidos de compra;
- Fluxo de caixa: receitas/despesas com categorias, formas e status de pagamento;
- RBAC completo: módulos → funcionalidades → perfis → usuários;
- Emissão de nota fiscal de serviço integrada e e-mails transacionais.
Arquitetura
Duas camadas: SPA Next.js consumindo uma API REST stateless (Express + routing-controllers com injeção de dependência), MySQL com migrations versionadas, mídia em S3.
Visão de componentes e infraestrutura:
Fluxo de um pedido sob medida:
Decisões técnicas que valem a pena contar
RBAC com um vocabulário só. O desafio clássico de manter permissões coerentes entre front e back foi resolvido com feature codes compartilhados: no cliente, o RouteGuard mapeia cada rota a um código e redireciona quem não tem acesso; no servidor, o authorizationChecker valida o JWT e resolve as permissões efetivas por perfil. Uma fonte de verdade, duas pontas consistentes.
Regras temporais fora do request. "Pedido que passou da data vira atrasado" não é responsabilidade de quem consulta a listagem — é um cron job diário (fuso de São Paulo) que atualiza o estado no banco. API síncrona limpa, processamento assíncrono separado.
Modelagem do sob medida. A decisão central de domínio: produto não é um SKU, é uma função — conjunto de medidas de entrada + BOM de materiais. Isso permitiu que o mesmo catálogo servisse qualquer variação de corpo sem explosão combinatória de variantes.
Stack
Next.js + React + Ant Design · Node + Express + routing-controllers · tsyringe (DI) · TypeORM + MySQL · AWS S3 · NFe.io · Nodemailer · Jest · DigitalOcean App Platform.
Status
Em produção, em uso diário pela operação do cliente desde 2022, com evolução contínua (moldes, logs de atividade, comentários). É a segunda geração do produto — um rewrite completo da versão original.
Curtiu o projeto?
Se quiser conversar sobre esse projeto, arquitetura ou uma oportunidade de trabalho, é só me chamar. 🚀
contato@racoelho.com.br