You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configurar el proyecto Supabase (si no existe) y definir el esquema de base de datos para cursos, inscripciones y progreso de usuarios. Este issue es la base para los siguientes (sincronizar progreso y puntos).
Pasos
1. Proyecto Supabase
Crear proyecto en Supabase para el entorno correspondiente (dev/staging/prod) o confirmar que ya existe.
Anotar SUPABASE_URL y SUPABASE_ANON_KEY (y SERVICE_ROLE_KEY solo en backend si aplica).
Configurar variables de entorno en el repo (ej. en .env.example y en Vercel/Netlify) sin exponer la service role en el frontend.
2. Esquema de tablas
Diseñar e implementar (migraciones SQL o desde el dashboard) al menos:
cursos (opcional si los cursos siguen en código): id, titulo, descripcion, duracion, nivel, imagen, capitulos/lecciones (JSON o tablas relacionadas), etc.
usuarios o perfiles: identificador por wallet_address (o user_id si más adelante hay auth adicional). Campos útiles: wallet_address (PK o unique), puntos, created_at, updated_at.
inscripciones: id, wallet_address, curso_id, inscrito_en (timestamp), opcional firma_mensaje o hash para auditoría.
progreso_lecciones: id, wallet_address, curso_id, leccion_index (o seccion_id), completado_en, completado (boolean). Clave única por (wallet, curso, leccion) para no duplicar.
3. Row Level Security (RLS)
Activar RLS en tablas que contengan datos por usuario (perfiles, inscripciones, progreso_lecciones).
Políticas: cada usuario solo puede leer/escribir filas donde wallet_address = auth.uid() o equivalente (si usan custom JWT con wallet) o mediante service_role en backend.
Documentar en el repo cómo se identifica al usuario (wallet vs Supabase Auth) para futuras consultas.
4. Documentación
Añadir al repo (ej. docs/SUPABASE.md o README) un resumen del esquema, enlaces al proyecto Supabase (sin credenciales) y pasos para correr migraciones localmente si aplica.
Entregables
Proyecto Supabase creado y accesible.
Esquema SQL aplicado (script en repo o migración versionada).
RLS configurado y probado con un usuario de prueba.
.env.example actualizado con las variables necesarias.
Documentación mínima del esquema y políticas.
Relación con otros issues
Bloqueado por: ninguno (es el primero).
Bloquea: “Sincronizar progreso de lecciones con Supabase” y “Sistema de puntos por progreso y mostrarlos en perfil”.
Labels sugeridos
infra, supabase, database, epic: progreso y puntos
Descripción
Configurar el proyecto Supabase (si no existe) y definir el esquema de base de datos para cursos, inscripciones y progreso de usuarios. Este issue es la base para los siguientes (sincronizar progreso y puntos).
Pasos
1. Proyecto Supabase
SUPABASE_URLySUPABASE_ANON_KEY(ySERVICE_ROLE_KEYsolo en backend si aplica)..env.exampley en Vercel/Netlify) sin exponer la service role en el frontend.2. Esquema de tablas
Diseñar e implementar (migraciones SQL o desde el dashboard) al menos:
cursos(opcional si los cursos siguen en código):id,titulo,descripcion,duracion,nivel,imagen,capitulos/lecciones(JSON o tablas relacionadas), etc.usuariosoperfiles: identificador porwallet_address(ouser_idsi más adelante hay auth adicional). Campos útiles:wallet_address(PK o unique),puntos,created_at,updated_at.inscripciones:id,wallet_address,curso_id,inscrito_en(timestamp), opcionalfirma_mensajeo hash para auditoría.progreso_lecciones:id,wallet_address,curso_id,leccion_index(oseccion_id),completado_en,completado(boolean). Clave única por (wallet, curso, leccion) para no duplicar.3. Row Level Security (RLS)
perfiles,inscripciones,progreso_lecciones).wallet_address = auth.uid()o equivalente (si usan custom JWT con wallet) o medianteservice_roleen backend.4. Documentación
docs/SUPABASE.mdo README) un resumen del esquema, enlaces al proyecto Supabase (sin credenciales) y pasos para correr migraciones localmente si aplica.Entregables
.env.exampleactualizado con las variables necesarias.Relación con otros issues
Labels sugeridos
infra,supabase,database,epic: progreso y puntos