📋 Licitabot

Busca inteligente de licitações públicas

MVP Pronto

Encontre oportunidades de licitação em 2 minutos, não em 2 horas por dia. Monitoramento automatizado do DOU e ComprasGov com filtros inteligentes, alertas em tempo real e dashboard completo.

22+ Licitações seed
27 UFs cobertas
7 Modalidades
2 Fontes oficiais

✅ MVP — O que já funciona

🔐
Autenticação completa Cadastro, login JWT, sessão persistente
🔍
Busca com filtros Palavra-chave, UF, modalidade, valor, data
📊
Dashboard interativo Resultados em cards, paginação, formatação BRL
💾
Busca salvas Salve, reaplique e gerencie suas buscas favoritas
Alertas automáticos Notificações diárias/semanais por email
🕷️
Crawlers oficiais DOU (RSS) + ComprasGov (API REST)
🎨
Landing page Hero, planos (R$149-R$598), waitlist, Footer
📱
Responsivo Mobile-first, Tailwind CSS + shadcn/ui

🏗️ Arquitetura

Frontend

  • Next.js 14 (App Router)
  • TypeScript + Tailwind CSS
  • shadcn/ui + @base-ui/react
  • Auth Context (JWT)

API

  • Python FastAPI (async)
  • SQLAlchemy + SQLite/PostgreSQL
  • JWT (HS256, 7 dias)
  • Pydantic v2 schemas

Crawlers

  • Scrapy 2.17
  • DOU — RSS oficial in.gov.br
  • ComprasGov — API REST
  • Pipelines de limpeza HTML

Deploy

  • API: Uvicorn :8000
  • Frontend: Next.js :3000
  • Proxy: rewrites /api/*
  • DB: SQLite (dev) / PG (prod)

Fluxo de dados

Crawlers API DB API Endpoints Next.js Frontend Usuário

🚀 Roadmap de Evolução

30 melhorias mapeadas em 3 dimensões — UI/UX, Segurança e Marketing. Organizadas por prioridade e impacto.

🎨 UI/UX 10 melhorias
#MelhoriaImpactoEsforço
1 Skeleton loading
Substituir spinner por esqueletos que imitam o layout dos cards
Alto Baixo
2 Auto-salvar busca com toggle
Estrela/ícone ao lado dos resultados salva a busca em 1 clique
Alto Médio
3 Filtros avançados em accordion
Agrupar filtros em seções colapsáveis (Básico / Avançado)
Alto Médio
4 Dark mode
Seletor com persistência em localStorage + prefers-color-scheme
Médio Médio
5 Responsividade mobile do dashboard
Sidebar vira bottom sheet ou drawer em telas pequenas
Alto Médio
6 Tooltips e micro-cópias
Explicar cada filtro e sugerir valores comuns nos campos
Médio Baixo
7 Toast de confirmação
Feedback animado ao salvar/excluir busca, sem recarregar a lista
Alto Baixo
8 Preview rápido do edital (modal)
Modal com resumo extraído em vez de link externo seco
Médio Médio
9 Empty states ilustrativos
Ilustração + CTA claro quando não há resultados
Médio Baixo
10 Cadastro multi-etapas com progresso
Dividir formulário em etapas (Dados → Empresa → Confirmação)
Médio Alto
🔒 Segurança 10 melhorias
#MelhoriaImpactoEsforço
1 Rate limiting nos endpoints de auth
Proteger /login e /register contra brute force (5 tentativas/min)
Alto Baixo
2 Refresh tokens + rotação
Token de curta duração (15min) + refresh persistente com rotação
Crítico Médio
3 HTTPS forçado + HSTS
Redirect HTTP→HTTPS e header Strict-Transport-Security
Crítico Baixo
4 Headers de segurança (CSP, X-Frame-Options)
Content-Security-Policy, X-Content-Type-Options, X-Frame-Options
Alto Baixo
5 Senha com requisitos mínimos
Maiúscula, número, caractere especial, mínimo 8 caracteres
Alto Baixo
6 Logout server-side (revogação de token)
Blocklist de tokens revogados em memória/redis
Médio Médio
7 Proteção CSRF
Token CSRF para segurança em futuros cookies/session
Médio Médio
8 Validação de UUID nos parâmetros
Validar formato UUID em /bids/{id}, /searches/{id} antes de consultar
Alto Baixo
9 Segregação por tenant (user_id)
Testes explícitos de isolamento + auditoria de acesso em cada endpoint
Alto Médio
10 Sanitização de input textual
Escapar caracteres especiais nas queries ILIKE para prevenir injection
Alto Baixo
📢 Marketing 10 melhorias
#MelhoriaImpactoEsforço
1 Landing page com casos de uso reais
Depoimentos com dados reais de economia de tempo (+ prova social)
Alto Médio
2 CTA principal → cadastro (não waitlist)
MVP pronto — CTA deve levar para /register com trial grátis
Crítico Baixo
3 Onboarding tutorial no primeiro login
Modal/overlay guiado (3 passos) na primeira vez no dashboard
Alto Médio
4 Email de boas-vindas automático
Guia rápido, dicas de busca e CTA para primeira busca
Médio Médio
5 Blog/SEO sobre licitações
"Como participar de licitações", "Nova Lei 14.133" — tráfego orgânico
Alto Alto
6 Comparativo visual "Sem vs Com Licitabot"
Infográfico na landing mostrando horas gastas vs economizadas
Médio Baixo
7 Funcionalidades trancadas por plano
Mostrar features bloqueadas com cadeado + "Faça upgrade"
Médio Médio
8 Compartilhar licitação (WhatsApp)
Botão de compartilhar em cada resultado de busca
Alto Baixo
9 Lead magnet: Guia Rápido de Licitações
PDF download em troca de email, mesmo sem cadastro completo
Alto Baixo
10 Remarketing para waitlist
Segmentar emails capturados no Google Ads/Facebook
Médio Médio

🛠️ Stack Tecnológica

Frontend Next.js 14 · TypeScript · Tailwind CSS · shadcn/ui · @base-ui/react · Lucide Icons
API Python 3.14 · FastAPI · SQLAlchemy async · Pydantic v2 · JWT (HS256) · bcrypt
Database SQLite + aiosqlite (dev) · PostgreSQL + asyncpg (prod)
Crawlers Scrapy 2.17 · DOU (RSS/JSON) · ComprasGov (REST API)
DevOps Script dev.sh paralelo · Seed DB · Alembic (previsto) · Vercel

📋 Próximos Passos (Backlog Técnico)

🔧
Integração crawlers → banco de dados Pipeline Scrapy que insere diretamente na base da API
📦
Alembic (migrations) Substituir create_all por migrations versionadas
🧪
Testes automatizados Unitários + integração + e2e nos 3 layers
🔐
.env + chave secreta Extrair SECRET_KEY para variável de ambiente
📧
Serviço de email Disparo real de alertas e boas-vindas
🐳
Docker + deploy Dockerfile, docker-compose, CI/CD

💰 Planos

Starter

R$149/mês

  • Busca com filtros básicos
  • 10 buscas salvas
  • Alertas diários
  • Suporte email

Enterprise

R$598/mês

  • Tudo do Professional +
  • API dedicada
  • Múltiplos usuários
  • Onboarding personalizado
  • SLA garantido

O MVP está pronto. Quer testar ou contribuir?

API em FastAPI · Frontend Next.js · Crawlers Scrapy · Código aberto