📋 Prerrequisitos
Requisitos del Sistema​
Software Necesario​
-
Node.js >= 20.0
- Descargar desde nodejs.org
- Verificar:
node --version
-
pnpm >= 8.0 (recomendado) o npm >= 9.0
- Instalar pnpm:
npm install -g pnpm - Verificar:
pnpm --version
- Instalar pnpm:
-
Git
- Descargar desde git-scm.com
- Verificar:
git --version
Editor de Código (Recomendado)​
- VS Code con extensiones:
- ESLint
- Prettier
- Prisma
- TypeScript
Cuentas y Servicios Requeridos​
1. Clerk (Autenticación)​
Requisito: Cuenta gratuita de Clerk
Pasos:
- Crear cuenta en clerk.com
- Crear nueva aplicación
- Configurar providers (Email, Google, GitHub)
- Obtener keys:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEY
Plan: Free tier es suficiente para desarrollo
2. Supabase (Base de Datos)​
Requisito: Cuenta gratuita de Supabase
Pasos:
- Crear cuenta en supabase.com
- Crear nuevo proyecto
- Obtener connection string:
DATABASE_URL(connection pooling)DIRECT_URL(direct connection)
- Obtener keys para Realtime:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
Plan: Free tier incluye:
- 500 MB database
- 2 GB bandwidth
- Realtime habilitado
3. Sentry (Monitoreo - Opcional)​
Requisito: Cuenta gratuita de Sentry
Pasos:
- Crear cuenta en sentry.io
- Crear nuevo proyecto (Next.js)
- Obtener
SENTRY_DSN
Plan: Free tier es suficiente para desarrollo
4. Vercel (Deployment - Opcional para desarrollo local)​
Requisito: Cuenta gratuita de Vercel
Pasos:
- Crear cuenta en vercel.com
- Conectar repositorio Git
- Configurar variables de entorno
Plan: Free tier incluye:
- Deployments ilimitados
- 100 GB bandwidth
- Cron jobs
Variables de Entorno​
Archivo .env.local​
Crea un archivo .env.local en la raÃz del proyecto:
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
# Database (Supabase)
DATABASE_URL=postgresql://postgres:[PASSWORD]@[HOST]:5432/postgres?pgbouncer=true
DIRECT_URL=postgresql://postgres:[PASSWORD]@[HOST]:5432/postgres
# Supabase Realtime
NEXT_PUBLIC_SUPABASE_URL=https://[PROJECT_ID].supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# Sentry (Opcional)
SENTRY_DSN=https://...@sentry.io/...
# Cron Job Secret
CRON_SECRET=tu-secret-super-seguro-aqui
Obtener Variables​
Clerk​
- Ve a Clerk Dashboard
- Selecciona tu aplicación
- Ve a API Keys
- Copia
Publishable KeyySecret Key
Supabase​
- Ve a Supabase Dashboard
- Selecciona tu proyecto
- Ve a Settings → API
- Copia
Project URLyanon publickey - Ve a Settings → Database
- Copia
Connection string(usando connection pooling) - Para
DIRECT_URL, usa la misma string pero sin?pgbouncer=true
Sentry​
- Ve a Sentry Dashboard
- Selecciona tu proyecto
- Ve a Settings → Client Keys (DSN)
- Copia el DSN
Verificación de Instalación​
1. Verificar Node.js​
node --version
# Debe mostrar >= 20.0
2. Verificar pnpm​
pnpm --version
# Debe mostrar >= 8.0
3. Verificar Git​
git --version
# Debe mostrar cualquier versión
4. Verificar Variables de Entorno​
# En la raÃz del proyecto
cat .env.local
# Debe mostrar todas las variables configuradas
Configuración Adicional​
Prisma Studio​
Prisma Studio está incluido y se ejecuta con:
pnpm db:studio
Supabase Realtime​
Después de configurar Supabase, necesitas habilitar Realtime:
- Ve a Supabase Dashboard
- Database → Replication
- Habilita Realtime para:
HackathonSubmissionScoreChallengeEvaluationNotificationTeam
Ver Supabase Realtime Configuration para detalles.
Troubleshooting​
Error: "Cannot find module"​
Solución: Instalar dependencias
pnpm install
Error: "Database connection failed"​
Solución: Verificar DATABASE_URL y DIRECT_URL en .env.local
Error: "Clerk authentication failed"​
Solución: Verificar que las keys de Clerk sean correctas y del mismo proyecto
Error: "Supabase Realtime not configured"​
Solución:
- Verificar
NEXT_PUBLIC_SUPABASE_URLyNEXT_PUBLIC_SUPABASE_ANON_KEY - Verificar que Realtime esté habilitado en Supabase Dashboard
Siguiente Paso​
Una vez configurados todos los prerrequisitos:
→ Quick Start
¿Problemas? → Troubleshooting