trading-platform/docs/02-definicion-modulos/OQI-001-fundamentos-auth/historias-usuario/US-AUTH-001-registro-email.md
rckrdmrd c1b5081208 feat(ml): Complete FASE 11 - BTCUSD update and comprehensive documentation alignment
ML Engine Updates:
- Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records
- Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence)
- Backtest results: +176.71R profit with aggressive_filter strategy

Documentation Consolidation:
- Created docs/99-analisis/_MAP.md index with 13 new analysis documents
- Consolidated inventories: removed duplicates from orchestration/inventarios/
- Updated ML_INVENTORY.yml with BTCUSD metrics and training results
- Added execution reports: FASE11-BTCUSD, correction issues, alignment validation

Architecture & Integration:
- Updated all module documentation with NEXUS v3.4 frontmatter
- Fixed _MAP.md indexes across all folders
- Updated orchestration plans and traces

Files: 229 changed, 5064 insertions(+), 1872 deletions(-)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 09:31:29 -06:00

201 lines
9.3 KiB
Markdown

---
id: "US-AUTH-001"
title: "Registro con Email"
type: "User Story"
status: "Done"
priority: "Alta"
epic: "OQI-001"
story_points: 5
created_date: "2025-12-05"
updated_date: "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](../_MAP.md)
---
## Historia de Usuario
**Como** visitante de Trading Platform
**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 Trading Platform"
- 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 Trading Platform │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 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
- [RF-AUTH-002: Autenticación por Email](../requerimientos/RF-AUTH-002-email.md)
## Especificaciones Relacionadas
- [ET-AUTH-002: JWT Tokens](../especificaciones/ET-AUTH-002-jwt.md)
- [ET-AUTH-003: Database](../especificaciones/ET-AUTH-003-database.md)