Saltar al contenido principal

⚡ Quick Start

Guía rápida para configurar PuntoHack en 5 minutos.

📋 Prerrequisitos

Antes de comenzar, asegúrate de tener instalado:

  • Node.js >= 20.0
  • pnpm >= 8.0 (recomendado) o npm
  • Git
  • Cuentas en:
    • Clerk (autenticación)
    • Supabase (base de datos)
    • Sentry (opcional, monitoreo)

🚀 Instalación Rápida

1. Clonar el Repositorio

git clone <repository-url>
cd puntohack

2. Instalar Dependencias

pnpm install

3. Configurar Variables de Entorno

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_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard

# Database (Supabase)
DATABASE_URL=postgresql://user:password@host:port/database
DIRECT_URL=postgresql://user:password@host:port/database

# Supabase Realtime
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

# Sentry (Opcional)
SENTRY_DSN=https://...@sentry.io/...
SENTRY_AUTH_TOKEN=tu-token-de-sentry

# UploadThing (Opcional)
UPLOADTHING_TOKEN=tu-token
UPLOADTHING_APP_ID=tu-app-id

# Cron Job
CRON_SECRET=tu-secret-super-seguro-aqui

4. Configurar Base de Datos

# Generar Prisma Client
pnpm db:generate

# Aplicar schema a la base de datos
pnpm db:push

# (Opcional) Abrir Prisma Studio
pnpm db:studio

5. Ejecutar en Desarrollo

PuntoHack usa Turbopack por defecto para un desarrollo más rápido:

pnpm dev

Esto ejecuta next dev --turbo automáticamente. La aplicación estará disponible en http://localhost:3000

Nota: Si necesitas usar Webpack en lugar de Turbopack, usa pnpm dev:webpack

✅ Verificar Instalación

1. Verificar Base de Datos

Visita http://localhost:3000/api/test-db - Deberías ver un mensaje de éxito.

2. Verificar Autenticación

  1. Visita http://localhost:3000/sign-up
  2. Crea una cuenta
  3. Completa el onboarding
  4. Deberías ser redirigido al dashboard

3. Verificar Módulos

# Ejecutar tests
pnpm test

# Ver coverage
pnpm test:coverage

🎯 Primeros Pasos

Crear un Usuario Admin

# Seed de usuarios de prueba
pnpm db:seed:users

O manualmente desde Prisma Studio:

  1. Abre pnpm db:studio
  2. Ve a la tabla Profile
  3. Crea un perfil con role: ADMIN

Crear un Hackathon de Prueba

# Seed de hackathons
pnpm db:seed:hackathons

O desde la UI:

  1. Inicia sesión como ORGANIZER o ADMIN
  2. Ve a /admin/hackathons/create
  3. Crea un hackathon con fechas válidas

📚 Siguiente Paso

Una vez configurado, te recomendamos:

  1. Prerequisites - Revisar requisitos completos
  2. Project Overview - Entender la estructura
  3. Architecture Overview - Ver la arquitectura

🐛 Problemas Comunes

Error: "Prisma Client not generated"

pnpm db:generate

Error: "Database connection failed"

Verifica que:

  • DATABASE_URL esté correcto en .env.local
  • La base de datos de Supabase esté activa
  • Las credenciales sean correctas

Error: "Clerk authentication failed"

Verifica que:

  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY esté en .env.local
  • CLERK_SECRET_KEY esté en .env.local
  • Las keys sean del mismo proyecto de Clerk

¿Todo funcionando?Project Overview