# Frontend Gap Analysis - Trading Platform
## Análisis Completo F3.1 + F3.2

**Fecha:** 2026-01-27
**Analista:** Claude Code
**Metodología:** CAPVED + Gap Analysis
**Documentos Generados:** 2 (COMPONENTS-BY-EPIC.yml + FRONTEND-STORES-PLAN.yml)

---

## RESUMEN EJECUTIVO

Se ha completado un análisis exhaustivo de gaps en el frontend del trading-platform, cubriendo:

- **F3.1:** Componentes por Épica (OQI-001 a OQI-009)
- **F3.2:** Stores y Services faltantes

### Hallazgos Principales

| Métrica | Valor |
|---------|-------|
| **Componentes Existentes** | 146 |
| **Componentes Especificados** | 187 |
| **Cobertura Promedio** | 78% |
| **Componentes Faltantes** | 41 |
| **Componentes Parciales** | 18 |
| **Esfuerzo Total Estimado** | **2,870h** |

---

## RESULTADOS F3.1: ANÁLISIS DE COMPONENTES POR ÉPICA

### Distribución de Cobertura

```
OQI-001 (Auth)         ████████░░ 70%  - 140h restantes
OQI-002 (Education)    █████░░░░░ 55%  - 200h restantes
OQI-003 (Trading)      ██████░░░░ 60%  - 420h restantes
OQI-004 (Investment)   █████░░░░░ 55%  - 100h restantes
OQI-005 (Payments)     ██████░░░░ 65%  - 120h restantes
OQI-006 (ML)           ███████░░░ 70%  - 100h restantes
OQI-007 (LLM Agent)    ████░░░░░░ 45%  - 130h restantes
OQI-008 (Portfolio)    ████░░░░░░ 45%  - 220h restantes
OQI-009 (MT4)          ░░░░░░░░░░ 15%  - 180h restantes (NO FUNCIONAL)
```

### Componentes por Épica

#### OQI-001: Fundamentos y Autenticación (70%)

**Existentes: 11 componentes funcionales**
- Login.tsx, Register.tsx, ForgotPassword.tsx
- VerifyEmail.tsx, ResetPassword.tsx, AuthCallback.tsx
- SocialLoginButtons.tsx, PhoneLoginForm.tsx (parcial)
- TwoFactorForm.tsx (parcial), PasswordStrengthMeter.tsx
- AuthLayout.tsx

**Faltantes: 3 componentes**
1. **SessionManagementPanel** (P1, 40h)
   - Gestión de dispositivos activos
   - Terminación de sesiones
   - Tabla de sesiones con detalles

2. **DeviceVerificationModal** (P2, 35h)
   - Verificación de nuevo dispositivo
   - Challenge auth
   - WebSocket para push notifications

3. **RoleBasedAccessControl** (P1, 25h)
   - RBAC UI (investor, trader, student, admin)
   - Filtrado de menús por roles
   - Protección de rutas

**P0 Blocker Identificado:**
- **Manual Token Refresh** en auth.store.ts
  - Problema: Usuarios pueden quedar sin acceso si token expira
  - Severidad: CRÍTICO
  - Esfuerzo: 60h
  - Solución: useTokenRefresh hook + axios interceptor

---

#### OQI-002: Educación (55%)

**Existentes: 18 componentes**
- Páginas: Courses.tsx, CourseDetail.tsx, Lesson.tsx, MyLearning.tsx, Leaderboard.tsx, Quiz.tsx
- Componentes: CourseCard, QuizQuestion, ProgressBar, XPProgress, StreakCounter, AchievementBadge
- NEW (2026-01-25): VideoUploadForm (450 LOC), CreatorDashboard (450 LOC), CertificateGenerator (453 LOC), LiveStreamPlayer (480 LOC)

**Faltantes: 8 componentes**
1. **VideoProgressPlayer** (P1, 80h) - Advanced video player con speed controls, subtitles, bookmarks
2. **InteractiveQuizBuilder** (P2, 120h) - Quiz creation UI para instructores
3. **CourseCurriculum** (P1, 50h) - Expandable curriculum tree
4. **CertificatePreview** (P2, 40h) - Preview before download

**Stores Faltantes:**
- quizStore (P1, 35h) - Quiz attempt state, answers, results
- gamificationStore (P1, 40h) - XP, levels, achievements, streaks
- certificateStore (P2, 35h) - Certificates, templates, generation

**Services Faltantes:**
- quizService (P1, 35h) - Quiz submission, grading
- certificateService (P2, 30h) - Certificate generation

**Deuda Técnica:**
- Video upload sin streaming (Uppy/Tus needed)
- Quiz instant feedback no discriminativo

---

#### OQI-003: Trading Charts (60%)

**Existentes: 37 componentes**
- Página: Trading.tsx
- Core: TradingChart, ChartToolbar, OrderForm, PositionsPanel, TradeHistory, WatchlistPanel
- Supporting: SymbolSearch, IndicatorPanel, TimeframeSelector, MarketDepth, QuickTrade
- NEW (2026-01-25): AlertsPanel, TradingStatsPanel, OrderBookPanel

**Faltantes: 12 componentes**
1. **AdvancedChartWithDrawings** (P1, 150h) - Trend lines, support/resistance, annotations
2. **MultiSymbolChart** (P2, 80h) - Compare multiple symbols
3. **StrategyTester** (P2, 120h) - Backtest visualization
4. **HeatmapPanel** (P2, 70h) - Symbol performance heatmap

**Stores Faltantes:**
- watchlistStore (P1, 30h) - User watchlists

**Services Faltantes:**
- backtestService (P2, 45h) - Backtesting API
- watchlistService (P1, 25h) - Watchlist CRUD

**WebSocket Gaps:**
- OrderBook polling en lugar de WebSocket (40h)
  - Causa 1-2s lag en actualizaciones
  - Crítico para traders

**Deuda Técnica P1:**
- OrderBook polling NO WebSocket
- Indicators sin parámetros customizables (50h)

---

#### OQI-004: Cuentas de Inversión (55%)

**Existentes: 14 componentes**
- Páginas: Investment.tsx, Portfolio.tsx, Products.tsx, ProductDetail.tsx, AccountDetail.tsx, Withdrawals.tsx, Transactions.tsx, Reports.tsx
- Componentes: DepositForm, WithdrawForm
- NEW (2026-01-25): CreateAccountWizard (620 LOC), RiskAnalysisPanel (480 LOC), PortfolioOptimizerWidget (520 LOC), AccountTransferModal (450 LOC)

**Faltantes: 4 componentes**
1. **KYCWizard** (P0, 100h) - P0 BLOCKER
   - ID upload
   - Address verification
   - Source of funds declaration
   - Risk questionnaire

2. **DistributionScheduleChart** (P2, 50h) - Timeline de distribuciones

**Stores Faltantes:**
- kycStore (P1, 40h) - KYC status, documents, verification

**Services Faltantes:**
- kycService (P0, 40h) - KYC document upload/verification API

**P0 Blocker:**
- **KYC sin implementar**
  - Problema: Sin KYC no hay cumplimiento regulatorio
  - Severidad: CRÍTICO - Compliance
  - Esfuerzo: 100h
  - Impacto: NO se pueden abrir inversiones

---

#### OQI-005: Pagos Stripe (65%)

**Existentes: 19 componentes**
- Páginas: Pricing.tsx, Billing.tsx
- Componentes: PricingCard, SubscriptionCard, UsageProgress, WalletCard, CouponForm, SubscriptionUpgradeFlow, PaymentMethodsList, InvoiceList, InvoiceDetail, BillingInfoForm, TransactionHistory
- NEW (2026-01-25): StripeElementsWrapper (220 LOC), InvoicePreview (350 LOC), RefundRequestModal (480 LOC), RefundList (450 LOC)

**Faltantes: 5 componentes**
1. **PaymentMethodForm** (P0, 80h) - P0 BLOCKER
   - PCI-DSS compliance issue
   - Add/Update payment method

2. **SubscriptionManagementPanel** (P1, 60h) - Subscription details, pause, resume
3. **RevenueChart** (P2, 40h) - Revenue trends

**Stores Faltantes:**
- stripeStore (P0, 45h) - Stripe Elements state, payment intents

**Services Faltantes:**
- refundService (P1, 30h) - Refund request/processing
- stripeWebhookService (P1, 40h) - Handle Stripe webhook events

**P0 Blocker:**
- **PCI-DSS Non-Compliant Payment Form**
  - Problema: May store card data in state/logs
  - Severidad: CRÍTICO - Security & Compliance
  - Esfuerzo: 80h
  - Solución: Use Stripe Elements EXCLUSIVELY

---

#### OQI-006: ML Signals (70%)

**Existentes: 15 componentes**
- Página: MLDashboard.tsx
- Componentes: PredictionCard, SignalsTimeline, ConfidenceMeter, AMDPhaseIndicator
- NEW (2026-01-26): ModelSelector (280 LOC), EnsemblePanel (320 LOC), ICTAnalysisPanel (350 LOC)

**Faltantes: 4 componentes**
1. **ModelPerformanceChart** (P2, 70h) - Backtesting visualization
2. **FeatureImportanceChart** (P2, 60h) - SHAP values

**Stores Faltantes:**
- signalStore (P1, 35h) - Current signal, confidence, history

**Services Faltantes:**
- Ninguno (APIs ya existen)

**WebSocket Gap:**
- ML predictions con polling, NO WebSocket (50h)
  - Actualización cada 5 minutos
  - Debe ser real-time

---

#### OQI-007: LLM Strategy Agent (45%)

**Existentes: 22 componentes**
- Página: Assistant.tsx
- Core: ChatWindow, ChatMessage, ChatInput, ChatPanel, ChatWidget, SignalCard
- NEW (2026-01-26): ErrorBoundary (200 LOC), ConnectionStatus (280 LOC), TokenUsageDisplay (380 LOC), PromptLibrary (350 LOC)

**Faltantes: 7 componentes**
1. **StrategyBuilder** (P2, 100h) - Visual strategy builder
2. **StrategyExecutionPanel** (P1, 80h) - Execute AI-generated strategies
3. **AnalysisResultsPanel** (P1, 60h) - Detailed analysis results

**Stores Faltantes:**
- agentStore (P1, 35h) - Agent state, strategies, execution, token tracking

**Services Faltantes:**
- agentService (P1, 50h) - AI agent APIs (analyze, build, execute)

**Hooks Faltantes:**
- useAgent (P1, 30h) - Agent interaction
- useTokenLimit (P1, 25h) - Token tracking

**WebSocket Gaps:**
- Chat messages (25h)
- Agent execution (20h)

**Deuda Técnica P1:**
- WebSocket connection management incompleto
- Token usage tracking NO implementado

---

#### OQI-008: Portfolio Manager (45%)

**Existentes: 9 componentes**
- Páginas: PortfolioDashboard.tsx, CreatePortfolio.tsx, CreateGoal.tsx, EditAllocations.tsx
- Componentes: AllocationChart, AllocationTable, PerformanceChart, RebalanceCard, GoalCard

**Faltantes: 7 componentes**
1. **PortfolioOptimizer** (P2, 120h) - Markowitz optimization
2. **AssetAllocationWizard** (P2, 80h) - Interactive questionnaire
3. **BacktestPortfolio** (P2, 100h) - Portfolio backtesting

**Stores Faltantes:**
- Ninguno (portfolioStore ya existe pero incompleto)

**Services Faltantes:**
- portfolioOptimizationService (P2, 50h) - Optimization algorithms

**Deuda Técnica:**
- No hay rebalancing automático (100h)

---

#### OQI-009: MT4 Gateway (15%)

**Estado: NO FUNCIONAL - P3 Blocker**

**Componentes Stub:**
- MT4ConnectionStatus.tsx (120 LOC, 0% funcional)

**Faltantes: TODOS**
1. **MT4Terminal** (P3, 150h) - Embedded MT4 terminal
2. **OrderExecution** (P3, 80h) - MT4 order execution

**Recomendación:** Considerar usar broker API más moderno en lugar de MT4

---

## RESULTADOS F3.2: ANÁLISIS DE STORES Y SERVICES

### Estado de Stores

| Store | Estado | Épica | Gaps | Test Coverage |
|-------|--------|-------|------|-----------------|
| auth.store | FUNCIONAL | OQI-001 | Auto-refresh, RBAC, device tracking | 70% |
| trading.store | FUNCIONAL | OQI-003 | WebSocket, multi-symbol | 65% |
| order.store | FUNCIONAL | OQI-003 | Validation, undo/redo | 60% |
| chart.store | FUNCIONAL | OQI-003 | Layouts, drawings persistence | 75% |
| education.store | FUNCIONAL | OQI-002 | Gamification, quiz state | 55% |
| payment.store | FUNCIONAL | OQI-005 | Stripe Elements state | 50% |
| portfolio.store | FUNCIONAL | OQI-008 | WebSocket updates | 45% |
| notification.store | FUNCIONAL | ALL | - | 80% |
| sessions.store | FUNCIONAL | OQI-001 | Backend sync incomplete | 40% |
| **TOTAL EXISTENTES** | - | - | - | **62% avg** |

### Stores Faltantes (8)

| Store | Épica | Prioridad | Esfuerzo | Crítico? |
|-------|-------|-----------|----------|----------|
| sessionStore | OQI-001 | P1 | 30h | - |
| quizStore | OQI-002 | P1 | 35h | - |
| gamificationStore | OQI-002 | P1 | 40h | - |
| certificateStore | OQI-002 | P2 | 35h | - |
| stripeStore | OQI-005 | P0 | 45h | **P0** |
| kycStore | OQI-004 | P1 | 40h | **P0** |
| agentStore | OQI-007 | P1 | 35h | - |
| signalStore | OQI-006 | P1 | 35h | - |
| **TOTAL** | - | - | **295h** | - |

### Estado de Services

| Service | Estado | Épica | Cobertura | Gaps |
|---------|--------|-------|-----------|------|
| auth.service | FUNCIONAL | OQI-001 | 85% | Session endpoints |
| trading.service | FUNCIONAL | OQI-003 | 85% | WS klines, orderbook |
| education.service | FUNCIONAL | OQI-002 | 75% | Quiz, certificates |
| payment.service | FUNCIONAL | OQI-005 | 80% | Refunds, webhooks |
| investment.service | FUNCIONAL | OQI-004 | 80% | KYC, transfers |
| ml.service | FUNCIONAL | OQI-006 | 90% | WS predictions |
| chat.service | FUNCIONAL | OQI-007 | 100% | - |
| admin.service | FUNCIONAL | Admin | 100% | - |
| video-upload.service | FUNCIONAL | OQI-002 | 100% | NEW (2026-01-26) |
| portfolio.service | FUNCIONAL | OQI-008 | 85% | Optimization |
| notification.service | FUNCIONAL | ALL | 100% | - |
| websocket.service | PARCIAL | ALL | 50% | LLM, education, auth |
| **TOTAL EXISTENTES** | - | - | **82% avg** | - |

### Services Faltantes (12)

| Service | Épica | Prioridad | Esfuerzo | Crítico? |
|---------|-------|-----------|----------|----------|
| sessionService | OQI-001 | P1 | 25h | - |
| quizService | OQI-002 | P1 | 35h | - |
| certificateService | OQI-002 | P2 | 30h | - |
| kycService | OQI-004 | P0 | 40h | **P0** |
| backtestService | OQI-003 | P2 | 45h | - |
| agentService | OQI-007 | P1 | 50h | - |
| refundService | OQI-005 | P1 | 30h | - |
| watchlistService | OQI-003 | P1 | 25h | - |
| portfolioOptimizationService | OQI-008 | P2 | 50h | - |
| stripeWebhookService | OQI-005 | P1 | 40h | **P1** |
| market-alertsService | OQI-003 | P1 | 35h | - |
| (+ WebSocket handlers) | OQI-006,007 | P1 | 60h | - |
| **TOTAL** | - | - | **465h** | - |

### WebSocket Requirements

**Conexiones Existentes:**
- trading/klines/:symbol ✅
- trading/ticker/:symbol ✅
- portfolio/updates ✅

**Conexiones Faltantes (6 streams):**
1. trading/orderbook/:symbol (P1, 20h)
2. ml/predictions/:symbol (P1, 15h)
3. education/live-stream/:sessionId (P1, 40h)
4. chat/messages (P1, 25h)
5. auth/sessions (P1, 15h)
6. agent/execution/:executionId (P1, 20h)

**Total WebSocket Gap: 135h**

---

## P0 BLOCKERS IDENTIFICADOS

| Bloqueador | Épica | Descripción | Esfuerzo | Impacto |
|------------|-------|-------------|----------|---------|
| **Manual Token Refresh** | OQI-001 | Usuarios quedan sin acceso | 60h | Security & UX |
| **KYC Wizard** | OQI-004 | Sin cumplimiento regulatorio | 100h | Compliance - CRÍTICO |
| **PaymentMethodForm PCI** | OQI-005 | Non-PCI-DSS compliant | 80h | Security & Compliance |
| **MT4 Gateway** | OQI-009 | 0% funcional | 180h | Feature - Can postpone |
| **Total P0 Effort** | - | - | **240h** | - |

---

## ESTIMACIONES POR TRIMESTRE

### Q1 2026: P0 Blockers + Core Infrastructure
**Esfuerzo: 270h**
- Token refresh mechanism: 60h
- KYC system (backend + frontend): 100h
- Stripe PCI compliance: 80h
- Session management: 30h

### Q2 2026: Core Features
**Esfuerzo: 350h**
- Video streaming & advanced features: 80h
- Trading chart drawings & multi-timeframe: 150h
- OrderBook WebSocket: 40h
- Strategy execution (LLM): 80h

### Q3 2026: Advanced Features
**Esfuerzo: 530h**
- Portfolio optimizer (120h) + backtesting (100h)
- LLM improvements (130h)
- Certificate system (65h)
- Quiz system (80h)
- Additional stores/services (35h)

### Q4 2026: Polish + Edge Cases
**Esfuerzo: 480h**
- MT4 Gateway (180h) - IF needed
- Error boundaries & recovery (100h)
- Performance optimizations (80h)
- Additional tests & coverage (120h)

**TOTAL: 2,870h (~18 personas-mes o 2 personas full-time por 12 meses)**

---

## RECOMENDACIONES

### Inmediatas (Próximas 2 semanas)

1. **Iniciar P0 Blockers**
   - Auto-refresh tokens (backend + frontend)
   - Stripe Elements store + refactor
   - KYC wizard design

2. **Completar WebSocket Service**
   - Orderbook stream
   - ML predictions stream
   - Error recovery logic

3. **Backend Coordination**
   - Stripe webhooks endpoint
   - KYC verification API
   - Session management endpoints

### Corto Plazo (Q1)

1. **Seguridad + Compliance**
   - Complete auto-token-refresh
   - Finish KYC flow
   - PCI-DSS validation

2. **Robustez**
   - Error boundaries
   - Connection recovery
   - State persistence

3. **Foundation Stores**
   - sessionStore
   - stripeStore
   - kycStore

### Mediano Plazo (Q2-Q3)

1. **Features Críticas**
   - Quiz system (gamification)
   - Video streaming
   - Advanced trading charts

2. **WebSocket Streams**
   - All 6 remaining streams
   - Client-side debouncing
   - Message compression

3. **Services API**
   - All 12 remaining services
   - Webhook handlers
   - Error handling

### Largo Plazo (Q4)

1. **Advanced Features**
   - Portfolio optimizer
   - MT4 integration (if needed)
   - Additional analytics

2. **Performance**
   - Bundle size optimization
   - Code splitting
   - Lazy loading

3. **Polish**
   - Comprehensive testing
   - Error recovery patterns
   - Documentation

---

## DOCUMENTOS GENERADOS

Ubicación: `orchestration/analisis/frontend/`

1. **COMPONENTS-BY-EPIC.yml** (4,200 líneas)
   - Detalles completos de componentes existentes y faltantes
   - Por cada épica (OQI-001 a OQI-009)
   - Gaps, deuda técnica, estimaciones

2. **FRONTEND-STORES-PLAN.yml** (2,800 líneas)
   - Stores existentes con state fields y acciones
   - Services existentes con endpoints
   - Stores y services faltantes
   - WebSocket requirements
   - Dependencies y bloqueadores

3. **ANALYSIS-SUMMARY.md** (este documento)
   - Resumen ejecutivo
   - Hallazgos principales
   - Recomendaciones
   - Roadmap

---

## CONCLUSIÓN

El frontend de trading-platform tiene **78% de cobertura** sobre especificaciones, pero existen **4 P0 blockers críticos** que deben resolverse antes de producción:

1. **Manual token refresh** (60h) - SEGURIDAD
2. **KYC system** (100h) - CUMPLIMIENTO
3. **PCI-DSS payment form** (80h) - SEGURIDAD
4. **MT4 Gateway** (180h) - FEATURE (puede diferirse)

El esfuerzo total estimado es **2,870 horas** distribuidas en 4 trimestres, con énfasis en completar bloqueadores en Q1.

**Estado Actual:** 6/9 épicas en desarrollo, 3/9 críticas faltantes.

---

**Fin del Análisis - 2026-01-27**
