# 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**