← todos os projetos
em produção2026sistema corporativo

Portal MRO

gestão de manutenção e almoxarifado

plataforma interna que reúne almoxarifado, indicadores, treinamentos e gestão de equipe de uma operação de manutenção rodoviária multiestado.

sistema interno — sem acesso público
0
módulos no ar
0
acesso ao ERP alimenta a equipe inteira
0
perfis de acesso
o problema

o ERP da operação é lento e o login falha com frequência. para chegar a um único número era preciso abrir várias transações diferentes, exportar cada pedaço e juntar tudo à mão — os indicadores nasciam de planilha montada manualmente, com todo o espaço para erro humano que isso abre. e como cada unidade fazia do seu jeito, não existia visão consolidada: nem por estado, nem um lugar único onde olhar indicador e treinamento.

a solução

um portal único com hierarquia estado → unidade. o estoque é modelado do mesmo jeito que o ERP modela (centro → depósito) e ligado à hierarquia do negócio por um vínculo configurável, o que permite alimentar tudo com o próprio relatório exportado do ERP — sem integração direta, decisão tomada de propósito para não depender de credencial de serviço nem de liberação de rede corporativa. na prática, uma pessoa entra no ERP uma vez e sobe o arquivo; a partir daí a equipe inteira consulta em milissegundos, pelo celular, sem computador e sem passar pelo login do ERP. e como o ERP é licenciado por usuário cadastrado, tirar de lá quem só precisa consultar reduz a quantidade de licenças necessárias.

arquitetura

como as peças se conectam

  1. Navegador
    React 19 + Vite, build estático
  2. Nginx
    HTTPS e entrega dos arquivos
  3. Fastify
    API em TypeScript
  4. PostgreSQL
    banco próprio do portal
módulos — 6

o que existe dentro

Almoxarifado

em produção

produtos por depósito, posição física, lotes e validade, reservas, etiquetas Zebra, fichas de segurança e importação do relatório do ERP.

Indicadores (KPI)

parcial

linhas de entrada e saída, SKUs ativos e média de competência, com filtro por estado e por unidade.

Treinamentos

implementado

trilhas de segurança, operacional e liderança, com progresso que não regride, prova de múltipla escolha e diálogo diário de segurança.

Equipe

implementado

cadastro de funcionários com organograma e avaliação de competência por pilar, aplicada pela liderança.

Home / mapa

implementado

mapa interativo por estado, com contagens vindas direto do banco em vez de números fixos.

Suporte e notificações

planejado

chatbot de apoio ao usuário e avisos em canal corporativo.

stack

o que foi usado

React 19ViteTypeScriptFastify 5PostgreSQLNginxPM2
decisões — 4

decisões técnicas e o porquê

Vite + React em vez de Next.js

renderização no servidor não agregava nada num sistema totalmente autenticado e pesava na VPS. o build estático é servido pelo Nginx e o Fastify cuida só da API.

upload de relatório em vez de integração com o ERP

integração direta exigia credencial de serviço e liberação de rede que não dependiam de mim. o upload entrega o mesmo dado e deixa a autonomia com a equipe.

dois perfis, não cinco

o sistema legado tinha cinco perfis que ninguém usava direito. reduzi para usuário e supervisor, mais uma flag de somente leitura para quem só consulta.

deploy por git push

um repositório bare na própria VPS com hook post-receive que instala, builda e reinicia o processo. publicar é um push.

aprendizado

o que ficou

  • modelar o estoque igual ao ERP e ligar à hierarquia do negócio por um vínculo manual foi o que fez a importação parar de brigar com a realidade da operação.
  • substituir um sistema legado sem período paralelo funciona quando a carga inicial vem de um export confiável — mas exige que a importação seja idempotente desde o primeiro dia.
  • permissão de banco é parte do deploy: aplicar schema como superusuário deixou as tabelas com dono errado, e o erro só apareceu em runtime, na primeira rota que tocou nelas.
← todos os projetospróximo projetoFábrica de Placas