Plataforma completa SaaS para geração automática de recursos de multas de trânsito com IA (Gemini 2.5 Flash), sistema de assinaturas e dashboard administrativo.
cd aptus
npm install
Copie o arquivo .env.example para .env e preencha:
# Database (PostgreSQL)
DATABASE_URL="postgresql://user:password@localhost:5432/aptus"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="gere-com-openssl-rand-base64-32"
# Google AI Studio (Gemini)
GOOGLE_AI_KEY="sua-chave-aqui"
# Email (exemplo Gmail)
EMAIL_HOST="smtp.gmail.com"
EMAIL_PORT="587"
EMAIL_USER="seu-email@gmail.com"
EMAIL_PASSWORD="sua-senha-de-app"
EMAIL_FROM="Aptus <seu-email@gmail.com>"
# Gerar cliente Prisma
npx prisma generate
# Criar tabelas
npx prisma db push
# (Opcional) Abrir Prisma Studio
npx prisma studio
npm run dev
Acesse: http://localhost:3000
EMAIL_PASSWORDsmtp.sendgrid.net:587smtp.mailgun.org:587User - Usuários do sistema
Appeal - Recursos de multas
Account - Contas OAuth (NextAuth)
Session - Sessões ativas
# Setup completo (migrations + planos + admin)
.\scripts\setup-saas.ps1
# Isso cria:
# - Tabelas de planos e assinaturas
# - 4 planos (Gratuito, Básico, Pro, Enterprise)
# - Admin: Configure ADMIN_EMAIL e ADMIN_PASSWORD no .env
# - Demo: Removido para segurança
Veja SAAS.md para documentação completa do sistema SaaS.
# Criar admin adicional
npm run admin:create
Veja ADMIN.md para documentação completa.
src/
├── app/
│ ├── api/ # API Routes
│ ├── auth/ # Páginas de autenticação
│ ├── dashboard/ # Dashboard do usuário
│ ├── admin/ # Painel administrativo
│ └── page.tsx # Landing page
├── components/
│ ├── ui/ # Componentes shadcn/ui
│ └── dashboard/ # Componentes do dashboard
├── lib/
│ ├── auth.ts # Configuração NextAuth
│ ├── admin.ts # Helpers admin
│ ├── prisma.ts # Cliente Prisma
│ ├── ocr.ts # Processamento OCR
│ ├── openai.ts # Integração OpenAI
│ ├── pdf.ts # Geração de PDF
│ └── email.ts # Envio de emails
└── types/ # TypeScript types
# Instale Vercel CLI
npm i -g vercel
# Deploy
vercel
# Configure variáveis de ambiente no dashboard
# Dockerfile já pode ser criado se necessário
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npx prisma generate
RUN npm run build
CMD ["npm", "start"]
# Desenvolvimento
npm run dev
# Build para produção
npm run build
# Iniciar produção
npm start
# Lint
npm run lint
# Banco de dados
npm run db:push # Atualizar schema
npm run db:seed # Criar admin padrão
# SaaS Setup
.\scripts\setup-saas.ps1 # Setup completo do SaaS
# Administradores
npm run admin:create # Criar admin adicional
# Prisma Studio (visualizar banco)
npx prisma studio
# Resetar banco de dados
npx prisma db push --force-reset
gemini-2.5-flash# 1. Preparar projeto
.\scripts\prepare-deploy.ps1
# 2. Push para GitHub
git init
git add .
git commit -m "feat: Sistema completo"
git push origin main
# 3. Deploy na Vercel
# - Importar repositório do GitHub
# - Configurar variáveis de ambiente (ver .env.example)
# - Deploy automático!
Ver arquivo .env.example e documentação completa em DEPLOY.md
DEPLOY.md - Guia completo de deployPRE-DEPLOY-CHECKLIST.md - Checklist de verificação.env.example - Template de variáveisMIT License - Sinta-se livre para usar em projetos pessoais e comerciais.
Pull requests são bem-vindos! Para mudanças grandes, abra uma issue primeiro.
Para dúvidas ou problemas, abra uma issue no GitHub.
Desenvolvido com ❤️ usando Next.js, OpenAI e Prisma