Commit Graph

248 Commits

Author SHA1 Message Date
Nurfog eea456cd95 ux(course-templates): aclarar flujo pruebas -> plantilla de curso -> curso 2026-04-06 15:50:37 -04:00
Nurfog 1c67a0c2a9 Refactor code structure for improved readability and maintainability 2026-04-06 15:35:36 -04:00
Nurfog 92b4e4a3ac feat(cms/studio): agregar plantillas de curso reutilizables
- backend: CRUD básico de course templates y endpoint para crear curso desde plantilla
- migration: tabla course_templates con datos JSON del curso base
- frontend: nueva pantalla /course-templates para guardar y aplicar plantillas
- navegación: acceso desde menú Cursos
2026-04-06 15:34:57 -04:00
Nurfog 5226da644c fix(deploy): resolver 502 CMS remoto y estandarizar buildx/s3
- corrige host remoto de deploy y automatiza buildx en servidor
- agrega configuracion S3 (bucket openccb-802726101181-us-east-2-an)
- actualiza Dockerfile de studio a rust:1-bookworm para evitar error GLIBC
- activa cache mounts de buildkit para cargo/npm en studio
2026-04-06 15:08:36 -04:00
Nurfog adb1cbc323 feat: Agregar soporte para Docker Buildx en el script de despliegue 2026-04-06 13:17:39 -04:00
Nurfog 00239791e9 feat: Optimizar Dockerfile con cachés para mejorar la construcción de imágenes 2026-04-06 11:20:13 -04:00
Nurfog 255033040b feat: Actualizar .dockerignore para incluir secretos de TLS/ACME y modificar el Dockerfile para usar la imagen de Rust 1-bookworm 2026-04-06 10:08:00 -04:00
Nurfog 061c482b74 docs: hardening .gitignore TLS/ACME y actualización de documentación de despliegue
- .gitignore: agrega patrones nginx/certs-data/**, *.key, *.csr, *.crt, *.cer
- DESPLIEGUE.md: validación post-deploy LMS, trampas localhost:5433, smoke test, nota de certs
- ManualDeConfiguracion.md: nombres de contenedores corregidos, health checks, nota de seguridad
2026-04-06 09:37:44 -04:00
Nurfog 516a903497 Refactor audio handling and S3 integration in LMS service
- Removed company-specific template rules from template application logic.
- Enhanced question generation queries to support both 'imported-mysql' and 'imported-material' sources.
- Introduced S3 audio storage functionality, including client setup and audio key generation.
- Updated audio response evaluation to store audio files in S3 or fallback to DB.
- Added new API routes for asset ingestion and ZIP import in CMS service.
- Implemented role-based access control for audio responses in LMS service.
- Created a smoke test script for validating audio roles and permissions.
- Updated frontend to support course selection in audio evaluations.
2026-04-06 09:11:56 -04:00
Nurfog 4afccb89ef feat: Implementar reglas de negocio específicas de la empresa para la composición de plantillas de prueba 2026-04-02 14:15:16 -03:00
Nurfog 2b01d5d3f4 feat: Mejorar la gestión de plantillas de prueba y agregar validaciones para la composición de preguntas 2026-04-02 14:08:48 -03:00
Nurfog 4470e3d20b feat: Añadir selección de cantidad de preguntas en el formulario de plantillas de prueba y mejorar la gestión de edición 2026-04-02 12:21:45 -03:00
Nurfog d0a8e13fb6 feat: Añadir soporte para múltiples tipos de preguntas en la generación de plantillas de prueba y actualizar la interfaz correspondiente 2026-04-02 11:24:33 -03:00
Nurfog 83a25b3d28 feat: Implementar búsqueda de preguntas de respaldo en caso de fallos en la búsqueda semántica 2026-04-02 10:10:58 -03:00
Nurfog 7873c0c831 feat: Mejorar la generación de preguntas con RAG y optimizar el manejo de respuestas de IA 2026-04-01 17:13:30 -03:00
Nurfog 1f01a4a36b feat: Actualizar configuraciones de API y mejorar tiempos de espera en nginx 2026-04-01 16:12:03 -03:00
Nurfog 293b69075a feat: Asegurar dominios públicos en el archivo .env para nginx-proxy y certificados SSL 2026-04-01 11:04:48 -03:00
Nurfog c2fc6bc499 Refactor code structure for improved readability and maintainability 2026-04-01 11:03:07 -03:00
Nurfog abc6d59276 Refactor code structure for improved readability and maintainability 2026-03-31 16:26:38 -03:00
Nurfog 4c293a54b4 Refactor code structure for improved readability and maintainability 2026-03-31 14:55:37 -03:00
Nurfog 0bea4173f5 Refactor code structure for improved readability and maintainability 2026-03-31 14:39:04 -03:00
Nurfog 8b792e1d44 feat: Añadir columna organization_id a course_instructors y actualizar migraciones para alinear con el modelo compartido 2026-03-31 13:40:37 -03:00
Nurfog 212832fdda feat: Añadir lógica condicional para la URL de la API CMS y mejorar la configuración de Nginx 2026-03-31 12:55:12 -03:00
Nurfog 2d2ea216e0 feat: Añadir configuración de Nginx para el API de LMS y ajustar las rutas en el frontend de OpenCCB 2026-03-31 12:32:55 -03:00
Nurfog d331381efd feat: Mejorar configuración de Nginx para manejar rutas de API y autenticación, y ajustar la lógica de URLs en el cliente 2026-03-31 11:32:16 -03:00
Nurfog 2d54d6abfc feat: Añadir scripts para generar y sincronizar archivos .env, actualizar configuraciones de Docker y mejorar el despliegue en producción 2026-03-31 10:10:44 -03:00
Nurfog f6b6f84427 feat: Añadir configuración de Nginx para API de OpenCCB y corregir URLs de producción 2026-03-30 13:32:51 -03:00
Nurfog e66c5df695 feat: Add Ollama connectivity check to deploy script
- Add verification of IA connectivity after deployment
- Show helpful troubleshooting message if Ollama is not accessible
- Document required UniFi USG Pro 4 configuration
- Add GIT_REPO variable for future use

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-28 09:53:13 -03:00
Nurfog 4df2cd5538 docs: Add network and firewall configuration documentation
- Add CONFIGURACION_RED.md with complete network setup guide
- Document UniFi USG Pro 4 port forwarding and firewall rules
- Add AWS EC2 security group configuration
- Add connectivity verification commands
- Add troubleshooting checklist

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-28 09:21:31 -03:00
Nurfog 8b74ebafa5 fix: Update permissions and API routing for CMS integration 2026-03-28 08:55:35 -03:00
Nurfog a3f3f8f3c2 fix: Nginx POST /auth/login redirect to CMS
- Add map to detect POST requests to /auth/login
- Redirect POST /auth/login to CMS service (port 3001)
- Keep GET /auth/login on frontend (port 3000)

AI Status:
- Ollama server (t-800.norteamericano.cl:11434) not accessible from AWS EC2
- Connection timeout - need to open port 11434 or use public IP

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 15:03:28 -03:00
Nurfog e1f0d9ceb7 fix: Simplify nginx config - let Next.js handle API rewrites
- Remove complex location blocks from nginx
- Let Next.js rewrites handle API routing to CMS
- Keep only basic proxy configuration

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 14:12:12 -03:00
Nurfog 422a143685 fix: Nginx proxy configuration for CMS API routes
- Add location blocks for API endpoints to redirect to CMS (port 3001)
- Keep frontend pages on Next.js (port 3000)
- Handle /auth/login specially: GET->frontend, POST->CMS API
- Add maps for detecting API routes

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 14:04:11 -03:00
Nurfog ff0850b87e fix: Add nginx proxy rules for CMS API routes
- Add studio-api-location.conf to redirect API routes to CMS service (port 3001)
- Routes /auth, /courses, /lessons, etc. now go to CMS instead of frontend
- Mount location config in nginx-proxy vhost.d directory

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 13:21:44 -03:00
Nurfog de85e82554 fix: Configure correct API URLs without ports in .env
- Add NEXT_PUBLIC_CMS_API_URL and NEXT_PUBLIC_LMS_API_URL to .env
- URLs use domains without ports (nginx proxy handles routing)
- Add validation to detect URLs with ports that cause CORS errors
- Show warnings if URLs have incorrect port configuration
- Verify environment variables in both .env and containers

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 12:17:33 -03:00
Nurfog 76c9a4a2d4 feat: Add database reset and SSL preserve options to deploy script
- Add option to keep or reset database (preserves data by default)
- Add option to preserve existing SSL certificates
- Show warnings before database reset with confirmation
- Skip certificate regeneration when preserve SSL is selected
- Update deployment summary with new options

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 11:12:12 -03:00
Nurfog 1d419ee9f3 docs: Update .env.example with all environment variables
- Add all variables from current .env file
- Include comprehensive comments and descriptions
- Add sample values for development/production
- Organize by category for clarity

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:52:40 -03:00
Nurfog a203a82038 refactor: Use environment variables for API URLs in docker-compose
- Move NEXT_PUBLIC_CMS_API_URL and NEXT_PUBLIC_LMS_API_URL to .env
- Update docker-compose.yml to use ${VAR} syntax instead of hardcoded URLs
- Add default HTTPS URLs in .env.example for production
- Keeps install.sh with localhost defaults for development

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:50:14 -03:00
Nurfog 3ef1a73b95 fix: Update student portal link to use HTTPS
- Change hardcoded URL from http to https in login page footer

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:47:43 -03:00
Nurfog b3f03bb2a7 fix: Use HTTPS URLs for API endpoints in production
- Change NEXT_PUBLIC_CMS_API_URL from http to https
- Change NEXT_PUBLIC_LMS_API_URL from http to https
- Fix Mixed Content error when serving over HTTPS

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 09:23:16 -03:00
Nurfog e4866c6dee feat: SAM integration, deployment scripts, and audio response enhancements
- Add SAM (Sistema de Administración Académica) integration with sync endpoints
- Add deployment automation (deploy.sh, remote-setup.sh, setup-nginx-ssl.sh)
- Add nginx proxy configuration for SSL with Let's Encrypt
- Add audio response support for student lessons (migrations, handlers)
- Add audio evaluations admin page
- Update CORS to support wildcard subdomains for norteamericano.cl
- Add comprehensive deployment documentation (DESPLIEGUE.md, ManualDeConfiguracion.md)
- Update docker-compose.yml with nginx-proxy and acme-companion services
- Remove outdated documentation files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 09:20:23 -03:00
Nurfog 995065df4f fix: Use correct token key (studio_token) in admin pages
- Fix localStorage token key from 'token' to 'studio_token'
- Add debug logging for token authentication
- Add automatic redirect to login on 401
- Add error messages for missing/expired tokens

Affected pages:
- /admin/token-usage
- /admin/users
- /admin

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 17:32:08 -03:00
Nurfog dce68d76df docs: Token Limits complete summary (100% implementation)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 17:23:52 -03:00
Nurfog 6ef2860b26 feat: Enforce Automatic Token Limits in AI Handlers
CMS Service:
- generate_quiz: Check 2000 tokens limit
- generate_course: Check 5000 tokens limit
- generate_hotspots: Check 2000 tokens limit
- generate_role_play: Check 2500 tokens limit
- summarize_lesson: Check 1500 tokens limit

LMS Service:
- chat_with_tutor: Check 1000 tokens limit
- evaluate_audio_response: Check 1500 tokens limit

Behavior:
- Returns HTTP 429 Too Many Requests when limit exceeded
- Error message indicates monthly limit exceeded
- Users must contact admin for limit increase
- Works with automatic alert system (Phase 3)

Total Functions Protected: 7

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 17:18:04 -03:00
Nurfog 173ddfae53 docs: Token Limits final implementation guide
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 17:10:11 -03:00
Nurfog 3edc90b362 feat: Token Limit Alerts System (Phase 3)
Database:
- Create token_limit_alerts table to track alert history
- Add send_token_limit_notification() function
- Add check_token_limit_trigger() function
- Create AFTER INSERT trigger on ai_usage_logs

Features:
- Automatic notifications at 80%, 90%, and 100% thresholds
- One alert per threshold per month (no spam)
- Notification stored in notifications table
- Alert details logged in token_limit_alerts table

Notification Messages:
- 80%: Warning to monitor usage
- 90%: Strong warning to reduce IA usage
- 100%: Limit exceeded notification

Next: Add enforce automatic checks in AI handlers

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 17:08:01 -03:00
Nurfog f12677729b docs: Token Limits UI implementation guide
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 16:45:31 -03:00
Nurfog 8d82685cb4 feat: Token Limits UI - Phase 2 (Dashboard + User Management)
Token Usage Dashboard (/admin/token-usage):
- Add Monthly Limit column with edit functionality
- Add % Used column with progress bars
- Color-coded alerts (green/yellow/orange/red)
- Real-time limit updates via API
- Alert banners for users >80% and >100%

User Management (/admin/users):
- Add Token Limit column
- Show percentage used with progress indicator
- Color-coded badges for usage levels

Admin Dashboard (/admin):
- Add AI Token Usage card
- Display total tokens, requests, and cost
- Link to detailed token usage page

All changes are fully responsive and dark-mode compatible.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 16:44:34 -03:00
Nurfog 83e3375ecf docs: Token limits implementation status
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 16:22:55 -03:00
Nurfog 585e436538 feat: Token limits - Phase 1 (Database + API)
- Add token_limits module with check_ai_token_limit function
- Database: monthly_token_limit, token_limit_reset_day columns
- SQL functions: check_token_limit, get_user_usage_stats
- API endpoints for admin user token management
- Documentation: TOKEN_LIMITS_GUIDE.md

Phase 2 will add automatic enforcement in AI handlers

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-23 16:22:28 -03:00