🎯 TutorConnect UC - Resumen Ejecutivo (Supabase Stack)

✅ Lo que YA TIENES

  • courses.ndjson: Miles de ramos reales UC con códigos exactos
  • Experiencia Full-stack: React, TypeScript, PostgreSQL
  • Bases del Hackathon: Conoces reglas, criterios de evaluación, deadlines
  • Diseño completo: Base de datos, UX/UI, arquitectura documentada

🚀 Stack Tecnológico Final (Supabase)

┌─────────────────────────────────────────────────────────────┐
│                    FRONTEND (Vercel)                        │
│  Next.js 14 + App Router + TypeScript                      │
│  Tailwind CSS + shadcn/ui                                   │
│  Supabase Client (Auth + Database + Realtime)              │
│  @supabase/auth-helpers-nextjs                             │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                   SUPABASE (Backend)                        │
│  ✅ PostgreSQL Database (con RLS)                           │
│  ✅ Authentication (@uc.cl verification)                    │
│  ✅ Storage (Fotos de perfil)                               │
│  ✅ Realtime (Subscripciones en tiempo real)                │
│  ✅ Edge Functions (Gemini AI + APIs externas)              │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                    INTEGRACIONES                            │
│  • Google Gemini API (Matching inteligente)                │
│  • Biblioteca UC API (Reserva de salas - opcional)          │
└─────────────────────────────────────────────────────────────┘

🎯 ¿Por Qué Supabase para Este Hackathon?

CaracterísticaVentaja
Setup rápido5 min vs 30 min con Laravel
🔐 Auth incluidoEmail @uc.cl verification built-in
🛡️ Row Level SecuritySeguridad a nivel de BD sin código
📡 RealtimeNotificaciones/chat sin configuración
🖼️ StorageSubida de fotos sin S3
🚀 Edge FunctionsDeploy de Gemini AI sin servidor
💰 Free tierPerfecto para hackathon
📱 TypeScriptTodo en un solo lenguaje

📊 Arquitectura de Datos

Tablas Principales

profiles (auth.users extendido)
  ↓
tutores ← tutor_ramo → ramos
  ↓           ↓
tutoring_sessions
  ↓
reviews

Features Clave de la BD

  • UUID como PK (mejor para distributed systems)
  • RLS Policies (seguridad automática)
  • Triggers (auto-update timestamps)
  • Funciones SQL (cálculos de rating, conteos)
  • Vistas materializadas (queries complejas optimizadas)

🎨 Páginas del Frontend

Para Estudiantes (Next.js)

  1. / - Landing page con hero + búsqueda
  2. /buscar - Búsqueda de tutores con filtros
  3. /tutor/[id] - Perfil completo de tutor
  4. /ofertas - Marketplace de ofertas
  5. /busquedas - Posts de estudiantes buscando tutores
  6. /agendar/[tutorId] - Modal/página de agendamiento
  7. /mis-tutorias - Dashboard del estudiante
  8. /perfil - Perfil del usuario

Para Tutores (Next.js Dashboard)

  1. /tutor/dashboard - Dashboard con stats
  2. /tutor/ofertas - Gestión de ofertas
  3. /tutor/propuestas - Ver búsquedas de estudiantes
  4. /tutor/sesiones - Calendario de tutorías
  5. /tutor/perfil - Configuración de tutor

🤖 Integración con Gemini AI

3 Casos de Uso

1. Matching Inteligente (/buscar)

// Edge Function: supabase/functions/gemini-match
Input: courseCode, studentPreferences
Output: Top 3 tutores con reasoning

2. Generador de Propuestas (/tutor/propuestas)

// Edge Function: supabase/functions/generate-proposal
Input: studentRequest, tutorProfile
Output: Propuesta personalizada

3. Recomendaciones de Ramos (/)

// Edge Function: supabase/functions/suggest-courses
Input: userHistory, grades
Output: Ramos sugeridos para estudiar

🔐 Autenticación y Seguridad

Flujo de Auth

1. Registro con email @uc.cl
   ↓
2. Supabase envía email de verificación
   ↓
3. Usuario confirma email
   ↓
4. Trigger crea perfil en tabla profiles
   ↓
5. Usuario selecciona rol (student/tutor/both)
   ↓
6. Si es tutor → completa perfil en tabla tutores

RLS Policies (Ejemplos)

-- Todos ven perfiles públicos
CREATE POLICY "Profiles públicos"
  ON profiles FOR SELECT
  USING (true);
 
-- Solo dueño edita su perfil
CREATE POLICY "Solo dueño edita"
  ON profiles FOR UPDATE
  USING (auth.uid() = id);
 
-- Solo participantes ven sesiones
CREATE POLICY "Participantes ven sesiones"
  ON tutoring_sessions FOR SELECT
  USING (
    auth.uid() = student_id OR
    auth.uid() IN (SELECT user_id FROM tutores WHERE id = tutor_id)
  );

📦 Dependencias del Proyecto

Frontend (Next.js)

{
  "dependencies": {
    "next": "^14.0.0",
    "@supabase/supabase-js": "^2.39.0",
    "@supabase/auth-helpers-nextjs": "^0.8.0",
    "react": "^18.2.0",
    "typescript": "^5.3.0",
    "tailwindcss": "^3.4.0",
    "@radix-ui/react-*": "latest",
    "class-variance-authority": "^0.7.0",
    "clsx": "^2.0.0",
    "tailwind-merge": "^2.0.0",
    "date-fns": "^3.0.0",
    "zod": "^3.22.0",
    "react-hook-form": "^7.48.0",
    "@google/generative-ai": "^0.1.0"
  }
}

Supabase CLI (Local Dev)

npm install -g supabase
supabase init
supabase start

🚀 Plan de Desarrollo (9 horas)

Hora 1 (9:00-10:00): Setup Infrastructure

  • 10 min: Crear proyecto Supabase en dashboard
  • 15 min: Crear proyecto Next.js + instalar deps
  • 20 min: Ejecutar schema SQL en Supabase
  • 10 min: Configurar Auth (@uc.cl email verification)
  • 5 min: Deploy inicial a Vercel

Hora 2 (10:00-11:00): Seed Data + Auth

  • 20 min: Script para seedear ramos desde courses.ndjson
  • 15 min: Crear datos fake de tutores
  • 15 min: Implementar login/registro con Supabase Auth
  • 10 min: Middleware para proteger rutas

Hora 3-4 (11:00-13:00): Core Features

  • 30 min: Landing page con hero + búsqueda rápida
  • 30 min: Página de búsqueda con filtros
  • 30 min: Perfil de tutor (tabs: info, ramos, reviews)
  • 30 min: Dashboard del tutor básico

Hora 5-6 (13:00-15:00): Marketplace

  • 30 min: Marketplace de ofertas (feed)
  • 30 min: Búsquedas de estudiantes (feed)
  • 30 min: Agendar tutoría (modal/form)
  • 30 min: Mis tutorías (lista para estudiante y tutor)

Hora 7 (15:00-16:00): Gemini AI Integration

  • 20 min: Edge Function para matching
  • 20 min: Botón “Recomiéndame tutores” en /buscar
  • 20 min: Generador de propuestas para tutores

Hora 8 (16:00-17:00): Reviews + Polish

  • 20 min: Sistema de reviews (form + display)
  • 20 min: Calcular ratings promedio (función SQL)
  • 20 min: Pulir UI/UX con shadcn components

Hora 9 (17:00-18:00): Testing + Deploy

  • 20 min: Testing manual de flujos críticos
  • 20 min: Fixes de bugs
  • 20 min: Deploy final + video demo

💡 Ventajas vs Laravel para el Hackathon

AspectoLaravel + RailwaySupabase
Setup time~30 min~5 min
AuthManual JWT/SanctumBuilt-in
Admin panelFilament (genial pero tiempo)Dashboard propio (más flexible)
RealtimePusher (extra setup)Built-in
StorageS3 configBuilt-in
DeployRailway + VercelVercel (1 solo)
Testing localLaravel Sail/ValetSupabase CLI (fácil)
TypeScriptAPIs RESTCliente tipado

🎯 Criterios de Evaluación del Hackathon

Google AI Challenge (40%)

  • Uso de Gemini API: Matching de tutores, generación de propuestas
  • Innovación: Recomendaciones personalizadas con context awareness
  • Impacto: Mejora real en encontrar el tutor correcto

Technical Implementation (30%)

  • Stack moderno: Next.js 14, Supabase, TypeScript
  • Best practices: RLS, tipos seguros, componentes reutilizables
  • Performance: Edge functions, caching, optimistic updates

User Experience (20%)

  • Diseño: shadcn/ui profesional, responsive
  • Flujo: Intuitivo desde buscar hasta agendar
  • Accesibilidad: Semantic HTML, keyboard navigation

Pitch & Demo (10%)

  • Problema claro: Estudiantes UC necesitan tutores verificados
  • Solución única: P2P + verificación UC + Gemini AI
  • Demo fluida: Mostrar búsqueda → matching → agendamiento

🔥 Features Diferenciadores

Must-Have (Core)

  1. Verificación @uc.cl: Solo estudiantes UC pueden registrarse
  2. Ramos reales: Catálogo completo de ramos UC
  3. Matching Gemini: Top 3 tutores con explicación de por qué
  4. Marketplace dual: Tutores ofrecen + estudiantes buscan

Nice-to-Have (Bonus)

  1. Realtime notifications: Supabase Realtime para nuevas solicitudes
  2. Calendar integration: Export to Google Calendar
  3. Review system: Rating + comentarios post-tutoría

Post-Hackathon

  1. 🚀 Payment integration: Flow/Mercadopago
  2. 🚀 Chat en vivo: Mensajería entre tutor-estudiante
  3. 🚀 Analytics: Dashboard con métricas para tutores

📝 Checklist Pre-Hackathon

Día Antes (18 diciembre)

  • Crear cuenta Supabase
  • Crear cuenta Vercel
  • Obtener Gemini API Key
  • Revisar courses.ndjson
  • Leer documentación Supabase Auth
  • Preparar assets (logo UC, colores institucionales)

Morning of (19 diciembre 9am)

  • Café ☕
  • Setup workspace
  • Clonar template Next.js
  • Tener este documento a mano
  • Music playlist 🎵

🎓 Recursos Útiles

Documentación

Templates/Examples


💪 Palabras Finales

Este stack te permite:

  • ✅ Enfocarte en features, no en infraestructura
  • ✅ Iterar rápido con TypeScript end-to-end
  • ✅ Demostrar skills modernos (Supabase, Edge Functions)
  • ✅ Escalar fácil si el proyecto crece post-hackathon

Tiempo estimado real:

  • Setup: 1 hora
  • Features core: 4 horas
  • Gemini AI: 1 hora
  • Polish: 1 hora
  • Testing: 1 hora
  • Buffer: 1 hora para imprevistos

¡Vamos con todo! 🚀