Como executar o projeto localmente
🚀
Deploys disponíveis
- Documentação: pdpx-docs.vercel.app
- Front-end (deploy): pdpx-web-ten.vercel.app
Deploys hospedados na Vercel.
Pré-requisitos
- Node.js 20.x ou 22.x (recomendado). Mínimo suportado: 18.18.
- PNPM (workspace usa pnpm v10)
- Variáveis de ambiente (.env) para API e Web quando necessário
# Exemplo com nvm
nvm install 20
nvm use 20- Variáveis de ambiente (.env) para API e Web quando necessário
Passos rápidos (monorepo)
pnpm install
# subir tudo em modo dev (usa Turborepo)
pnpm devExecutar apps individualmente
API (NestJS)
pnpm -F @pdpx/api dev
# Porta padrão: 3010 (variável: API_PORT)
# Swagger: http://localhost:3010/api/docs
# Banco de dados: Supabase (Postgres)Web (Next.js)
pnpm -F @pdpx/web dev
# Porta padrão: 3000E2E (Cypress)
pnpm e2e:open
# ou
pnpm -F @pdpx/web-e2e e2e:run- Os testes de e-mail utilizam MailSlurp. Configure
MAILSLURP_API_KEY(ouCYPRESS_MAILSLURP_API_KEY).
Variáveis de ambiente
Lista das variáveis usadas no projeto (apenas nomes e finalidade, sem valores):
API (NestJS)
API_PORT: porta da API em desenvolvimento (padrão 3010).DATABASE_URL: string de conexão do PostgreSQL usada pelo Prisma.DIRECT_URL: conexão direta do PostgreSQL (migrations/CLI do Prisma).SUPABASE_URL: URL do projeto Supabase.SUPABASE_ANON_KEY: chave pública do Supabase.SUPABASE_SERVICE_ROLE_KEY: chave de service role do Supabase (uso restrito no servidor).
Web (Next.js)
NEXT_PUBLIC_API_BASE_URL: base URL da API consumida pelo frontend.NEXT_PUBLIC_SITE_URL: URL pública do site (SEO/OG/etc.).VERCEL_URL: fornecida pelo Vercel em deploys (opcional, usada como fallback em alguns cenários).
E2E (Cypress)
CYPRESS_BASE_URL: base da aplicação web sob teste (padrão http://localhost:3000).API_BASE_URL: base da API para testes (fallback seNEXT_PUBLIC_API_BASE_URLnão estiver presente).NEXT_PUBLIC_API_BASE_URL: também pode ser lida pelos testes como fallback.MAILSLURP_API_KEYouCYPRESS_MAILSLURP_API_KEY: chave para testes de e-mail (quando habilitado).
Observações
turbo.jsoncoordena as tasks e variáveis compartilhadas.pnpm-workspace.yamldefine os workspacesapps/*epackages/*.