📌 O Problema Real
Pequenas assistências técnicas e prestadores de serviço perdem dinheiro por falta de controle. Aparelhos esquecidos, orçamentos ignorados e falta de visibilidade sobre o lucro líquido matam o negócio.
💡 A Solução
Você desenvolverá o O.S. Pro, um sistema de gestão de fluxo de trabalho baseado em uma máquina de estados industrial:
1. Entrada
Registro do cliente e objeto do serviço.
2. Orçamento
Definição de peças, mão de obra e prazos.
3. Execução & Entrega
Aprovação do cliente e formalização do serviço.
🟡 Requisitos Técnicos
1. Modelagem de Dados Relacional (SQLite)
Nesse nível, a integridade referencial via FOREIGN KEYS é obrigatória para sustentar o
fluxo de trabalho.
-- 1. Clientes
CREATE TABLE clientes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
whatsapp TEXT NOT NULL
);
-- 2. Catálogo de Serviços/Produtos
CREATE TABLE servicos_produtos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
descricao TEXT NOT NULL,
preco_base DECIMAL(10,2) NOT NULL
);
-- 3. Cabeçalho da Ordem de Serviço
CREATE TABLE ordens_servico (
id INTEGER PRIMARY KEY AUTOINCREMENT,
cliente_id INTEGER NOT NULL,
status TEXT CHECK(status IN ('Aberto', 'Orçamento', 'Aprovado', 'Concluído', 'Cancelado')) DEFAULT 'Aberto',
data_entrada DATETIME DEFAULT CURRENT_TIMESTAMP,
data_saida DATETIME,
observacoes TEXT,
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);
-- 4. Itens da O.S. (Histórico de preços)
CREATE TABLE itens_os (
id INTEGER PRIMARY KEY AUTOINCREMENT,
os_id INTEGER NOT NULL,
servico_id INTEGER NOT NULL,
quantidade INTEGER DEFAULT 1,
valor_unitario_aplicado DECIMAL(10,2) NOT NULL,
FOREIGN KEY (os_id) REFERENCES ordens_servico(id) ON DELETE CASCADE,
FOREIGN KEY (servico_id) REFERENCES servicos_produtos(id)
);
Cálculo Automático
O valor total da O.S. deve ser a soma dinâmica de todos os itens vinculados a ela.
Integridade de Fluxo
Uma O.S. só pode avançar para "Concluído" se já tiver passado pelo estado "Aprovado".
Histórico de Preços
O valor unitário deve ser gravado no ato da venda para não alterar ordens antigas se o catálogo subir de preço.
2. Relatório Financeiro (SQL Avançado)
Implemente uma consulta para o painel administrativo que retorne o faturamento total agrupado por mês:
SELECT
strftime('%m/%Y', os.data_entrada) AS Mes,
SUM(it.quantidade * it.valor_unitario_aplicado) AS Faturamento_Total
FROM ordens_servico os
JOIN itens_os it ON os.id = it.os_id
WHERE os.status = 'Concluído'
GROUP BY strftime('%m/%Y', os.data_entrada);
🎯 Funcionalidades MVP
- Dashboard Estratégico: Cards com "O.S. em Aberto", "Aguardando Aprovação" e faturamento mensal.
- Gestão de O.S.: Fluxo de seleção de cliente e adição múltipla de serviços.
- Máquina de Estados: Botões de ação para avançar o status conforme o processo avança.
- Exportação Recibo: HTML limpo (print-friendly) para envio via WhatsApp como comprovante.
💰 Potencial de Renda
Aplicações
Assistências de TI, celulares, oficinas de bikes e eletricistas.
Modelo SaaS
Cobrança recorrente para manter o controle da empresa na nuvem ou local.
Valores sugeridos (variam conforme região e escopo)
Setup: R$ 800 - R$ 1.200
Assinatura: ~ R$ 49,90/mês
📦 Como Enviar (Padrão HDEV)
- 1 Repositório: Código no GitHub com banco SQLite (ou scripts de Seed).
- 2 Vídeo: Demonstre o fluxo de ponta a ponta: Cliente -> O.S. -> Orçamento -> Fechamento.
- 3 Issue: Abra uma issue usando o template 'Enviar entrega do desafio'.
- 4 Links: Cole as URLs do repositório e do seu vídeo.