trading-platform/docs/02-definicion-modulos/OQI-002-education/historias-usuario/US-EDU-002-ver-curso.md
rckrdmrd a7cca885f0 feat: Major platform documentation and architecture updates
Changes include:
- Updated architecture documentation
- Enhanced module definitions (OQI-001 to OQI-008)
- ML integration documentation updates
- Trading strategies documentation
- Orchestration and inventory updates
- Docker configuration updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:33:35 -06:00

14 KiB

id title type status priority epic story_points created_date updated_date
US-EDU-002 Ver Detalle de Curso User Story Done Alta OQI-002 3 2025-12-05 2026-01-04

US-EDU-002: Ver Detalle de Curso

Metadata

Campo Valor
ID US-EDU-002
Épica OQI-002 - Módulo Educativo
Módulo education
Prioridad P0
Story Points 3
Sprint Sprint 3
Estado Pendiente
Asignado a Por asignar

Historia de Usuario

Como usuario interesado en un curso, quiero ver información detallada del curso antes de inscribirme, para evaluar si el contenido se ajusta a mis objetivos de aprendizaje.

Descripción Detallada

El usuario debe poder acceder a una página de detalle que muestre información completa del curso: descripción extendida, temario desglosado por módulos y lecciones, instructor, requisitos previos, objetivos de aprendizaje, reseñas de otros estudiantes, y botón de inscripción. Si el usuario ya está inscrito, debe mostrar su progreso y botón para continuar.

Mockups/Wireframes

┌─────────────────────────────────────────────────────────────────┐
│  ← Volver al catálogo                                     👤    │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌────────────────────┐  FIBONACCI RETRACEMENT BÁSICO           │
│  │                    │  ⭐ 4.8 (89 reseñas) | 1,234 estudiantes│
│  │   [VIDEO INTRO]    │  Por: Carlos Mendoza | 2h 30m | 5 módul│
│  │    ▶ Preview       │                                          │
│  │                    │  [📥 Inscribirse gratis]                 │
│  └────────────────────┘                                          │
│                                                                  │
│  ┌────────────────────────────────────────────────────────────┐ │
│  │ PESTAÑAS: [Descripción] [Temario] [Instructor] [Reseñas]  │ │
│  └────────────────────────────────────────────────────────────┘ │
│                                                                  │
│  QUÉ APRENDERÁS                                                 │
│  ✓ Identificar niveles de Fibonacci en gráficos                │
│  ✓ Aplicar retrocesos en tendencias alcistas y bajistas        │
│  ✓ Combinar Fibonacci con otros indicadores                    │
│  ✓ Realizar entradas y salidas precisas                        │
│                                                                  │
│  REQUISITOS                                                      │
│  • Conocimientos básicos de trading                            │
│  • Familiaridad con gráficos de velas                          │
│                                                                  │
│  DESCRIPCIÓN                                                     │
│  Fibonacci es una herramienta fundamental del análisis técnico...│
│  [Texto completo de descripción del curso]                     │
│                                                                  │
│  PARA QUIÉN ES ESTE CURSO                                       │
│  • Traders principiantes que quieren dominar Fibonacci          │
│  • Analistas técnicos que buscan mejorar su precisión          │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

[PESTAÑA TEMARIO]
┌─────────────────────────────────────────────────────────────────┐
│  📚 TEMARIO DEL CURSO                          5 módulos | 23 lecciones │
│                                                                  │
│  ▼ Módulo 1: Introducción a Fibonacci (30 min)                 │
│     1. ¿Qué es Fibonacci? (5:30) [🎬 Video] [Gratis]           │
│     2. Historia y fundamentos (8:45) [🎬 Video] [Gratis]       │
│     3. La secuencia de Fibonacci (10:20) [📄 Artículo]         │
│     4. Quiz: Fundamentos (15 preguntas) [📝 Quiz]              │
│                                                                  │
│  ▼ Módulo 2: Niveles de Retroceso (45 min)                     │
│     1. Niveles principales: 38.2%, 50%, 61.8% (12:15)          │
│     2. Cómo dibujar Fibonacci en gráfico (18:30)               │
│     3. Práctica: Identificar retrocesos (20:00)                │
│     4. Quiz: Niveles de retroceso                              │
│                                                                  │
│  ▶ Módulo 3: Fibonacci en Tendencias (35 min) [🔒 Bloqueado]  │
│  ▶ Módulo 4: Estrategias Avanzadas (25 min) [🔒 Bloqueado]    │
│  ▶ Módulo 5: Fibonacci + Otros Indicadores (15 min) [🔒]      │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Criterios de Aceptación

Escenario 1: Ver detalle de curso no inscrito

DADO que el usuario está autenticado
Y NO está inscrito en el curso
CUANDO accede a /education/courses/fibonacci-retracement-basico
ENTONCES se muestra la página de detalle del curso
Y se muestra: título, rating, estudiantes, instructor, duración
Y se muestra botón "Inscribirse" o "Inscribirse gratis"
Y se muestra video preview del curso (si existe)
Y se muestra descripción completa
Y se muestra temario desglosado por módulos

Escenario 2: Ver detalle de curso inscrito

DADO que el usuario está inscrito en el curso
Y tiene 60% de progreso
CUANDO accede al detalle del curso
ENTONCES se muestra barra de progreso "60% completado"
Y el botón principal dice "Continuar curso"
Y se destaca la última lección accedida
Y se muestra resumen de progreso: "14 de 23 lecciones completadas"

Escenario 3: Ver temario completo

DADO que el usuario está en la pestaña "Temario"
ENTONCES se muestran todos los módulos del curso
Y cada módulo muestra: título, duración total, número de lecciones
Y cada lección muestra: título, duración, tipo (video/artículo/quiz)
Y se puede expandir/colapsar cada módulo
Y lecciones gratuitas están marcadas como "Gratis"
Y lecciones bloqueadas muestran candado 🔒

Escenario 4: Preview de lección gratuita

DADO que el usuario NO está inscrito
Y el curso tiene lecciones marcadas como "Gratis"
CUANDO hace click en una lección gratuita
ENTONCES puede ver el contenido sin inscribirse
Y se muestra CTA "Inscríbete para acceder a todo el contenido"

Escenario 5: Ver información del instructor

DADO que el usuario está en la pestaña "Instructor"
ENTONCES se muestra: foto, nombre, título, biografía
Y se muestra lista de otros cursos del instructor
Y se muestran estadísticas: total estudiantes, cursos, rating promedio
Y se muestra botón "Ver perfil completo" (opcional)

Escenario 6: Ver reseñas de estudiantes

DADO que el usuario está en la pestaña "Reseñas"
ENTONCES se muestra rating promedio (ej: 4.8/5)
Y se muestra distribución de ratings (5★: 60%, 4★: 30%, etc.)
Y se muestran las últimas 10 reseñas
Y cada reseña muestra: nombre del usuario, fecha, rating, comentario
Y se puede filtrar por: Todas, 5★, 4★, 3★, 2★, 1

Escenario 7: Inscribirse en curso

DADO que el usuario NO está inscrito
Y el curso es gratuito
CUANDO hace click en "Inscribirse gratis"
ENTONCES se registra la inscripción en backend
Y se muestra toast "¡Te has inscrito en el curso!"
Y el botón cambia a "Comenzar curso"
Y se navega a la primera lección al hacer click

Escenario 8: Curso premium sin suscripción

DADO que el curso es premium
Y el usuario NO tiene suscripción activa
CUANDO intenta inscribirse
ENTONCES se muestra modal "Este curso requiere suscripción Premium"
Y se muestra botón "Ver planes" que lleva a /pricing
Y NO se permite inscripción

Criterios Adicionales

  • Video preview auto-play al cargar página (muted)
  • Compartir curso en redes sociales
  • Agregar curso a "Guardados" (wishlist)
  • Mostrar badge "Bestseller" si es top 10 más vendido
  • Mostrar "Última actualización: DD/MM/YYYY"
  • SEO optimizado con meta tags dinámicos
  • Structured data (schema.org) para Google

Tareas Técnicas

Database:

  • DB-EDU-004: Verificar relación courses -> modules -> lessons
  • DB-EDU-005: Tabla course_reviews para reseñas
  • DB-EDU-006: Tabla course_enrollments para inscripciones

Backend:

  • BE-EDU-008: Endpoint GET /education/courses/:slug
  • BE-EDU-009: Endpoint POST /education/courses/:id/enroll
  • BE-EDU-010: Endpoint GET /education/courses/:id/reviews
  • BE-EDU-011: Implementar CourseService.getBySlug()
  • BE-EDU-012: Implementar EnrollmentService.enroll()
  • BE-EDU-013: Verificar acceso Premium para cursos pagos

Frontend:

  • FE-EDU-009: Crear página CourseDetailPage.tsx
  • FE-EDU-010: Crear componente CourseHeader.tsx
  • FE-EDU-011: Crear componente CourseSyllabus.tsx (temario)
  • FE-EDU-012: Crear componente InstructorCard.tsx
  • FE-EDU-013: Crear componente CourseReviews.tsx
  • FE-EDU-014: Crear componente EnrollButton.tsx
  • FE-EDU-015: Implementar tabs de navegación
  • FE-EDU-016: Modal de confirmación de inscripción

Tests:

  • TEST-EDU-004: Test inscripción en curso gratuito
  • TEST-EDU-005: Test bloqueo de curso premium
  • TEST-EDU-006: Test E2E ver detalle e inscribirse

Dependencias

Depende de:

  • US-EDU-001: Ver catálogo - Estado: Pendiente
  • US-AUTH-001: Autenticación - Estado: Completado

Bloquea:

  • US-EDU-003: Iniciar lección
  • US-EDU-007: Ver progreso

Notas Técnicas

Endpoints involucrados:

Método Endpoint Descripción
GET /education/courses/:slug Detalle completo del curso
POST /education/courses/:id/enroll Inscribirse en curso
GET /education/courses/:id/reviews Reseñas del curso

Response GET /courses/:slug:

{
  course: {
    id: "uuid-1",
    title: "Fibonacci Retracement Básico",
    slug: "fibonacci-retracement-basico",
    description: "Descripción completa del curso...",
    learningObjectives: [
      "Identificar niveles de Fibonacci",
      "Aplicar retrocesos en tendencias"
    ],
    requirements: [
      "Conocimientos básicos de trading",
      "Familiaridad con gráficos"
    ],
    targetAudience: [
      "Traders principiantes",
      "Analistas técnicos"
    ],
    category: {...},
    level: "beginner",
    duration: 150,
    moduleCount: 5,
    lessonCount: 23,
    studentCount: 1234,
    rating: 4.8,
    reviewCount: 89,
    instructor: {
      id: "inst-1",
      name: "Carlos Mendoza",
      avatar: "...",
      title: "Senior Trader",
      bio: "15 años de experiencia...",
      coursesCount: 8,
      studentsCount: 12500,
      rating: 4.9
    },
    isPremium: false,
    previewVideoUrl: "https://vimeo.com/...",
    updatedAt: "2025-11-20T10:00:00Z",
    publishedAt: "2025-11-15T10:00:00Z",

    modules: [
      {
        id: "mod-1",
        title: "Introducción a Fibonacci",
        order: 1,
        duration: 30,
        lessonCount: 4,
        lessons: [
          {
            id: "les-1",
            title: "¿Qué es Fibonacci?",
            type: "video",
            duration: 5.5,
            isFree: true,
            isCompleted: false,
            order: 1
          }
          // ... más lecciones
        ]
      }
      // ... más módulos
    ],

    userEnrollment: {
      enrolledAt: "2025-12-01T14:30:00Z",
      progressPercent: 60,
      lessonsCompleted: 14,
      lastAccessedLesson: {
        id: "les-14",
        title: "Fibonacci en tendencias bajistas"
      },
      lastAccessedAt: "2025-12-04T18:20:00Z"
    }
  }
}

Entidades/Tablas:

  • education.courses
  • education.modules
  • education.lessons
  • education.course_enrollments
  • education.course_reviews
  • education.instructors

Definition of Ready (DoR)

  • Historia claramente escrita
  • Criterios de aceptación definidos
  • Story points estimados
  • Dependencias identificadas
  • Sin bloqueadores
  • Diseño/mockup disponible
  • API spec disponible

Definition of Done (DoD)

  • Código implementado según criterios
  • Tests unitarios escritos y pasando
  • Tests de integración pasando
  • Code review aprobado
  • Documentación actualizada
  • QA aprobado
  • Desplegado en ambiente de pruebas

Historial de Cambios

Fecha Cambio Autor
2025-12-05 Creación Requirements-Analyst

Creada por: Requirements-Analyst Fecha: 2025-12-05 Última actualización: 2025-12-05