Gestão · Mini ERP de estoqueProjeto 05 / 06

Mirante Estoque

Um estoque que avisa antes de faltar.

Produtos, fornecedores, entradas, saídas, inventário, lotes com validade, kardex, alertas e dashboard, com a regra de negócio no backend: a cada movimentação, a API recalcula saldo e custo médio, aplica FEFO nos lotes e reavalia os alertas.

  • React 19
  • Node.js
  • Express 5
  • SQLite
  • Zod
  • Testes automatizados

Case demonstrativo. A Mirante Ótica é uma empresa fictícia, e o histórico exibido vem de uma simulação de 120 dias de operação.

Dashboard com alertas críticos e indicadores de estoque
Ficha do produto com indicadores e gráfico de saldo em 90 dias
Uma movimentação

Uma saída registrada. Cinco efeitos, na mesma resposta.

O saldo só muda por movimentação. É ela que coloca o motor de estoque em funcionamento.

Saída · vendaArmação Mirante Brisa
  1. Saldo

    Recalculado dentro de transação. Nunca fica negativo.

  2. Custo médio

    Ponderado, atualizado a cada compra.

  3. Lotes

    Saída por FEFO. Lote vencido não pode ser vendido.

  4. Alertas

    Reavaliados para o produto e devolvidos na mesma resposta.

  5. Reposição

    A sugestão de compra por fornecedor reflete o novo saldo.

Resposta da API⚠️ Produto "Armação Mirante Brisa" está abaixo do estoque mínimo (3 de 4 un).

Disponibilidade

Comprar na hora certa, nem antes, nem tarde.

O ponto de pedido considera quanto sai por dia e quanto tempo o fornecedor leva para entregar.

ponto de pedido = mínimo + consumo médio × prazo do fornecedor

4 un + 0,23 un/dia × 12 dias ≈ 7 un

mín · 4ponto de pedido · 7máx · 12saldo · 6 un

Exemplo da demonstração: Armação Mirante Brisa, fornecida pela Atlântica Eyewear em 12 dias. Com saldo 6 e ponto de pedido 7, o sistema já sinaliza a reposição.

Alertas

O backend avisa sozinho.

Cada alerta é criado, atualizado e resolvido automaticamente quando a causa some. Um ativo por produto, tipo e lote.

  • Estoque zerado
  • Abaixo do mínimo
  • Ponto de pedido
  • Lote vencido
  • Validade próxima
  • Sem giro
Central de alertas por gravidade
O estoque por dentro

Cada unidade tem história.

Regras que não negociam

Permissões e regras aplicadas no backend.

Gerente com acesso total; estoquista com entradas e saídas. As regras de estoque são cobertas por testes automatizados.

Permissões por perfil no Mirante Estoque
AçãoGerenteEstoquista
Consultar tudo
Entradas e saídas
Ajuste de inventário
Cadastrar produtos, categorias e fornecedores
Verificação manual de alertas
Tecnologia

Como o sistema é construído.

Frontend
React 19 · Vite · Tailwind CSS 4 · Recharts
Backend
Node.js 22 · Express 5
Validação
Zod
Banco
SQLite (node:sqlite)
Autenticação
Senha com scrypt · token HMAC · papéis
Testes
node:test
Arquitetura
  1. 01Interface · React
  2. 02API REST · Express
  3. 03Motor de estoque · saldo, custo médio e FEFO
  4. 04Alertas e indicadores
  5. 05SQLite

Decisões técnicas

  • O saldo só muda por movimentação, dentro de transação, e nunca fica negativo.
  • Custo médio ponderado recalculado a cada compra.
  • Ponto de pedido = mínimo + consumo médio × prazo do fornecedor.
  • Ajuste de inventário só pelo gerente, com justificativa.
Roadmap

Próximos passos.

Evoluções previstas na documentação do projeto. Nenhuma delas está implementada.

  • Planejado · não implementadoPedido de compra com status (enviado → recebido parcial/total) gerando as entradas
  • Planejado · não implementadoMultiloja com transferência entre estoques
  • Planejado · não implementadoLeitura de XML de NF-e para dar entrada automática
  • Planejado · não implementadoIntegração com PDV para baixar vendas em tempo real

Seu processopode ser um sistema.

A CLV cria sistemas sob medida para transformar processos complexos em operações mais simples, organizadas e escaláveis.