Este sistema foi escrito inteiramente em Jade DSL — entidades, regras de negócio, interface, persistência offline. O compilador cuida do resto.
Navegue pelos menus, cadastre produtos, faça movimentações. Dados salvos no seu browser via IndexedDB.
entidade Produto
id: id
nome: texto
preco: moeda
estoque: numero
estoqueMinimo: numero
ativo: booleano
fim
entidade Venda
id: id
clienteNome: texto
total: moeda
status: texto
criadaEm: data
fim
servico estoqueService
funcao calcularSubtotal(
preco: moeda,
quantidade: numero
) -> moeda
retornar preco * quantidade
fim
funcao aplicarDesconto(
total: moeda,
percentual: decimal
) -> moeda
constante desconto = total * (percentual / 100)
retornar total - desconto
fim
fim
tela TelaVendas "Vendas"
toolbar AcoesVendas
botao: "Nova Venda|abrirNovaVenda|mais|primario"
botao: "Exportar|exportarCSV|compartilhar|secundario"
fim
divisor SecaoResumo
rotulo: "Resumo do mês"
fim
cartao TotalVendasMes
titulo: "Total do Mês"
conteudo: "R$ 28.450,00"
variante: sucesso
fim
grafico GraficoVendas
tipo: linha
entidade: Venda
eixoX: criadaEm
eixoY: total
fim
tabela TabelaVendas
entidade: Venda
colunas: clienteNome, total, status, criadaEm
filtravel: verdadeiro
ordenavel: verdadeiro
paginacao: 20
fim
fim4 cartões de métricas + gráfico de barras + lista de alertas de estoque
Toolbar com botões tipados, busca em tempo real, tabela paginada, formulário de cadastro
Busca + tabela com ordenação, filtros e paginação
Gráfico de linha, cartões de resumo, histórico com Moeda.formatarBRL
Menu colapsável com ícones SVG, roteamento entre telas, responsivo
Funciona sem internet. Dados persistem no IndexedDB e sincronizam ao reconectar
Três comandos e você tem um projeto completo rodando.
npm create jade@latest meu-erp
cd meu-erp && npm run compilar<a href="/jade-language/introducao/instalacao" class="vitrine-btn-primario">Ver guia de instalação →</a>