2.3 KiB
01 — Setup do projeto e Docker
Contexto do projeto (leia sempre)
Sistema web "Briefing de Site" da SeConectai: o cliente se cadastra e depois preenche o briefing de criação do site, com um botão Ajuda em cada pergunta que abre um popup com o texto do guia auxiliar. O dono (Tiago) acompanha tudo por um painel admin.
Stack fixa: Next.js 14+ (App Router) + TypeScript, PostgreSQL 16, Prisma, Tailwind + shadcn/ui, React Hook Form + Zod, Auth.js v5 (Credentials, estratégia JWT), Docker Compose. Idioma da interface: pt-BR.
Regras gerais: leia 00-arquitetura-briefing-site.md e 99-progresso.md antes de começar; não avance se a etapa anterior estiver incompleta; ao terminar, devolva o 99-progresso.md atualizado. Não invente dependências fora da stack. Nada de senhas de clientes em lugar nenhum.
Tarefa
- Criar projeto Next.js 14+ com TypeScript, App Router, Tailwind e ESLint (
srcopcional — siga a estrutura do doc 00). - Instalar:
prisma @prisma/client zod react-hook-form @hookform/resolvers next-auth@beta @auth/core argon2 nodemailer @tanstack/react-query lucide-react, e iniciar shadcn/ui (componentes: button, input, textarea, label, checkbox, radio-group, dialog, form, card, progress, badge, table, select, sonner, tabs, alert). - Criar
docker-compose.ymlcomapp(Node 20) edb(postgres:16, volume nomeadopgdata),healthcheckno db, rede interna. Volumeuploadsmontado em/app/storage/uploads. - Criar
Dockerfilemulti-stage (deps → build → runner,output: "standalone"). .env.examplecom:DATABASE_URL,AUTH_SECRET,APP_URL,CPF_ENC_KEY(32 bytes base64),CPF_HASH_KEY,SMTP_HOST/PORT/USER/PASS/FROM,ADMIN_EMAIL,ADMIN_INITIAL_PASSWORD,EVOLUTION_API_URL/KEY/INSTANCEeADMIN_WHATSAPP(opcionais),UPLOAD_DIR,UPLOAD_MAX_MB=25.- Layout base pt-BR (
<html lang="pt-BR">), tema simples e responsivo (mobile primeiro: clientes vão preencher pelo celular). - Script
npm run dev,build,db:migrate,db:seed,lint.
Critérios de aceite
docker compose upsobe app + banco sem erro; página inicial abre emhttp://localhost:3000..env.examplecompleto;.envno.gitignore.npm run lintenpm run buildpassam.- Nenhuma dependência fora da stack.
Ao final, atualize 99-progresso.md (marque 01).