Plataforma con frontend Next.js, TypeScript y Tailwind CSS, respaldada por Django y MySQL. Incluye diagnóstico, ruta personalizada versionada, currículo modular, lecciones, evaluaciones, desbloqueo por dominio, panel de progreso y administración.
La plataforma reproduce el comportamiento pedagógico de Ruta Maestra mediante la Responses API de OpenAI. Un GPT compartido de ChatGPT no puede consumirse directamente como endpoint; sus instrucciones se mantienen en content/prompts/ruta_maestra.txt y se aplican al diagnóstico y al copiloto docente.
Configura en .env:
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-5.6-terra
También puede usar OpenRouter:
AI_PROVIDER=openrouter
OPENROUTER_API_KEY=sk-or-...
OPENROUTER_MODEL=openai/gpt-5.4
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
Por compatibilidad con instalaciones anteriores, una clave sk-or-... guardada en OPENAI_API_KEY se detecta como OpenRouter, pero para nuevas instalaciones debe usarse OPENROUTER_API_KEY.
Cada consulta queda registrada en AIInteraction con propósito, modelo, contexto mínimo, resultado y estado. Sin clave, el curso y la ruta objetiva siguen funcionando, pero la interfaz indica que el análisis generativo no está configurado.
Usuario docente: Profesor / Cr260351.;.
La organización toma ideas prácticas de Laravel sin ocultar las convenciones de Django:
config/: configuración y rutas globales (equivalente aproximado a config + bootstrap).apps/*/models.py: entidades persistentes (Models/Eloquent).apps/*/views.py: controladores HTTP.apps/*/forms.py: validación de entrada (Form Requests).apps/*/services/: casos de uso y reglas de negocio.apps/*/repositories.py: consultas reutilizables.templates/: vistas del servidor.static/: estilos y activos.apps/*/tests/: pruebas por dominio.MySQL con utf8mb4 es el motor de persistencia. La conexión se configura mediante DB_NAME, DB_USER, DB_PASSWORD, DB_HOST y DB_PORT en .env.
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
# Crea previamente la base indicada en .env con codificación utf8mb4.
python manage.py migrate
python manage.py seed_demo
python manage.py runserver 127.0.0.1:8050
En otra terminal:
cd frontend
npm install
npm run dev -- --port 3050
Abre http://127.0.0.1:3050 e ingresa con camilo y la contraseña asignada desde el gestor. La segunda instancia y el panel administrativo están en http://127.0.0.1:8050/admin/; crea un administrador con python manage.py createsuperuser.
En Windows abre ia-course.bat o ejecuta powershell -ExecutionPolicy Bypass -File .\ia-course.ps1. En Linux/macOS ejecuta chmod +x ia-course.sh && ./ia-course.sh.
El menú permite instalar/actualizar, iniciar, detener, reiniciar, consultar estado y revisar logs. Expone Next.js en http://127.0.0.1:3050, y Django API/Admin en http://127.0.0.1:8050. Next funciona como BFF y reenvía las sesiones a Django, evitando CORS en el navegador.
En Linux con systemd, la opción 6 instala dos servicios con arranque automático y reinicio ante fallos: ia-course-backend.service (Gunicorn/Django, 8050) e ia-course-frontend.service (Next.js, 3050). La misma opción permite actualizar o desinstalar los servicios sin borrar el proyecto ni MySQL.
En Windows, abre ia-course.bat como Administrador. La opción 6 instala NSSM mediante Winget si hace falta y registra IACourseBackend (Waitress/Django, 8050) e IACourseFrontend (Next.js, 3050) con inicio automático y logs en .ia-course-logs/. También permite actualizarlos o desinstalarlos sin borrar MySQL.
sudo systemctl status ia-course-backend ia-course-frontend
sudo systemctl restart ia-course-backend ia-course-frontend
sudo journalctl -u ia-course-backend -u ia-course-frontend -f
python manage.py test
python -m pytest
python manage.py check
Este MVP usa autoevaluación numérica en el diagnóstico; el siguiente incremento debe incorporar preguntas objetivas por competencia y ponderación configurable. También faltan recuperación dirigida, calendario, registro detallado de tiempo, exportación, observabilidad y roles de instructor. Antes de producción se deben activar validadores de contraseña, configurar secretos, HTTPS, PostgreSQL, copias de seguridad y pruebas de autorización más amplias.