✨ Características: - 45 ejercicios universitarios (Basic → Advanced) - Renderizado LaTeX profesional - IA generativa (Z.ai/DashScope) - Docker 9 servicios - Tests 123/123 pasando - Seguridad enterprise (JWT, XSS, Rate limiting) 🐳 Infraestructura: - Next.js 14 + Node.js 20 - PostgreSQL 15 + Redis 7 - Docker Compose completo - Nginx + SSL ready 📚 Documentación: - 5 informes técnicos completos - README profesional - Scripts de deployment automatizados Estado: Producción lista ✅
3.7 KiB
INSTRUCCIONES PARA KIMI: LATEX Y EJERCICIOS PRO 💯
(Sprint 3 - Tareas Asignadas de Frontend y Base de Datos)
Kimi, el usuario ha revisado los resultados del módulo en el dashboard y ha identificado dos problemas críticos para la experiencia de estudio. Tu objetivo es aplicar soporte matemático visual (LaTeX) de primera clase y popular masivamente la base de datos con ejercicios dignos de un estudiante universitario.
📐 1. Renderizado de LaTeX en Frontend (Prioridad Alta)
Actualmente, fórmulas como \mathbf{u} + \mathbf{v} = (u_1 + v_1, u_2 + v_2, u_3 + v_3) o \sum_{k} a_{ik}b_{kj} aparecen como texto crudo en la interfaz dentro de "Ejemplos resueltos".
El objetivo: Utilizar el ecosistema de LaTeX para que las fórmulas se pinten magistralmente.
Archivo a Editar:
frontend/src/app/(dashboard)/modules/[moduleId]/page.tsx
Instrucciones Técnicas para el Renderizado:
- El proyecto ya cuenta con las dependencias
react-katexykatex. - Debes importar y aplicar
<BlockMath />e<InlineMath />dereact-katex, junto con su hoja de estiloskatex/dist/katex.min.css. - Reemplaza el bloque crudo actual de
example.latexFormula:// ❌ ELIMINAR ESTO: {example.latexFormula && ( <div className="rounded-lg bg-muted p-3 font-mono text-sm"> {example.latexFormula} </div> )} // ✅ REEMPLAZAR POR ALGO ASÍ: {example.latexFormula && ( <div className="rounded-lg bg-muted p-4 my-2 overflow-x-auto text-center"> <BlockMath math={example.latexFormula} /> </div> )} - IMPORTANTE (Markdown Híbrido): La propiedad
contentoexplanationsuele contener texto mezclado con LaTeX en línea (ej: "Dados dos vectores \mathbf{u} y \mathbf{v}...").- Debes implementar un parser rápido que separe el texto de las fórmulas inline para usar
<InlineMath />, o bien instalarreact-markdownjunto aremark-mathyrehype-katexpara parsear automáticamente el contenido que viene del backend como Markdown enriquecido. ¡Tú decides el approach más sólido!
- Debes implementar un parser rápido que separe el texto de las fórmulas inline para usar
🧠 2. Ampliación Masiva de Ejercicios (Prioridad Extrema)
El usuario ha sido claro: "quiero muuuuuuuuuuuuuuchos mas ejercicios, la persona tiene que salir cual pro a comerse el parcial".
Archivo a Editar:
backend/prisma/seed.ts(Opcional: puedes crear un script adyacente comobackend/prisma/seed-pro.tspara no saturar el seed base y llamarlo en cascada).
Instrucciones para el Data Seed:
- Expande brutalmente la cantidad y profundidad de los Ejemplos Resueltos (
examples) en los módulos existentes (Especialmente Álgebra Lineal, Cálculo Vectorial, Ecuaciones Diferenciales, etc.). - Debes inyectar decenas de nuevos Ejercicios (
exercises). - Curva de Dificultad (Nivel Parcial Universitativo):
- Comienza con ejercicios de dificultad
BASIC(ej. sumas de vectores simples). - Escala hacia algoritmos
INTERMEDIATE(producto cruz, determinantes 3x3). - Termina en nivel
ADVANCED/ "Modo Parcial" (matrices ortogonales, autovalores, autovectores, diagonalización de matrices complejas, optimización en Rn).
- Comienza con ejercicios de dificultad
- Asegúrate que cada ejercicio complejo tenga un
solutionStepsdetallado línea por línea en JSON o string para que al resolverlo, el UI le explique al usuario el proceso como si fuera su tutor privado. La sintaxis LaTeX de las soluciones debe estar inmaculada para encajar con tu fix del punto 1.
Pasos Finales de Validación:
- Ejecuta el nuevo seed:
npm run prisma:seed - Verifica en el dashboard que los módulos pasen a tener un aspecto "Premium" con docenas de ítems desbloqueados.
- Asegúrate de no introducir ningún error de Typescript (tu
tsc --noEmitde frontend y backend deben resistir).