# _MAP: OQI-002 - Módulo Educativo

**Última actualización:** 2025-12-05
**Estado:** Parcialmente Implementado
**Versión:** 1.0.0

---

## Propósito

Esta épica implementa la plataforma educativa de OrbiQuant IA, permitiendo a los usuarios aprender trading a través de cursos estructurados con video, texto, quizzes y sistema de progreso con gamificación.

---

## Contenido del Directorio

```
OQI-002-education/
├── README.md                    # Documentación técnica existente
├── _MAP.md                      # Este archivo - índice
├── requerimientos/              # Documentos de requerimientos funcionales
│   ├── RF-EDU-001-catalogo.md   # Catálogo de cursos
│   ├── RF-EDU-002-lecciones.md  # Sistema de lecciones
│   ├── RF-EDU-003-progreso.md   # Tracking de progreso
│   ├── RF-EDU-004-quizzes.md    # Sistema de quizzes
│   ├── RF-EDU-005-certificados.md # Certificaciones
│   └── RF-EDU-006-gamificacion.md # XP y badges
├── especificaciones/            # Especificaciones técnicas
│   ├── ET-EDU-001-database.md   # Modelo de datos
│   ├── ET-EDU-002-api.md        # Endpoints REST
│   ├── ET-EDU-003-frontend.md   # Componentes React
│   ├── ET-EDU-004-video.md      # Streaming de video
│   ├── ET-EDU-005-quizzes.md    # Motor de quizzes
│   └── ET-EDU-006-gamification.md # Sistema de gamificación
├── historias-usuario/           # User Stories
│   ├── US-EDU-001-ver-catalogo.md
│   ├── US-EDU-002-ver-curso.md
│   ├── US-EDU-003-iniciar-leccion.md
│   ├── US-EDU-004-ver-video.md
│   ├── US-EDU-005-completar-leccion.md
│   ├── US-EDU-006-realizar-quiz.md
│   ├── US-EDU-007-ver-progreso.md
│   ├── US-EDU-008-obtener-certificado.md
│   ├── US-EDU-009-buscar-cursos.md
│   ├── US-EDU-010-filtrar-categoria.md
│   ├── US-EDU-011-marcar-favorito.md
│   ├── US-EDU-012-dejar-review.md
│   ├── US-EDU-013-ver-xp.md
│   ├── US-EDU-014-desbloquear-badge.md
│   └── US-EDU-015-continuar-donde-deje.md
└── implementacion/              # Trazabilidad de implementación
    └── TRACEABILITY.yml
```

---

## Requerimientos Funcionales

| ID | Nombre | Prioridad | SP | Estado |
|----|--------|-----------|-----|--------|
| RF-EDU-001 | Catálogo de Cursos | P0 | 8 | ✅ Implementado |
| RF-EDU-002 | Sistema de Lecciones | P0 | 8 | Pendiente |
| RF-EDU-003 | Tracking de Progreso | P0 | 8 | Pendiente |
| RF-EDU-004 | Sistema de Quizzes | P1 | 8 | Pendiente |
| RF-EDU-005 | Certificaciones | P2 | 5 | Pendiente |
| RF-EDU-006 | Gamificación | P2 | 8 | Pendiente |

**Total:** 45 SP

---

## Especificaciones Técnicas

| ID | Nombre | Componente | Estado |
|----|--------|------------|--------|
| ET-EDU-001 | Database | Database | ✅ Schema existe |
| ET-EDU-002 | API REST | Backend | ✅ Parcial |
| ET-EDU-003 | Frontend | Frontend | ✅ Parcial |
| ET-EDU-004 | Video Streaming | Backend | Pendiente |
| ET-EDU-005 | Quiz Engine | Backend | Pendiente |
| ET-EDU-006 | Gamification | Backend/Frontend | Pendiente |

---

## Historias de Usuario

| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-EDU-001 | Ver catálogo de cursos | P0 | 3 | ✅ Implementado |
| US-EDU-002 | Ver detalle de curso | P0 | 3 | ✅ Implementado |
| US-EDU-003 | Iniciar una lección | P0 | 3 | Pendiente |
| US-EDU-004 | Ver video de lección | P0 | 3 | Pendiente |
| US-EDU-005 | Completar lección | P0 | 3 | Pendiente |
| US-EDU-006 | Realizar quiz | P1 | 5 | Pendiente |
| US-EDU-007 | Ver mi progreso | P0 | 3 | Pendiente |
| US-EDU-008 | Obtener certificado | P2 | 3 | Pendiente |
| US-EDU-009 | Buscar cursos | P1 | 2 | Pendiente |
| US-EDU-010 | Filtrar por categoría | P1 | 2 | Pendiente |
| US-EDU-011 | Marcar favorito | P2 | 2 | Pendiente |
| US-EDU-012 | Dejar review | P2 | 3 | Pendiente |
| US-EDU-013 | Ver XP acumulado | P2 | 2 | Pendiente |
| US-EDU-014 | Desbloquear badge | P2 | 3 | Pendiente |
| US-EDU-015 | Continuar donde dejé | P1 | 3 | Pendiente |

**Total:** 45 SP

---

## Dependencias

### Depende de:

- **OQI-001:** Autenticación (usuarios, JWT) - ✅ Completado
- **OQI-005:** Pagos (compra de cursos premium) - Pendiente

### Bloquea:

- Ninguna

---

## Stack Técnico

| Capa | Tecnología | Uso |
|------|------------|-----|
| Frontend | React + Zustand | UI y estado |
| Backend | Express.js | API REST |
| Database | PostgreSQL | Persistencia |
| Video | Cloudflare Stream / S3 | Hosting de videos |
| CDN | Cloudflare | Assets estáticos |

---

## Entidades Principales

### Category
- Categorías de cursos (Trading Básico, Análisis Técnico, etc.)

### Course
- Curso con metadata, precio, nivel de dificultad

### Module
- Agrupación de lecciones dentro de un curso

### Lesson
- Contenido individual (video, artículo, quiz)

### Enrollment
- Inscripción de usuario en curso

### Progress
- Progreso del usuario por lección

---

## Niveles de Dificultad

| Nivel | Label | Color | Cursos típicos |
|-------|-------|-------|----------------|
| beginner | Principiante | Verde | Introducción al trading |
| intermediate | Intermedio | Azul | Análisis técnico |
| advanced | Avanzado | Naranja | Estrategias avanzadas |
| expert | Experto | Rojo | Trading algorítmico |

---

## Gamificación (Fase 2)

### Sistema de XP
- Completar lección: +10 XP
- Aprobar quiz: +25 XP
- Completar curso: +100 XP
- Streak diario: +5 XP

### Badges
- 🎓 "Primer Paso" - Completa tu primera lección
- 📚 "Estudiante Dedicado" - Completa 10 lecciones
- 🏆 "Graduado" - Completa tu primer curso
- 🔥 "En Racha" - 7 días seguidos de estudio
- 💯 "Perfeccionista" - 100% en un quiz

---

## Criterios de Aceptación

### Funcionales

- [ ] Catálogo muestra cursos con filtros y búsqueda
- [ ] Usuarios pueden inscribirse en cursos
- [ ] Videos reproducen correctamente
- [ ] Progreso se guarda automáticamente
- [ ] Quizzes validan respuestas correctamente
- [ ] Certificados se generan al completar curso

### No Funcionales

- [ ] Videos cargan en < 3 segundos
- [ ] Catálogo carga en < 1 segundo
- [ ] Responsive en mobile
- [ ] Accesible (WCAG 2.1 AA)

### Técnicos

- [ ] Cobertura de tests > 70%
- [ ] Documentación API completa
- [ ] SEO optimizado para cursos públicos

---

## Hitos

| Hito | Entregables | Target |
|------|-------------|--------|
| M1 | Catálogo + detalle curso | Sprint 3 ✅ |
| M2 | Lecciones + videos | Sprint 3 |
| M3 | Progreso + quizzes | Sprint 4 |
| M4 | Gamificación + certificados | Sprint 4 |

---

## Reutilización de GAMILIT

Esta épica reutiliza ~70% de la arquitectura del proyecto GAMILIT:
- Estructura de cursos y lecciones
- Sistema de progreso
- Motor de quizzes
- Sistema de gamificación (XP, badges)

---

## Referencias

- [README Técnico](./README.md)
- [Vision del Producto](../../00-vision-general/VISION-PRODUCTO.md)
- [_MAP Fase MVP](../_MAP.md)
