Projetos / Comercial Template
comercial-template
Aplicação full-stack para cadastro de clientes e propostas comerciais.
Repositório: https://github.com/lughlammas/comercial-template · commit 3ead252
- Status
- Repositório público · sem deploy
- Stack
- Next.js App Router, TypeScript, Tailwind, NextAuth, Prisma + SQLite, @react-pdf
- Testes rodados
npm test→ 24/24 · typecheck exit 0 · 19/10/2026- Fonte
- github.com/lughlammas/comercial-template @ 3ead252
01Problema
O problema que o projeto enfrenta são propostas feitas em documentos e planilhas: total calculado à mão, nenhum histórico por cliente e um PDF apresentável que precisa ser formatado de novo a cada vez. O projeto testa se esse fluxo (cliente → proposta → itens → total → PDF) cabe numa aplicação pequena, confiável e reaproveitável.
02Contexto
É uma aplicação de demonstração, com interface em português e dados sintéticos. Não está publicada nem tem usuários, e não alega adoção em produção.
03Solução
- Cadastro e login com e-mail e senha, senha com hash bcrypt e sessão JWT.
- Painel protegido, com criação, lista e detalhe de clientes e de propostas.
- Itens com quantidade, preço e total arredondado em centavos.
- PDF de cada proposta gerado no servidor, que só o dono baixa.
scripts/e2e-smoke.mjs + demo semeada) · 19/10/2026 09:23 BRT04Arquitetura
Uma única aplicação Next.js (App Router) em TypeScript. As páginas são React Server Components que consultam o banco via Prisma (SQLite); as gravações passam por Server Actions; uma rota gera o PDF com @react-pdf/renderer. Um middleware bloqueia as rotas protegidas sem sessão. Há Dockerfile e build standalone configurados.
05Evidências
- Passou em 24/24 testes unitários (4 arquivos: dinheiro, server actions, middleware e rota de PDF), com typecheck limpo, na execução feita para este site em 19/10/2026.
- O CI passou no commit atual. O workflow "Web validation" roda instalação, lint, testes unitários, build de produção, typecheck e um smoke test no navegador contra o build de produção.
- O isolamento de dados é testado: a rota de PDF responde 401 sem sessão e 404 para propostas de outro usuário, e a criação de proposta recusa cliente de outro usuário.
- O repositório documenta uma execução no navegador em 07/10/2026 com 13/13 checagens, entre elas um segundo usuário recebendo 404 nos registros do primeiro. Essa execução não foi repetida para este site.
Links
- Repositório público: https://github.com/lughlammas/comercial-template
- Commit
3ead252: https://github.com/lughlammas/comercial-template/commit/3ead2526b0a2d5e5f7970b539016dba8f56def3c - Execução do CI "Web validation" em
3ead252(sucesso, log público): https://github.com/lughlammas/comercial-template/actions/runs/37713989999 - Testes unitários (código): https://github.com/lughlammas/comercial-template/tree/3ead2526b0a2d5e5f7970b539016dba8f56def3c/tests
- Workflow de CI: https://github.com/lughlammas/comercial-template/blob/3ead2526b0a2d5e5f7970b539016dba8f56def3c/.github/workflows/ci.yml
- Walkthrough do produto com a execução no navegador documentada em 07/10/2026: https://github.com/lughlammas/comercial-template/blob/3ead2526b0a2d5e5f7970b539016dba8f56def3c/docs/PRODUCT_WALKTHROUGH.md
- A execução 24/24 feita para este site: log de testes interno, não público. A execução pública do CI acima cobre os mesmos testes.
06Papel humano e ferramentas de IA
Feito com desenvolvimento assistido por IA sob direção humana: ferramentas de IA contribuíram em produto, implementação, QA e documentação, sob direção humana. O repositório contém o código da aplicação, não uma plataforma de agentes.
07Testes executados
| Checagem | Resultado | Onde |
|---|---|---|
npm test |
24/24 passaram | rodado em 19/10/2026 |
npm run typecheck |
exit 0 | rodado em 19/10/2026 |
| CI "Web validation" | sucesso em 3ead252 |
GitHub Actions |
Smoke no navegador (test:e2e) |
13/13, documentado | docs do repo, 07/10/2026, não repetido |
| lint / build / e2e locais | não rodados para este site |
08Limitações
- Sem demo hospedada nem deploy.
- Imagem Docker não verificada: o Dockerfile copia uma pasta
public/que não existe. - Clientes e propostas não podem ser editados nem apagados, e o status da proposta não muda pela interface.
- Sem verificação de e-mail, recuperação de senha nem limite de tentativas de login.
- Valores guardados em ponto flutuante (arredondados por linha), com BRL e pt-BR fixos no código.
- Esquema aplicado com
db push, sem histórico de migrações. - Restam 11 alertas de severidade alta em dependências de ferramentas e opcionais (0 críticos), segundo
npm auditem 19/10/2026. - Sem testes de desempenho, acessibilidade ou segurança.
- O header vaza horizontalmente abaixo de ~420 px (medido a 360/390 px); o botão 'Ver demo' tem contraste 1.04:1 e o rodapé 3.66:1 (WCAG AA exige 4.5:1).
- Sem arquivo LICENSE.
09Necessidade comercial
É a referência da S02 · Custom Software & MVP: autenticação, dono dos dados, cálculo de dinheiro com teste e documento de saída, entregues com os limites declarados. Também serve de base para fluxos parecidos (orçamentos, recibos, contratos simples), depois de avaliar o que cada um exige.
→ S02 · Custom Software & MVP Development · Solicite uma proposta
Tem um problema que deveria virar software?
Conte o que você tem e o que não está funcionando.