- COMPONENTS-BY-EPIC.yml (4200 líneas) * Análisis de 146 componentes existentes vs 187 especificados * Cobertura: OQI-001 (70%), OQI-002 (55%), OQI-003 (60%), OQI-004 (55%) * 41 componentes faltantes, 18 parciales * Esfuerzo total: 2,870h estimadas - FRONTEND-STORES-PLAN.yml (2800 líneas) * 9 Zustand stores existentes vs 8 faltantes * 14 services existentes vs 12 faltantes * 6 WebSocket streams requeridos * 890h para completar infraestructura - ANALYSIS-SUMMARY.md * Resumen ejecutivo de hallazgos * 4 P0 blockers identificados * Roadmap por trimestre Q1-Q4 2026 * Dependencias y recomendaciones Gaps principales: - Token refresh automático (60h) - KYC wizard (100h - CRITICO) - PCI-DSS compliance payment form (80h) - MT4 Gateway (180h - puede diferirse) Cobertura promedio: 78% P0 Blockers: 240h Esfuerzo Q1 2026: 270h Co-Authored-By: Claude Code <noreply@anthropic.com>
17 KiB
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
-
SessionManagementPanel (P1, 40h)
- Gestión de dispositivos activos
- Terminación de sesiones
- Tabla de sesiones con detalles
-
DeviceVerificationModal (P2, 35h)
- Verificación de nuevo dispositivo
- Challenge auth
- WebSocket para push notifications
-
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
- VideoProgressPlayer (P1, 80h) - Advanced video player con speed controls, subtitles, bookmarks
- InteractiveQuizBuilder (P2, 120h) - Quiz creation UI para instructores
- CourseCurriculum (P1, 50h) - Expandable curriculum tree
- 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
- AdvancedChartWithDrawings (P1, 150h) - Trend lines, support/resistance, annotations
- MultiSymbolChart (P2, 80h) - Compare multiple symbols
- StrategyTester (P2, 120h) - Backtest visualization
- 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
-
KYCWizard (P0, 100h) - P0 BLOCKER
- ID upload
- Address verification
- Source of funds declaration
- Risk questionnaire
-
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
-
PaymentMethodForm (P0, 80h) - P0 BLOCKER
- PCI-DSS compliance issue
- Add/Update payment method
-
SubscriptionManagementPanel (P1, 60h) - Subscription details, pause, resume
-
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
- ModelPerformanceChart (P2, 70h) - Backtesting visualization
- 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
- StrategyBuilder (P2, 100h) - Visual strategy builder
- StrategyExecutionPanel (P1, 80h) - Execute AI-generated strategies
- 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
- PortfolioOptimizer (P2, 120h) - Markowitz optimization
- AssetAllocationWizard (P2, 80h) - Interactive questionnaire
- 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
- MT4Terminal (P3, 150h) - Embedded MT4 terminal
- 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):
- trading/orderbook/:symbol (P1, 20h)
- ml/predictions/:symbol (P1, 15h)
- education/live-stream/:sessionId (P1, 40h)
- chat/messages (P1, 25h)
- auth/sessions (P1, 15h)
- 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)
-
Iniciar P0 Blockers
- Auto-refresh tokens (backend + frontend)
- Stripe Elements store + refactor
- KYC wizard design
-
Completar WebSocket Service
- Orderbook stream
- ML predictions stream
- Error recovery logic
-
Backend Coordination
- Stripe webhooks endpoint
- KYC verification API
- Session management endpoints
Corto Plazo (Q1)
-
Seguridad + Compliance
- Complete auto-token-refresh
- Finish KYC flow
- PCI-DSS validation
-
Robustez
- Error boundaries
- Connection recovery
- State persistence
-
Foundation Stores
- sessionStore
- stripeStore
- kycStore
Mediano Plazo (Q2-Q3)
-
Features Críticas
- Quiz system (gamification)
- Video streaming
- Advanced trading charts
-
WebSocket Streams
- All 6 remaining streams
- Client-side debouncing
- Message compression
-
Services API
- All 12 remaining services
- Webhook handlers
- Error handling
Largo Plazo (Q4)
-
Advanced Features
- Portfolio optimizer
- MT4 integration (if needed)
- Additional analytics
-
Performance
- Bundle size optimization
- Code splitting
- Lazy loading
-
Polish
- Comprehensive testing
- Error recovery patterns
- Documentation
DOCUMENTOS GENERADOS
Ubicación: orchestration/analisis/frontend/
-
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
-
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
-
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:
- Manual token refresh (60h) - SEGURIDAD
- KYC system (100h) - CUMPLIMIENTO
- PCI-DSS payment form (80h) - SEGURIDAD
- 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