📌 O Problema Real
Pequenos lojistas muitas vezes perdem vendas por falta de produto ou compram itens que já têm em excesso, ficando com dinheiro parado. Planilhas falham porque não registram o histórico de quem tirou o produto ou quando ele entrou.
💡 A Solução
Você desenvolverá o StockPro, um sistema de gestão de inventário que controla:
- Entradas: Registro de novas compras e estoque abastecido.
- Saídas: Controle de vendas, perdas ou devoluções.
- Alertas: destaque visual automático dos produtos com estoque baixo.
🟡 Requisitos Técnicos
1. Modelagem de Dados Relacional (SQLite)
O foco é o relacionamento entre o cadastro do produto e o seu histórico de movimentação completa.
-- 1. Categorias
CREATE TABLE categorias (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL
);
-- 2. Produtos
CREATE TABLE produtos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
categoria_id INTEGER,
preco_venda DECIMAL(10,2),
estoque_minimo INTEGER DEFAULT 5,
estoque_atual INTEGER DEFAULT 0,
FOREIGN KEY (categoria_id) REFERENCES categorias(id)
);
-- 3. Movimentações (O Histórico de tudo)
CREATE TABLE movimentacoes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
produto_id INTEGER NOT NULL,
tipo TEXT CHECK(tipo IN ('Entrada', 'Saída')) NOT NULL,
quantidade INTEGER NOT NULL,
motivo TEXT, -- Ex: "Venda", "Compra", "Ajuste de Inventário", "Produto Vencido"
data_movimento DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (produto_id) REFERENCES produtos(id) ON DELETE CASCADE
);
Bloqueio Negativo
O sistema não pode permitir uma "Saída" se a quantidade for maior que o estoque atual disponível.
Atualização Automática
Sempre que uma movimentação for registrada, o campo
estoque_atual no produto deve ser atualizado automaticamente.
Alerta Visual
Destacar visualmente (ex: cor vermelha) os produtos onde o estoque atual atingiu o limite mínimo definido.
2. Consulta de Relatório (SQL Avançado)
Implemente uma query para ver o valor total do seu estoque (o capital que o lojista tem "parado" em mercadoria):
SELECT
p.nome,
p.estoque_atual,
(p.estoque_atual * p.preco_venda) AS valor_investido
FROM produtos p
WHERE p.estoque_atual > 0;
🎯 Funcionalidades MVP
- Painel de Alertas: Exibir logo no início quais produtos precisam de compra urgente.
- Gestão de Produtos: CRUD completo com integração de categorias.
- Fluxo de Movimentação: Tela simples para registrar entradas e saídas de mercadoria.
- Filtros Inteligentes: Localizar produtos rapidamente por nome ou categoria.
💰 Potencial de Renda Extra
Público Alvo
Vendedores de Instagram/Shopee, mercadinhos e lojas de bairro.
Diferencial
Sistemas rápidos e offline (SQLite) são preferidos por lojistas que não podem depender de internet instável.
Valores sugeridos (variam conforme região e escopo)
Setup Inicial: R$ 600 - R$ 1.200
Suporte Premium: R$ 40 - R$ 80 / mês
📦 Como Enviar (Padrão HDEV)
- 1 Repositório: Suba o código e o banco SQLite de exemplo no GitHub.
- 2 Vídeo: Demonstre o fluxo completo: Cadastro -> Entrada -> Saída Inválida -> Saída Válida.
- 3 Issue: Abra uma issue usando o template 'Enviar entrega do desafio'.
- 4 Links: Informe a URL do repositório e seu vídeo demonstrativo.