top-tran/proposta-toptran.html
2026-05-05 12:53:41 -03:00

280 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Proposta — TopTran</title>
<style>
@page {
size: A4;
margin: 18mm 16mm;
}
* { box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
color: #1a1a1a;
line-height: 1.5;
font-size: 10.5pt;
margin: 0;
}
header {
border-bottom: 3px solid #0a0a0a;
padding-bottom: 12px;
margin-bottom: 22px;
}
header h1 {
margin: 0 0 4px 0;
font-size: 22pt;
color: #0a0a0a;
}
header .subtitle {
color: #555;
font-size: 11pt;
}
header .meta {
margin-top: 8px;
font-size: 9pt;
color: #777;
}
h2 {
font-size: 13.5pt;
color: #0a0a0a;
border-bottom: 1px solid #ddd;
padding-bottom: 4px;
margin-top: 22px;
margin-bottom: 10px;
}
h3 {
font-size: 11.5pt;
color: #222;
margin-top: 14px;
margin-bottom: 6px;
}
p { margin: 6px 0; }
ul { margin: 6px 0; padding-left: 22px; }
li { margin: 3px 0; }
table {
width: 100%;
border-collapse: collapse;
margin: 10px 0;
font-size: 10pt;
}
th, td {
text-align: left;
padding: 7px 10px;
border-bottom: 1px solid #e3e3e3;
}
th {
background-color: #f4f4f4;
font-weight: 600;
}
td.num, th.num { text-align: right; }
.price-table td:last-child { font-weight: 600; }
.highlight-box {
background-color: #f8f8f8;
border-left: 4px solid #0a0a0a;
padding: 12px 16px;
margin: 14px 0;
border-radius: 2px;
}
.recommendation {
background-color: #fff8e6;
border: 1px solid #f0d480;
padding: 14px 18px;
margin-top: 14px;
border-radius: 4px;
}
.recommendation strong { color: #6b4f00; }
code {
font-family: "SF Mono", Consolas, monospace;
background-color: #f0f0f0;
padding: 1px 5px;
border-radius: 3px;
font-size: 9.5pt;
}
footer {
margin-top: 30px;
padding-top: 12px;
border-top: 1px solid #ddd;
font-size: 8.5pt;
color: #888;
text-align: center;
}
.badge {
display: inline-block;
background: #0a0a0a;
color: #fff;
font-size: 8pt;
padding: 2px 7px;
border-radius: 3px;
margin-right: 4px;
}
</style>
</head>
<body>
<header>
<h1>Proposta Comercial — TopTran</h1>
<div class="subtitle">Aplicativo mobile + backend para gestão de corridas de transporte</div>
<div class="meta">Análise técnica e estimativa de valor &middot; Maio de 2026</div>
</header>
<h2>1. Escopo entregue</h2>
<h3>Backend — API REST</h3>
<p><span class="badge">Node.js</span><span class="badge">Express 5</span><span class="badge">TypeScript</span><span class="badge">Prisma 7</span><span class="badge">PostgreSQL</span><span class="badge">Docker</span></p>
<ul>
<li>~1.100 linhas de código próprio, arquitetura em camadas (routes → middleware → controller → service → repository)</li>
<li>Autenticação JWT com access token (15 min) + refresh token (7 dias)</li>
<li>Validação de input com Zod, hash de senha com bcrypt</li>
<li>13 endpoints REST: <code>/auth</code> (register, login, logout), <code>/users</code> (me, profile, update, delete), <code>/sync</code> (companies, rides — upload e download)</li>
<li>Deploy completo com Docker + Compose (ambientes <em>development</em> e <em>production</em>) e script de deploy automatizado</li>
</ul>
<h3>Aplicativo Mobile</h3>
<p><span class="badge">React Native 0.83</span><span class="badge">Expo SDK 55</span><span class="badge">Expo Router</span><span class="badge">SQLite</span><span class="badge">TypeScript</span></p>
<ul>
<li>~4.460 linhas de código distribuídas em 21 arquivos</li>
<li><strong>11 telas:</strong> login, cadastro, dashboard, lançamento de corrida, histórico, empresas (CRUD), relatório mensal com PDF, perfil (foto + bio), sincronização com timeline visual, hub de cadastros, redirect de corrida</li>
<li><strong>Offline-first:</strong> SQLite local com 4 tabelas e sincronização inteligente (compara IDs locais com servidor)</li>
<li>Tema escuro customizado aplicado em todo o app</li>
<li>Geração e compartilhamento de relatório em PDF (<code>expo-print</code> + <code>expo-sharing</code>)</li>
<li>Upload de foto de perfil via <code>expo-image-picker</code></li>
<li>Build Android nativo com <em>keystore</em> de produção assinado (<code>.jks</code>)</li>
<li>Configuração EAS pronta para futuros builds</li>
</ul>
<h2>2. Estimativa de esforço técnico</h2>
<table>
<thead>
<tr><th>Frente de trabalho</th><th class="num">Horas estimadas</th></tr>
</thead>
<tbody>
<tr><td>Backend (API + autenticação + sync + deploy Docker)</td><td class="num">50 70 h</td></tr>
<tr><td>Mobile — telas e UI (11 telas com tema custom)</td><td class="num">70 90 h</td></tr>
<tr><td>Mobile — sincronização offline-first + SQLite + lógica de negócio</td><td class="num">30 40 h</td></tr>
<tr><td>Relatório PDF + perfil + upload de imagem</td><td class="num">15 20 h</td></tr>
<tr><td>Build / assinatura Android + ajustes de New Architecture</td><td class="num">15 20 h</td></tr>
<tr><td>Testes, debug em dispositivo, polimento</td><td class="num">20 30 h</td></tr>
<tr style="background-color: #f4f4f4;"><td><strong>Total estimado</strong></td><td class="num"><strong>200 270 h</strong></td></tr>
</tbody>
</table>
<h2>3. Faixa de preço sugerida</h2>
<p>Como o projeto é um <strong>aplicativo interno corporativo</strong> — sem publicação em loja pública, sem onboarding de usuário externo e sem complexidade de marketing — a precificação é mais direta:</p>
<table class="price-table">
<thead>
<tr><th>Cenário</th><th class="num">Valor/hora</th><th class="num">Preço total</th></tr>
</thead>
<tbody>
<tr><td><strong>Mínimo</strong> — freelancer pleno, projeto direto</td><td class="num">R$ 90/h</td><td class="num">R$ 18.000 24.000</td></tr>
<tr><td><strong>Justo</strong> — fullstack experiente, entrega completa</td><td class="num">R$ 130/h</td><td class="num">R$ 26.000 35.000</td></tr>
<tr><td><strong>Premium</strong> — sênior, com garantia e suporte inicial</td><td class="num">R$ 180/h</td><td class="num">R$ 36.000 48.000</td></tr>
</tbody>
</table>
<div class="highlight-box">
<strong>O que justifica o valor:</strong>
<ul style="margin-top: 6px;">
<li>Stack moderna e correta (Expo SDK 55, React Native 0.83, Prisma 7)</li>
<li>Arquitetura limpa no backend, com separação real de responsabilidades</li>
<li>Sincronização offline-first não trivial: bidirecional, com reconciliação de IDs e flag <code>synced</code></li>
<li>App em produção, com APK assinado e pronto para distribuição interna</li>
</ul>
</div>
<h3>Itens não inclusos no preço de desenvolvimento</h3>
<table>
<thead>
<tr><th>Item</th><th class="num">Custo recorrente</th></tr>
</thead>
<tbody>
<tr><td>Hospedagem do backend (VPS)</td><td class="num">R$ 60 150 / mês</td></tr>
<tr><td>Manutenção mensal e correções</td><td class="num">R$ 800 2.000 / mês</td></tr>
<tr><td>Novas features (push, dashboard web, multi-empresa real)</td><td class="num">sob orçamento</td></tr>
</tbody>
</table>
<h2>4. Modelo alternativo — Aluguel / SaaS</h2>
<p>Em vez de venda única do código-fonte, o aplicativo pode ser disponibilizado em modelo de assinatura (SaaS): o cliente não compra o app, paga uma mensalidade pelo uso. Setup baixo, receita recorrente, atualizações contínuas inclusas.</p>
<h3>Setup inicial (taxa única)</h3>
<table>
<thead>
<tr><th>Faixa</th><th class="num">Valor</th></tr>
</thead>
<tbody>
<tr><td>Setup enxuto — cliente fornece a VPS</td><td class="num">R$ 1.500</td></tr>
<tr><td>Setup completo — VPS, domínio e deploy gerenciados</td><td class="num">R$ 2.500 3.500</td></tr>
</tbody>
</table>
<p style="font-size: 9.5pt; color: #555;">Inclui deploy do backend, criação do banco, geração do APK assinado, cadastro inicial de empresas/usuários e treinamento de 1 2 h.</p>
<h3>Planos mensais</h3>
<table class="price-table">
<thead>
<tr><th>Plano</th><th>Limite</th><th class="num">Mensal</th><th class="num">Anual (10% off)</th></tr>
</thead>
<tbody>
<tr><td><strong>Básico</strong></td><td>até 5 motoristas, 1 empresa</td><td class="num">R$ 349</td><td class="num">R$ 3.770</td></tr>
<tr><td><strong>Profissional</strong></td><td>até 20 motoristas, até 5 empresas, suporte prioritário</td><td class="num">R$ 899</td><td class="num">R$ 9.710</td></tr>
<tr><td><strong>Empresarial</strong></td><td>usuários e empresas ilimitados, customizações leves, SLA</td><td class="num">R$ 1.890</td><td class="num">R$ 20.412</td></tr>
</tbody>
</table>
<h3>Alternativa por usuário ativo</h3>
<p>Se o cliente preferir escalar conforme o uso real:</p>
<ul>
<li><strong>R$ 29 por motorista / mês</strong>, mínimo de 5 usuários (R$ 145/mês)</li>
<li>Setup de R$ 2.500</li>
<li>Inclui hospedagem, atualizações e correções de bug</li>
</ul>
<h3>O que está incluso na mensalidade</h3>
<ul>
<li>Hospedagem do backend em VPS gerenciada</li>
<li>Banco PostgreSQL com backups diários</li>
<li>Atualizações de versão e correções de bugs</li>
<li>Suporte por WhatsApp/e-mail (tempo de resposta conforme o plano)</li>
<li>Geração de novas versões do APK quando houver atualização</li>
</ul>
<h3>Não incluso (cobrado à parte)</h3>
<table>
<thead>
<tr><th>Item</th><th class="num">Valor</th></tr>
</thead>
<tbody>
<tr><td>Novas funcionalidades sob demanda</td><td class="num">R$ 130 150 / h</td></tr>
<tr><td>Migração de dados de sistema legado</td><td class="num">sob orçamento</td></tr>
<tr><td>Integrações externas (ERP, gateways de pagamento, etc.)</td><td class="num">sob orçamento</td></tr>
<tr><td>Publicação na Play Store (taxa Google + serviço)</td><td class="num">USD 25 + R$ 600 1.000</td></tr>
</tbody>
</table>
<div class="highlight-box">
<strong>Ponto de equilíbrio e benefícios do modelo:</strong>
<ul style="margin-top: 6px;">
<li>Plano Profissional (R$ 899/mês) se equipara à venda de R$ 30.000 em aproximadamente 33 meses</li>
<li>Para o cliente: vira despesa operacional (OPEX) em vez de investimento (CAPEX) — geralmente mais fácil de aprovar</li>
<li>Para o fornecedor: receita previsível, atualizações contínuas e relação de longo prazo</li>
<li>Sem risco de o cliente ficar com versão desatualizada ou sem suporte</li>
</ul>
</div>
<h2>5. Recomendação final</h2>
<div class="recommendation">
<p style="margin-top: 0;"><strong>Modelo de venda única:</strong> R$ 25.000 R$ 30.000, com 30 dias de garantia para correção de bugs. Valor por hora alternativo: R$ 120 R$ 150/hora.</p>
<p style="margin-bottom: 0;"><strong>Modelo SaaS recomendado:</strong> Setup R$ 2.500 + Plano Profissional R$ 899/mês — equilíbrio entre acessibilidade para o cliente e sustentabilidade do serviço.</p>
</div>
<footer>
Proposta gerada com base em análise direta do código-fonte do projeto TopTran &middot; backend + toptran-app
</footer>
</body>
</html>