Skip to content

feat: Data & Foundation — Canvas sync, Calendar sync, Profile setup, 53 planes de estudio#14

Closed
Mmateo101 wants to merge 4 commits into
devfrom
feat/a-data-foundation
Closed

feat: Data & Foundation — Canvas sync, Calendar sync, Profile setup, 53 planes de estudio#14
Mmateo101 wants to merge 4 commits into
devfrom
feat/a-data-foundation

Conversation

@Mmateo101
Copy link
Copy Markdown
Collaborator

Cambios

  • Supabase clients (browser y server)
  • Auth callback con Google OAuth
  • POST /api/canvas/sync — sincroniza entregas de Canvas iCal
  • POST /api/calendar/sync — lee 14 días de Google Calendar
  • POST /api/calendar/create — crea bloques de estudio en Google Calendar
  • GET /api/planes/[clave] — devuelve plan de estudios de una carrera
  • POST /api/profile/setup — guarda perfil, materias y dispara Canvas sync
  • scripts/seed-planes.ts — seed de 53 carreras en planes_estudio
  • data/planes/ — 53 JSONs de planes de estudio del SAMP

Para Persona B

  • materias_inscritas incluye horas_clase y horas_auto para estimar tiempo
  • planes_estudio tiene objetivo de cada materia en data jsonb

Para Persona C

  • POST /api/profile/setup listo para conectar al onboarding
  • Después del setup llamar /api/canvas/sync y /api/calendar/sync

Schema aplicado

El código usa el schema real de Supabase:

  • eventos.source, eventos.fecha_inicio, eventos.fecha_fin
  • profiles.modelo acepta 'tec21' | 'tec26'

Mmateo101 and others added 4 commits May 9, 2026 12:18
…profile setup

- Supabase browser/server SSR clients (lib/supabase/)
- Google OAuth login page + auth/callback route handler
- GET /api/planes/[clave] — plan de carrera desde planes_estudio
- POST /api/canvas/sync — parseo de iCal de Canvas a tabla eventos
- POST /api/calendar/sync — lectura de Google Calendar (14 días)
- POST /api/calendar/create — escritura de bloques a Google Calendar
- POST /api/profile/setup — upsert de perfil + materias + Canvas sync
  inicial; enriquece horas_clase/horas_auto desde el plan de carrera
- lib/ical/parser.ts — parseCanvasIcal con normalización webcal://
- lib/google/calendar.ts — getProviderToken, listEvents, createEvents
- scripts/seed-planes.ts — seed de planes_estudio desde data/planes/*.json
- data/planes/.gitkeep — carpeta lista para los JSONs del scraper

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
AAD, ARQ, BA, BIR, CIS, IDS, IMT, ITC, LAD, LDI, LEC, LUB
Incluye horasClase, horasAuto, objetivo y competencias por materia.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@supabase
Copy link
Copy Markdown

supabase Bot commented May 9, 2026

This pull request has been ignored for the connected project jwqffychkaczvknfgzbd because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@danieldiazde
Copy link
Copy Markdown
Owner

Cerrando este PR — el trabajo se integró selectivamente en #15 con cherry-pick. Tu rama se basó en commit viejo (PR #2) sin el trabajo de Persona C ni nuestro PR #11, y refactorizaste lib/supabase/server.ts y auth/callback con convenciones distintas que romperían login/onboarding/dashboard si las mergeáramos directo.

Lo que SÍ se integró en #15:

  • 53 planes de estudio JSON
  • scripts/seed-planes.ts
  • lib/ical/parser.ts
  • lib/google/calendar.ts (import adaptado a getSupabaseServer)
  • api/canvas/sync, api/calendar/sync, api/calendar/create (imports adaptados)
    • creé api/planes/ y api/planes/[clave]/ que faltaban

Si sientes que falta algo tuyo en #15, dime y lo traigo.

@danieldiazde danieldiazde deleted the feat/a-data-foundation branch May 10, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants