trading-platform/docs/02-definicion-modulos/OQI-001-fundamentos-auth/historias-usuario/US-AUTH-001-registro-email.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

9.2 KiB

id title type status priority epic story_points created_date updated_date
US-AUTH-001 Registro con Email User Story Done Alta OQI-001 5 2025-12-05 2026-01-04

US-AUTH-001: Registro con Email

Version: 1.0.0 Fecha: 2025-12-05 Estado: Implementado Story Points: 5 Prioridad: P0 (Crítica) Épica: OQI-001


Historia de Usuario

Como visitante de OrbiQuant Quiero poder crear una cuenta usando mi email y contraseña Para acceder a las funcionalidades de la plataforma


Criterios de Aceptación

AC-001: Formulario de registro

Dado que soy un visitante en la página de registro Cuando veo el formulario Entonces debería ver campos para:

  • Email
  • Contraseña
  • Confirmar contraseña
  • Nombre
  • Apellido
  • Checkbox de términos y condiciones

AC-002: Validación de email

Dado que estoy llenando el formulario de registro Cuando ingreso un email inválido Entonces debería ver un mensaje de error "Email inválido" Y el botón de registro debería estar deshabilitado

AC-003: Validación de contraseña

Dado que estoy llenando el formulario de registro Cuando ingreso una contraseña que no cumple los requisitos Entonces debería ver indicadores visuales de:

  • / Mínimo 8 caracteres
  • / Al menos una mayúscula
  • / Al menos una minúscula
  • / Al menos un número
  • / Al menos un carácter especial

AC-004: Confirmación de contraseña

Dado que estoy llenando el formulario de registro Cuando las contraseñas no coinciden Entonces debería ver un mensaje de error "Las contraseñas no coinciden"

AC-005: Registro exitoso

Dado que completé el formulario correctamente Cuando hago click en "Registrarme" Entonces debería:

  1. Ver un mensaje "Cuenta creada. Revisa tu email para verificar"
  2. Recibir un email de verificación
  3. Ser redirigido a una página de confirmación

AC-006: Email duplicado

Dado que intento registrarme con un email que ya existe Cuando envío el formulario Entonces debería ver un mensaje "Este email ya está registrado"

AC-007: Email de verificación

Dado que me registré exitosamente Cuando reviso mi email Entonces debería recibir un email con:

  • Asunto: "Verifica tu cuenta de OrbiQuant"
  • Un link de verificación válido por 24 horas
  • Instrucciones claras

AC-008: Verificación de email

Dado que recibí el email de verificación Cuando hago click en el link de verificación Entonces debería:

  1. Ver un mensaje "Email verificado exitosamente"
  2. Poder hacer login con mis credenciales

Mockup

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              🌟 Crea tu cuenta en OrbiQuant                │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ Email                                                │   │
│  │ ┌─────────────────────────────────────────────────┐ │   │
│  │ │ usuario@example.com                             │ │   │
│  │ └─────────────────────────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ Contraseña                                           │   │
│  │ ┌─────────────────────────────────────────────────┐ │   │
│  │ │ ••••••••••••                              👁   │ │   │
│  │ └─────────────────────────────────────────────────┘ │   │
│  │                                                     │   │
│  │ ✅ Mínimo 8 caracteres                              │   │
│  │ ✅ Una mayúscula                                    │   │
│  │ ✅ Una minúscula                                    │   │
│  │ ✅ Un número                                        │   │
│  │ ❌ Un carácter especial                             │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ Confirmar contraseña                                 │   │
│  │ ┌─────────────────────────────────────────────────┐ │   │
│  │ │ ••••••••••••                              👁   │ │   │
│  │ └─────────────────────────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌────────────────────────┐ ┌────────────────────────┐     │
│  │ Nombre                 │ │ Apellido               │     │
│  │ ┌──────────────────┐  │ │ ┌──────────────────┐   │     │
│  │ │ Juan             │  │ │ │ Pérez            │   │     │
│  │ └──────────────────┘  │ │ └──────────────────┘   │     │
│  └────────────────────────┘ └────────────────────────┘     │
│                                                             │
│  ☐ Acepto los Términos de Servicio y Política de           │
│    Privacidad                                               │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │               Crear mi cuenta                        │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ─────────────────── O continúa con ───────────────────    │
│                                                             │
│  [Google] [Facebook] [X] [Apple] [GitHub]                  │
│                                                             │
│  ¿Ya tienes cuenta? Inicia sesión                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Notas Técnicas

Frontend

  • Componente: apps/frontend/src/modules/auth/pages/Register.tsx
  • Validación en tiempo real con React Hook Form + Zod
  • Debounce de 300ms para validación de email
  • Password strength indicator visual

Backend

  • Endpoint: POST /api/v1/auth/register
  • Validación con Zod
  • Hash con bcrypt (cost 12)
  • Email con Nodemailer + plantilla HTML

Database

  • Tabla: users
  • Status inicial: pending_verification
  • Trigger: Crea user_profiles automáticamente

Dependencias

  • Ninguna (primer flujo de auth)

Requerimientos Relacionados

Especificaciones Relacionadas