Commit Graph
61 Commits
Author SHA1 Message Date
Guillermo.Arrieta 846e3abf74 Propuesta de placeholders para descripción del enfoque académico e instrucciones adicionales para la IA. fix #23 2026-02-09 19:18:04 +00:00
Guillermo.Arrieta 958b558111 Se limitaron el número de caracteres y de digitos en los inputs de los wizards 2026-02-06 12:52:54 -06:00
Guillermo.Arrieta 1f78284fb6 Orden de listado de planes issue #71
Fix #71: ahora los planes se listan por orden de creación descendente (los más recientes primero)
2026-02-06 11:20:13 -06:00
Guillermo.Arrieta b1a233fa8c Feat: generación IA de asignaturas, navegación con confetti y ajustes de API
closes #63:
- Añadido AIGenerateSubjectInput y nueva implementación ai_generate_subject que envía FormData (soporta archivosAdjuntos) al Edge Function.
- Creado hook useGenerateSubjectAI (mutation) y usado en WizardControls de asignaturas para generar la asignatura vía IA.
- WizardControls (asignaturas) construye el payload IA, invoca la mutación y navega al detalle de la asignatura creada pasando state.showConfetti para lanzar confetti.
- Ajustes en subjects.api.ts (nombres de endpoint, tipos y envío de datos) y sincronización de tipos en WizardControls (plan y campos básicos).
- Ruta de detalle de asignatura ($asignaturaId) ahora lee location.state.showConfetti y dispara lateralConfetti al entrar.
- Eliminado el prop onCreate del modal de nueva asignatura (la creación IA se gestiona internamente).
2026-02-05 13:41:10 -06:00
Guillermo.Arrieta f00fabeac5 Fix #63: mostrar mensaje real de error de Edge Function en UI
- Mejorar invokeEdge para parsear el body JSON de errores HTTP de las Edge Functions y extraer un message humano (soporta { error: { message } }, { error: "..." } y { message: "..." }).
- EdgeFunctionError ahora incluye status y details; se manejan también FunctionsRelayError y FunctionsFetchError con mensajes más descriptivos.
- Ajustes en el front: WizardControls muestra el mensaje real del error (no el genérico "Edge Function returned a non-2xx status code"), y se corrige navegación/logging tras crear plan IA (uso de `plan` en vez de `data` y `navigate` a `/planes/{plan.id}`).
- Actualización de types/API: renombrados campos en AIGeneratePlanInput para alinear nombres (descripcionEnfoqueAcademico, instruccionesAdicionalesIA).
2026-02-05 13:41:09 -06:00
Guillermo.Arrieta c82fac52f7 Refactor: unifica wizards con WizardLayout/WizardResponsiveHeader y convierte asignaturas en layout con Outlet
- Se introdujo un layout genérico de wizard (WizardLayout) con headerSlot/footerSlot y se migraron los modales de Nuevo Plan y Nueva Asignatura a esta estructura usando defineStepper.
- Se creó y reutilizó WizardResponsiveHeader para un encabezado responsivo consistente (progreso en móvil y navegación en escritorio) en ambos wizards.
- Se homologó WizardControls del wizard de asignaturas para alinearlo al patrón del wizard de planes (props onPrev/onNext, flags de disable, manejo de error/loading y creación).
- Se mejoró la captura de datos en el wizard de asignatura: créditos como flotante con 2 decimales, placeholders/estilos en inputs/selects y uso de catálogo real de estructuras vía useSubjectEstructuras con qk.estructurasAsignatura.
- Se reorganizó la sección de asignaturas del detalle del plan: el contenido del antiguo index se movió a asignaturas.tsx como layout y se agregó <Outlet />; navegación a “nueva asignatura” ajustada al path correcto.
2026-02-05 13:41:09 -06:00
Guillermo.Arrieta 1acb18711f Reintegración con main. Corrección de errores de fetch. Sincronización con la base de datos remota 2026-02-03 15:10:09 -06:00
Guillermo.Arrieta f046bdcc04 Refactorización de wizards para consistencia, reusabilidad y mantenibilidad 2026-02-03 13:13:44 -06:00
Guillermo.Arrieta 12c572a442 Reorganización de archivos y enlace a wizard de creación de asignatura 2026-02-03 13:13:44 -06:00
Guillermo.Arrieta c27f05c5f6 Ahora solo se muestran los círculos con palomita si el archivo/repositorio está seleccionado
fix #61
2026-01-30 13:34:16 -06:00
Guillermo.Arrieta efab8eb2e4 Colocar el nombre de la Facultad/Carrera en el Resumen de la creación de los planes
fix #56:
Ya se muestra el nombre de la facultad y de la carrera.
2026-01-30 13:21:11 -06:00
Guillermo.Arrieta 867ecc53e0 Que se pueda escribir en el campo de Instrucciones adicionales para la IA
fix #59:
El bug se debía a que en la funcion onChange se hacia referencia al valor a cambiar con 'I' mayúscula en vez de minúscula.
2026-01-30 12:50:31 -06:00
Guillermo.Arrieta 4d8f7d7b41 Merge branch 'main' of https://github.lci.ulsa.mx/Guillermo.Arrieta/acad-ia-2 2026-01-30 12:43:54 -06:00
Guillermo.Arrieta 36a369a207 Error de CORS ai-generate-plan
fix #60:
El problema se solucionó del lado del backend perimitiendo el header 'x-supabase-client-platform'. Adicionalmente, al crear un plan ya no se redirige a planes/$planId/datos, sino a planes/$planId.
2026-01-30 12:40:53 -06:00
Guillermo.Arrieta 8786aaae25 Arreglado orden de renderizado de campos 2026-01-28 18:08:00 -06:00
Guillermo.Arrieta 9065899616 bugfix: el enlace a Datos generales aparecía como activo aunque no se estuviera en ese tab 2026-01-28 16:14:53 -06:00
Guillermo.Arrieta 9cad2a0f62 Merge branch 'fix/incidencias' into feat/not-found-pages 2026-01-28 14:25:54 -06:00
Guillermo.Arrieta 4e00262ab0 Redirección de plan de estudios y arreglo de placeholders en datos
close #22:
Al darle clic a un plan te lleva al index de planes/$planId, el cual es ahora la tab de datos.
Al darle al enlace de volver al plan desde el detalle de la asignatura, ya te redirige a planes/$planId/materias.
Se cambió el estilo de los placeholders en la tab de datos del detalle de plan, y ahora solo se muestra el primer ejemplo.
2026-01-28 14:06:17 -06:00
Guillermo.Arrieta 35ea4caa39 Fallback elegante de vista no encontrada
close #44:
Se creó la NotFoundPage y se utiliza en __root con el notFoundComponent.
Se agregó la lógica del loader tanto de plan de estudios como de asignaturas.
Se agregó el NotFoundComponent para el detalle de plan de estudios y el de asignaturas
2026-01-28 12:58:50 -06:00
Guillermo.Arrieta 9584cd0c04 Se cierran incidencias #10, #21, #24, #25; se añade generación manual de planes
close #10:
Al crear un plan de manera manual o con IA y redirigirse a planes/{$planId}/datos, sale el confetti.

close #21:
Los archivos que se adjuntan en el wizard ya no se pueden subir mas que una vez.

close #24:
El input de número de ciclos ahora solo permite enteros positivos mayores a 0.

close #25:
Se quitó el botón de generar borrador.
Al adjuntar el primer archivo al wizard, se hace scroll hasta el dropzone.
Los archivos añadidos se listan desde el más reciente al más antiguo.
Se indica claramente el número de archivos adjuntos y el número máximo de archivos que se pueden adjuntar.
2026-01-27 12:01:05 -06:00
Guillermo.Arrieta 80d875167a close #40 2026-01-27 12:00:31 -06:00
Guillermo.Arrieta 4950f7efbf Se generan los planes con IA de manera correcta 2026-01-22 12:39:52 -06:00
Guillermo.Arrieta aa867e4612 Merge branch 'fix/merge' into feat/ai-generate-plan 2026-01-21 16:03:22 -06:00
Guillermo.Arrieta b5e6565ae1 configuraciones adicionales de formateo 2026-01-21 14:01:25 -06:00
Guillermo.Arrieta 254f6383d7 generación de plan con invalidación de queries 2026-01-21 12:11:12 -06:00
Guillermo.Arrieta 18f2bed3ea primera versión funcional de creación de plan con IA 2026-01-20 17:04:39 -06:00
Guillermo.Arrieta 9aad9aed00 Wizard listo para enviar información a ai-generate-plan 2026-01-15 15:54:36 -06:00
Guillermo.Arrieta b08d58e262 wip 2026-01-13 14:30:57 -06:00
Guillermo.Arrieta 55c37b83b4 listado de planes exitoso 2026-01-13 11:52:57 -06:00
Guillermo.Arrieta 268d83fb4b tipos de domain sin hardcode (falta revisar PlanDatosSep) 2026-01-12 12:03:17 -06:00
Guillermo.Arrieta 5a7672677d tipado desde supabase, primer listado de planes, ajustes en src/data 2026-01-12 12:03:17 -06:00
Guillermo.Arrieta b9c809e648 bugs arreglados de FileDropZone 2026-01-08 17:14:29 -06:00
Guillermo.Arrieta cddc676f7d Barra de busqueda para filtrar referencias para la IA, cambios a FileDropZone 2026-01-08 13:41:37 -06:00
Guillermo.Arrieta edae79c255 wip 2026-01-07 15:01:12 -06:00
Guillermo.Arrieta 69119aeaa6 finalizada sección de Referencias para la IA 2026-01-06 17:02:55 -06:00
Guillermo.Arrieta cc3dd28137 Merge branch 'build' of https://github.lci.ulsa.mx/Guillermo.Arrieta/acad-ia-2 into build 2026-01-06 16:33:28 -06:00
Guillermo.Arrieta 2e425061c3 algo 2026-01-06 16:33:24 -06:00
Guillermo.Arrieta 9420fde5bf Actualizar src/components/ui/input.tsx 2026-01-06 20:04:42 +00:00
Guillermo.Arrieta 45c8fe1cf3 build sin typecheck 2026-01-06 14:01:23 -06:00
Guillermo.Arrieta ef177a3f92 wip 2026-01-06 13:46:57 -06:00
Guillermo.Arrieta 04b8c45987 Separación vista/lógica de wizard de creación de asignatura 2026-01-05 14:22:39 -06:00
Guillermo.Arrieta a65e34b41c Separación vista/lógica del wizard de creación de plan 2026-01-05 13:24:48 -06:00
Guillermo.Arrieta d0e095c979 vista de wizard de creación de materia 2026-01-05 10:50:36 -06:00
Guillermo.Arrieta 684a3d8662 wip 2026-01-02 15:23:39 -06:00
Guillermo.Arrieta 6a2a4c0f05 Responsividad correcta para el wizard 2025-12-31 14:32:55 -06:00
Guillermo.Arrieta f535eea085 ya casi está la responsividad 2025-12-31 13:51:25 -06:00
Guillermo.Arrieta 09e9e03767 wip 2025-12-31 13:34:09 -06:00
Guillermo.Arrieta 8d20fd4492 primera versión de stepper 2025-12-29 13:14:25 -06:00
Guillermo.Arrieta cc3d2497b7 detalles cambiados y ejemplo de stepper 2025-12-29 12:41:08 -06:00
Guillermo.Arrieta 8dc45d526f Stepper de ejemplo integrado 2025-12-29 11:32:56 -06:00
Guillermo.Arrieta 0069775ed4 routeTree.gen 2025-12-25 20:27:32 -06:00
Guillermo.Arrieta 50aec499c7 Merge remote-tracking branch 'origin/main' into feat/planes-vista 2025-12-25 20:13:49 -06:00
Guillermo.Arrieta 2b107af73c lint arreglado en dos archivos 2025-12-25 20:09:28 -06:00
Guillermo.Arrieta b4570f56b4 Primera versión adecuada del listado de planes 2025-12-25 19:20:12 -06:00
Guillermo.Arrieta d0b80b77f5 Filtro funcionando primera versión 2025-12-25 18:52:37 -06:00
Guillermo.Arrieta 2f4f445ff0 wip 2025-12-22 21:05:35 -06:00
Guillermo.Arrieta ad9e9c1619 Entorno linteado y typechecado 2025-12-19 16:32:42 -06:00
Guillermo.Arrieta b38fe2d8b4 Configuraciones finales de eslint, formateo y scripts de package.json 2025-12-19 15:53:51 -06:00
Guillermo.Arrieta ad197c9aad Dashboard v1 y configuraciones adicionales de prettier 2025-12-18 19:49:50 -06:00
Guillermo.Arrieta e40ea49031 configuraciones de eslint y prettier 2025-12-17 23:08:27 -06:00
Guillermo.Arrieta c3abc377bf initial commit 2025-12-17 19:40:40 -06:00