Pular para o conteúdo
← Voltar para os cases

PWA offline e páginas públicas conectadas ao ERP

Front-ends fora do ERP: um PWA offline de inventário para coletor Android e páginas públicas em que o cliente aprova pedido e amostra por link, todos falando com a API do ERP.

Setor
Indústria de confecção e moda
Período
2026
Atuação
Autoria integral (front-end e API)
Escala
3 aplicações, 3 endpoints novos

Offline

contagem sem depender da rede

64 hex

token aleatório por link público

E2E

testes contra um ERP simulado

Tecnologias

ReactTypeScriptViteZustandIndexedDB (Dexie)Tailwind CSSshadcn/uiSupabaseCloudflare WorkersPlaywrightVitestRESTInterSystems IRIS

Desafio

Dois problemas da mesma empresa, nenhum deles resolvível com mais uma tela do ERP.

O inventário é contado no corredor do armazém, com um coletor Android de leitor embutido, e ali a rede não é garantida. Uma contagem não pode parar porque o Wi-Fi caiu.

Do lado comercial, o cliente precisava conferir o pedido e aprovar a amostra antes da produção, mas não tem, nem deve ter, acesso ao ERP.

Solução

PWA de inventário. Aplicativo em React e TypeScript que guarda tudo no IndexedDB do aparelho e sincroniza quando o operador manda. A captura é cega de propósito: o coletor não valida regra de negócio, só registra o que foi lido. A regra continua no ERP, que recebe a contagem e decide. O app é operado inteiro por teclado e leitor, sem toque, e uma única chamada traz o contexto completo da contagem para o aparelho trabalhar sem rede. Fica publicado no Cloudflare Pages, com um Worker de proxy para que a credencial do ERP nunca chegue ao aparelho. Os testes de navegador rodam com Playwright contra um ERP simulado, sem tocar ambiente de cliente.

Endpoint do ERP em camadas. A rota da API não conhece o inventário: ela só repassa para um despachante por módulo e ação, e o módulo de inventário é uma peça entre outras. O próximo módulo do coletor entra sem mexer na API.

Páginas públicas de aprovação. O ERP gera um link com um token aleatório de 64 caracteres hexadecimais e guarda um retrato do pedido no momento do envio, para que o cliente aprove o que recebeu mesmo que o pedido mude depois. O cliente aprova, reprova ou comenta com justificativa, e a resposta volta para uma consulta do ERP. As páginas são apps React com Supabase na plataforma interna de aplicações da empresa; a chamada ao ERP passa por uma função no servidor, com contrato de API versionado e códigos de erro fixos.

Resultado

Três front-ends novos, nenhum deles com regra de negócio duplicada fora do ERP. O inventário deixa de depender de rede no momento da leitura, e a aprovação do cliente fica registrada no próprio pedido, com o retrato do que foi aprovado.

O que esse case mostra

O trabalho não termina na fronteira do ERP. Escrevi o app, a API e o teste automatizado das duas pontas, e o princípio de manter a regra no ERP valeu também para o front-end.

Travou em algum termo? Tem um glossário. Glossário