Case 02 · Sistemas sob medida
ERP web da Fitacabo
Uma API central e 63 módulos web levando o ERP da Fitacabo para o navegador, módulo a módulo, sem parar a empresa.
- Cliente
- Fitacabo
- Área
- Sistemas sob medida
- Período
- 2025 — hoje
01 · Contexto
Todo o negócio da Fitacabo — vendas, produção, compras, estoque, fiscal, RH e custos — rodava num sistema desktop, acessível só de dentro da empresa.
02 · Problema
Vendedores, gestores e o chão de fábrica precisavam do sistema fora do desktop. Parar a empresa para trocar tudo de uma vez não era opção.
03 · O que a LFD construiu
- API ASP.NET Core central com 72 controllers e 519 endpoints, atendendo os módulos web, o PDV, as máquinas da fábrica e o atendimento.
- Monorepo com 63 aplicações React independentes — comercial, PCP, compras, estoque, fiscal, custos, RH, qualidade e TI — publicadas uma a uma.
- Portal com login único e menu montado pelas permissões de cada usuário, preservando os endereços que as pessoas já usavam.
- Segurança no backend: a visibilidade de vendas é aplicada na API (o filtro da tela só restringe, nunca amplia), sessão em cookie HttpOnly e auditoria de autenticação rota a rota.
- Migração tela a tela, usando o sistema legado como contrato de regra de negócio e de layout.
- Deploy automático a cada publicação, com backup, verificação de saúde e rollback automático em caso de falha.
04 · Arquitetura
05 · Stack
| Backend | ASP.NET Core 9 · EF Core + Dapper · SQL Server · JWT em cookie HttpOnly |
|---|---|
| Frontend | React 18 · Vite · TypeScript · Tailwind CSS · pnpm workspaces |
| Qualidade e entrega | xUnit · WebApplicationFactory · Vitest · GitHub Actions · IIS |
06 · Resultado
- 63 módulos web em produção, cada um publicado de forma independente.
- 519 endpoints atendendo navegador, PDV, máquinas e WhatsApp numa única API.
- Mais de 2.400 testes automatizados: 1.519 na API e cerca de 900 nos módulos web.
- Publicações com backup e rollback automático: uma versão com problema volta sozinha para a anterior.
07 · Aprendizado
Migração sem big-bang. Cada módulo entra em produção sozinho, o legado continua funcionando ao lado e a regra de segurança mora no backend — esconder um botão nunca foi controle de acesso.