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.


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.
Saldo
Recalculado dentro de transação. Nunca fica negativo.
Custo médio
Ponderado, atualizado a cada compra.
Lotes
Saída por FEFO. Lote vencido não pode ser vendido.
Alertas
Reavaliados para o produto e devolvidos na mesma resposta.
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).
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
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.
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

Cada unidade tem história.




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.
| Ação | Gerente | Estoquista |
|---|---|---|
| Consultar tudo | ||
| Entradas e saídas | ||
| Ajuste de inventário | ||
| Cadastrar produtos, categorias e fornecedores | ||
| Verificação manual de alertas |
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
- 01Interface · React
- 02API REST · Express
- 03Motor de estoque · saldo, custo médio e FEFO
- 04Alertas e indicadores
- 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.
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.