Comprehensive analysis of 101 DDL tables across 11 schemas: - Phase 1-2: Schema validation, 37 gaps cataloged (3 resolved) - Phase 3: Integrity audit (80 FKs, 89 CHECKs, 17 issues: 2 CRIT/5 HIGH) - Phase 4: DDL-Backend mapping (84% interfaces, 75% services, 61% controllers) - Phase 5: Documentation purge catalog (201 files analyzed) - Phase 6: Remediation plan (4 sprints, 204h) Key finding: Backend uses raw SQL + pg Pool (NOT TypeORM). 13 deliverables + updated inventories to v2.0.0. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
862 lines
29 KiB
YAML
862 lines
29 KiB
YAML
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# FRONTEND_INVENTORY.yml - Trading Platform
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
version: "2.3.0"
|
|
fecha_actualizacion: "2026-02-04"
|
|
ultima_sincronizacion: "2026-02-04T14:00:00Z"
|
|
proyecto: "trading-platform"
|
|
fuente_auditoria: "orchestration/tareas/TASK-2026-01-25-002-FRONTEND-COMPREHENSIVE-AUDIT"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# RESUMEN (ACTUALIZADO POST-SPRINT-3)
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
resumen:
|
|
total_paginas: 58 # +6 páginas Sprint 3
|
|
total_componentes: 225 # +14 componentes Sprint 3
|
|
total_stores: 9 # authStore, tradingStore, mlStore, educationStore, paymentsStore, portfolioStore, investmentStore, llmStore, mt4Store
|
|
total_services: 18 # +2 services Sprint 3 (bots, marketplace)
|
|
total_hooks: 42 # +10 hooks Sprint 3
|
|
total_tests_e2e: 1 # payments-stripe-elements.test.tsx (20+ cases, ST4.2.3)
|
|
ubicacion: "apps/frontend/src/"
|
|
framework: "React 18.2.0"
|
|
build_tool: "Vite 6.2.0"
|
|
lenguaje: "TypeScript 5.3.3"
|
|
progreso_promedio: "45%" # +3% post Sprint 3 sync
|
|
componentes_funcionales: "185/225 (82%)" # Mejorado
|
|
fecha_actualizacion: "2026-02-04"
|
|
auditoria_completa: "2026-01-25"
|
|
sprint_3_completado: "2026-02-04"
|
|
inventarios_sincronizados: "2026-02-04T14:00:00Z"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# PAGINAS POR MODULO
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
paginas:
|
|
|
|
auth:
|
|
cantidad: 8 # +2 Sprint 3
|
|
lista:
|
|
- Login.tsx
|
|
- Register.tsx
|
|
- ForgotPassword.tsx
|
|
- VerifyEmail.tsx
|
|
- ResetPassword.tsx
|
|
- AuthCallback.tsx
|
|
- SecuritySettings.tsx # NUEVO Sprint 3 - 2FA settings
|
|
|
|
dashboard:
|
|
cantidad: 1
|
|
lista:
|
|
- Dashboard.tsx
|
|
|
|
trading:
|
|
cantidad: 3 # +2 Sprint 3
|
|
lista:
|
|
- Trading.tsx
|
|
- BotDetailPage.tsx # NUEVO Sprint 3 - Bot management
|
|
- AgentsPage.tsx # NUEVO Sprint 3 - Trading agents
|
|
|
|
ml:
|
|
cantidad: 1
|
|
lista:
|
|
- MLDashboard.tsx
|
|
|
|
backtesting:
|
|
cantidad: 1
|
|
lista:
|
|
- BacktestingDashboard.tsx
|
|
|
|
investment:
|
|
cantidad: 12 # +4 Sprint 3
|
|
lista:
|
|
- Investment.tsx
|
|
- Portfolio.tsx
|
|
- Products.tsx
|
|
- ProductDetail.tsx
|
|
- AccountDetail.tsx
|
|
- Withdrawals.tsx
|
|
- Transactions.tsx
|
|
- Reports.tsx
|
|
- Deposit.tsx # NUEVO Sprint 3
|
|
- Withdraw.tsx # NUEVO Sprint 3
|
|
- KYCVerification.tsx # NUEVO Sprint 3
|
|
|
|
education:
|
|
cantidad: 7 # +1 Sprint 3
|
|
lista:
|
|
- Courses.tsx
|
|
- CourseDetail.tsx
|
|
- MyLearning.tsx
|
|
- Leaderboard.tsx
|
|
- Lesson.tsx
|
|
- Quiz.tsx
|
|
|
|
payments:
|
|
cantidad: 6 # +4 Sprint 3
|
|
lista:
|
|
- Pricing.tsx
|
|
- Billing.tsx
|
|
- CheckoutSuccess.tsx # NUEVO Sprint 3
|
|
- CheckoutCancel.tsx # NUEVO Sprint 3
|
|
- InvoicesPage.tsx # NUEVO Sprint 3
|
|
- RefundsPage.tsx # NUEVO Sprint 3
|
|
- PaymentMethodsPage.tsx # NUEVO Sprint 3
|
|
|
|
admin:
|
|
cantidad: 4
|
|
lista:
|
|
- AdminDashboard.tsx
|
|
- MLModelsPage.tsx
|
|
- AgentsPage.tsx
|
|
- PredictionsPage.tsx
|
|
|
|
assistant:
|
|
cantidad: 2 # +1 Sprint 3
|
|
lista:
|
|
- Assistant.tsx
|
|
- AgentSettingsPage.tsx # NUEVO Sprint 3 - Agent configuration
|
|
|
|
settings:
|
|
cantidad: 1
|
|
lista:
|
|
- Settings.tsx
|
|
|
|
portfolio:
|
|
cantidad: 5 # +1 Sprint 3
|
|
lista:
|
|
- PortfolioDashboard.tsx
|
|
- CreatePortfolio.tsx
|
|
- CreateGoal.tsx
|
|
- EditAllocations.tsx
|
|
- PortfolioDetailPage.tsx # NUEVO Sprint 3
|
|
|
|
notifications:
|
|
cantidad: 1 # NUEVO Sprint 3
|
|
lista:
|
|
- NotificationsPage.tsx
|
|
|
|
marketplace:
|
|
cantidad: 3 # NUEVO Sprint 3
|
|
lista:
|
|
- MarketplaceCatalog.tsx
|
|
- SignalPackDetail.tsx
|
|
- AdvisoryDetail.tsx
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# COMPONENTES
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
componentes:
|
|
|
|
chat:
|
|
cantidad: 4
|
|
lista:
|
|
- ChatInput.tsx
|
|
- ChatMessage.tsx
|
|
- ChatPanel.tsx
|
|
- ChatWidget.tsx
|
|
|
|
education:
|
|
cantidad: 10 # +4 OQI-002 (VideoUploadForm, CreatorDashboard, CertificateGenerator, LiveStreamPlayer)
|
|
lista:
|
|
- AchievementBadge.tsx
|
|
- CourseCard.tsx
|
|
- LeaderboardTable.tsx
|
|
- QuizQuestion.tsx
|
|
- StreakCounter.tsx
|
|
- XPProgress.tsx
|
|
- VideoUploadForm.tsx # Multi-step video upload with drag-drop, metadata (2026-01-25)
|
|
- CreatorDashboard.tsx # Creator stats, courses, activity feed (2026-01-25)
|
|
- CertificateGenerator.tsx # Certificate templates, PDF/PNG download (2026-01-25)
|
|
- LiveStreamPlayer.tsx # Live streaming with chat, reactions (2026-01-25)
|
|
|
|
payments:
|
|
cantidad: 8 # +4 OQI-005 (StripeElementsWrapper, InvoicePreview, RefundRequestModal, RefundList)
|
|
lista:
|
|
- PricingCard.tsx
|
|
- SubscriptionCard.tsx
|
|
- UsageProgress.tsx
|
|
- WalletCard.tsx
|
|
- StripeElementsWrapper.tsx # Stripe Elements provider for PCI compliance (2026-01-25)
|
|
- InvoicePreview.tsx # Pre-checkout invoice preview (2026-01-25)
|
|
- RefundRequestModal.tsx # Modal for refund requests (2026-01-25)
|
|
- RefundList.tsx # Paginated refund history (2026-01-25)
|
|
|
|
backtesting:
|
|
cantidad: 5
|
|
lista:
|
|
- EquityCurveChart.tsx
|
|
- PerformanceMetricsPanel.tsx
|
|
- PredictionChart.tsx
|
|
- StrategyComparisonChart.tsx
|
|
- TradesTable.tsx
|
|
|
|
admin:
|
|
cantidad: 2
|
|
lista:
|
|
- AgentStatsCard.tsx
|
|
- MLModelCard.tsx
|
|
|
|
layout:
|
|
cantidad: 2
|
|
lista:
|
|
- MainLayout.tsx
|
|
- AuthLayout.tsx
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# COMPONENTES POR MODULO (Detalle adicional)
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
componentes_modulos:
|
|
trading:
|
|
cantidad: 50 # Conteo real post Sprint 3
|
|
lista:
|
|
- TradingChart.tsx
|
|
- OrderBook.tsx
|
|
- OrderForm.tsx
|
|
- PositionsPanel.tsx
|
|
- TradeHistory.tsx
|
|
- WatchlistPanel.tsx
|
|
- SymbolSearch.tsx
|
|
- TimeframeSelector.tsx
|
|
- IndicatorPanel.tsx
|
|
- AlertsPanel.tsx
|
|
- TradingStatsPanel.tsx
|
|
- OrderBookPanel.tsx
|
|
- MarketDepth.tsx
|
|
- QuickTrade.tsx
|
|
- ChartToolbar.tsx
|
|
- CandlestickChart.tsx
|
|
- MLSignalsPanel.tsx
|
|
- WatchlistSidebar.tsx
|
|
- WatchlistItem.tsx
|
|
- AccountSummary.tsx
|
|
- AddSymbolModal.tsx
|
|
- ExportButton.tsx
|
|
- PaperTradingPanel.tsx
|
|
- MT4ConnectionStatus.tsx
|
|
- LivePositionCard.tsx
|
|
- RiskMonitor.tsx
|
|
- MT4PositionsManager.tsx
|
|
- AccountHealthDashboard.tsx
|
|
- TradingMetricsCard.tsx
|
|
- MT4LiveTradesPanel.tsx
|
|
- RiskBasedPositionSizer.tsx
|
|
- TradeAlertsNotificationCenter.tsx
|
|
- IndicatorConfigPanel.tsx
|
|
- ChartDrawingToolsPanel.tsx
|
|
- SymbolInfoPanel.tsx
|
|
- TradeJournalPanel.tsx
|
|
- BotCard.tsx # NUEVO Sprint 3
|
|
- CreateBotModal.tsx # NUEVO Sprint 3
|
|
# ... y componentes adicionales
|
|
|
|
ml:
|
|
cantidad: 15 # Conteo real
|
|
lista:
|
|
- AMDPhaseIndicator.tsx
|
|
- PredictionCard.tsx
|
|
- SignalsTimeline.tsx
|
|
- ConfidenceMeter.tsx
|
|
- ModelSelector.tsx
|
|
- EnsemblePanel.tsx
|
|
- ICTAnalysisPanel.tsx
|
|
- AccuracyMetrics.tsx
|
|
- EnsembleSignalCard.tsx
|
|
- ICTAnalysisCard.tsx
|
|
- TradeExecutionModal.tsx
|
|
- SignalPerformanceTracker.tsx
|
|
- ModelAccuracyDashboard.tsx
|
|
- BacktestResultsVisualization.tsx
|
|
# ML Overlays (NUEVO Sprint 3)
|
|
|
|
auth:
|
|
cantidad: 13 # Conteo real post Sprint 3
|
|
lista:
|
|
- SocialLoginButtons.tsx
|
|
- PhoneLoginForm.tsx
|
|
- TwoFactorForm.tsx
|
|
- PasswordStrengthMeter.tsx
|
|
- SessionsList.tsx
|
|
# ... y componentes adicionales de 2FA
|
|
|
|
assistant:
|
|
cantidad: 31 # Conteo real post Sprint 3
|
|
lista:
|
|
- ChatWindow.tsx
|
|
- ChatMessage.tsx
|
|
- ChatInput.tsx
|
|
- SignalCard.tsx
|
|
- ConversationHistory.tsx
|
|
- ContextPanel.tsx
|
|
- MessageFeedback.tsx
|
|
- StreamingIndicator.tsx
|
|
- AssistantSettingsPanel.tsx
|
|
- ChatHeader.tsx
|
|
- MessageSearch.tsx
|
|
- MarkdownRenderer.tsx
|
|
- MemoryManagerPanel.tsx # NUEVO Sprint 3
|
|
- ToolsConfigPanel.tsx # NUEVO Sprint 3
|
|
# ... y componentes adicionales
|
|
|
|
portfolio:
|
|
cantidad: 20 # Conteo real post Sprint 3
|
|
lista:
|
|
- AllocationChart.tsx
|
|
- AllocationTable.tsx
|
|
- PerformanceChart.tsx
|
|
- RebalanceCard.tsx
|
|
- GoalCard.tsx
|
|
- AllocationOptimizer.tsx # NUEVO Sprint 3
|
|
# ... y componentes adicionales
|
|
|
|
investment:
|
|
cantidad: 24 # Conteo real post Sprint 3
|
|
lista:
|
|
- DepositForm.tsx
|
|
- WithdrawForm.tsx
|
|
- CreateAccountWizard.tsx
|
|
- RiskAnalysisPanel.tsx
|
|
- PortfolioOptimizerWidget.tsx
|
|
- AccountTransferModal.tsx
|
|
# ... y componentes adicionales
|
|
|
|
education:
|
|
cantidad: 24 # Conteo real
|
|
lista:
|
|
- AchievementBadge.tsx
|
|
- CourseCard.tsx
|
|
- LeaderboardTable.tsx
|
|
- QuizQuestion.tsx
|
|
- StreakCounter.tsx
|
|
- XPProgress.tsx
|
|
- VideoUploadForm.tsx
|
|
- CreatorDashboard.tsx
|
|
- CertificateGenerator.tsx
|
|
- LiveStreamPlayer.tsx
|
|
- CertificatePreview.tsx
|
|
- CourseReviews.tsx
|
|
- LessonNotes.tsx
|
|
- RecommendedCourses.tsx
|
|
- CourseProgressTracker.tsx
|
|
- LearningPathVisualizer.tsx
|
|
- AssessmentSummaryCard.tsx
|
|
- ReviewForm.tsx # NUEVO Sprint 3
|
|
- LessonProgress.tsx # NUEVO Sprint 3
|
|
# ... y componentes adicionales
|
|
|
|
payments:
|
|
cantidad: 7 # Conteo real
|
|
lista:
|
|
- PricingCard.tsx
|
|
- SubscriptionCard.tsx
|
|
- UsageProgress.tsx
|
|
- WalletCard.tsx
|
|
- StripeElementsWrapper.tsx
|
|
- InvoicePreview.tsx
|
|
- RefundRequestModal.tsx
|
|
- RefundList.tsx
|
|
- PaymentMethodsManager.tsx # NUEVO Sprint 3
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# STATE MANAGEMENT
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
stores:
|
|
framework: "Zustand 4.4.7"
|
|
lista:
|
|
- auth.store.ts
|
|
- trading.store.ts
|
|
- dashboard.store.ts
|
|
- app.store.ts
|
|
- portfolioStore.ts # Portfolio management con WebSocket (2026-01-25)
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# SERVICES API
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
services:
|
|
cantidad: 16 # Conteo real post Sprint 3
|
|
lista:
|
|
- auth.service.ts
|
|
- trading.service.ts
|
|
- ml.service.ts
|
|
- education.service.ts
|
|
- video-upload.service.ts
|
|
- investment.service.ts
|
|
- payment.service.ts
|
|
- admin.service.ts
|
|
- assistant.service.ts
|
|
- portfolio.service.ts
|
|
- notification.service.ts
|
|
- websocket.service.ts
|
|
- agents.service.ts # NUEVO Sprint 3
|
|
- alerts.service.ts # NUEVO Sprint 3
|
|
- currency.service.ts # NUEVO Sprint 3
|
|
- risk.service.ts # NUEVO Sprint 3
|
|
- marketplace.service.ts # NUEVO Sprint 3
|
|
- bots.service.ts # NUEVO Sprint 3
|
|
- chat.service.ts
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# HOOKS CUSTOM
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
hooks:
|
|
cantidad: 42 # +10 hooks Sprint 3
|
|
lista:
|
|
# Core hooks
|
|
- useMLAnalysis.ts
|
|
- useFeatureFlags.ts
|
|
- usePayments.ts
|
|
# Charts hooks
|
|
- useMlOverlayData.ts
|
|
- usePredictions.ts
|
|
- useSignals.ts
|
|
- useChartOverlays.ts
|
|
# Module-specific hooks
|
|
- modules/assistant/hooks/useStreamingChat.ts
|
|
- modules/assistant/hooks/useChatAssistant.ts
|
|
- modules/assistant/hooks/useAgentMemory.ts # NUEVO Sprint 3
|
|
- modules/assistant/hooks/useAgentTools.ts # NUEVO Sprint 3
|
|
- modules/assistant/hooks/useConversations.ts # NUEVO Sprint 3
|
|
- modules/assistant/hooks/useAgentMode.ts # NUEVO Sprint 3
|
|
- modules/assistant/hooks/useAgentSettings.ts # NUEVO Sprint 3
|
|
- modules/trading/hooks/useMT4WebSocket.ts
|
|
- modules/trading/hooks/useBots.ts # NUEVO Sprint 3
|
|
- modules/trading/hooks/useMarketData.ts # NUEVO Sprint 3
|
|
- modules/auth/hooks/use2FA.ts
|
|
- modules/admin/hooks/useAuditLogs.ts
|
|
- modules/investment/hooks/useInvestmentAccounts.ts
|
|
- modules/investment/hooks/useInvestmentProducts.ts
|
|
- modules/investment/hooks/useDeposit.ts # NUEVO Sprint 3
|
|
- modules/investment/hooks/useWithdraw.ts # NUEVO Sprint 3
|
|
- modules/investment/hooks/useKYCStatus.ts # NUEVO Sprint 3
|
|
- modules/portfolio/hooks/useMonteCarloSimulation.ts
|
|
- modules/portfolio/hooks/useRebalancing.ts
|
|
- modules/portfolio/hooks/usePortfolioGoals.ts
|
|
- modules/portfolio/hooks/useRiskMetrics.ts
|
|
- modules/portfolio/hooks/useOptimization.ts # NUEVO Sprint 3
|
|
- modules/portfolio/hooks/useAllocationOptimizer.ts # NUEVO Sprint 3
|
|
- modules/portfolio/hooks/usePerformanceMetrics.ts # NUEVO Sprint 3
|
|
- modules/education/hooks/useCourseProgress.ts
|
|
- modules/education/hooks/useQuiz.ts
|
|
- modules/education/hooks/useCertificates.ts
|
|
- modules/education/hooks/useCourseReviews.ts
|
|
- modules/education/hooks/useLessonProgress.ts # NUEVO Sprint 3
|
|
- modules/payments/hooks/useInvoices.ts # NUEVO Sprint 3
|
|
- modules/payments/hooks/useRefunds.ts # NUEVO Sprint 3
|
|
- modules/payments/hooks/usePaymentMethods.ts # NUEVO Sprint 3
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# TESTS E2E
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
tests_e2e:
|
|
framework: "Jest 30 + React Testing Library"
|
|
ubicacion: "apps/frontend/src/__tests__/e2e/"
|
|
cantidad: 1
|
|
test_suites: 7
|
|
test_cases: 20+
|
|
archivos:
|
|
- payments-stripe-elements.test.tsx:
|
|
descripcion: "E2E tests for Stripe Elements integration (ST4.2.3)"
|
|
lineas: 550
|
|
fecha: "2026-01-26"
|
|
suites:
|
|
- "Stripe CardElement Rendering"
|
|
- "Payment Intent Flow"
|
|
- "Checkout Session Flow"
|
|
- "Payment Method Attachment"
|
|
- "Component State Validation"
|
|
- "Error Handling"
|
|
- "Security Best Practices"
|
|
validaciones_criticas:
|
|
- "CardElement renders as iframe (NOT native input)"
|
|
- "NO card data in React state"
|
|
- "NO card data sent to backend"
|
|
- "confirmCardPayment called with clientSecret"
|
|
- "NO sensitive data in console logs"
|
|
pci_dss_compliance: true
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# RUTAS
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
rutas:
|
|
publicas:
|
|
- /login
|
|
- /register
|
|
- /forgot-password
|
|
- /verify-email
|
|
- /auth/callback
|
|
|
|
protegidas:
|
|
- /dashboard
|
|
- /trading
|
|
- /ml-dashboard
|
|
- /backtesting
|
|
- /investment
|
|
- /investment/portfolio
|
|
- /investment/products
|
|
- /investment/products/:productId
|
|
- /investment/accounts/:accountId
|
|
- /investment/withdrawals
|
|
- /investment/transactions
|
|
- /investment/reports
|
|
- /portfolio
|
|
- /portfolio/new
|
|
- /portfolio/goals/new
|
|
- /portfolio/:portfolioId/edit
|
|
- /education/courses
|
|
- /education/my-learning
|
|
- /education/leaderboard
|
|
- /pricing
|
|
- /billing
|
|
- /settings
|
|
- /assistant
|
|
|
|
admin:
|
|
- /admin
|
|
- /admin/models
|
|
- /admin/agents
|
|
- /admin/predictions
|
|
|
|
fullscreen:
|
|
- /education/courses/:courseSlug/lesson/:lessonId
|
|
- /education/courses/:courseSlug/lesson/:lessonId/quiz
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# LIBRERIAS
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
librerias:
|
|
core:
|
|
- "React Router v6"
|
|
- "TanStack Query (React Query)"
|
|
- "React Hook Form"
|
|
- "Zod"
|
|
ui:
|
|
- "Tailwind CSS 3.4"
|
|
- "Lucide React"
|
|
charts:
|
|
- "Recharts 3.5"
|
|
- "Lightweight Charts 4.1"
|
|
utilities:
|
|
- "Axios"
|
|
- "Date-fns"
|
|
payments:
|
|
- "Stripe"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# AUDITORIA COMPREHENSIVA (2026-01-25)
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
auditoria:
|
|
fecha: "2026-01-25"
|
|
tarea: "TASK-2026-01-25-002-FRONTEND-COMPREHENSIVE-AUDIT"
|
|
metodologia: "CAPVED + 9 agentes paralelos"
|
|
documentos_generados: 48
|
|
total_lineas_analisis: 19117
|
|
|
|
metricas_globales:
|
|
total_componentes: 123
|
|
total_paginas: 32
|
|
total_componentes_reutilizables: 91
|
|
total_apis: 113
|
|
componentes_con_multimedia: 25 # ~20%
|
|
completitud_promedio: "38%"
|
|
componentes_100_funcionales: "97 (79%)"
|
|
componentes_parciales: "15 (12%)"
|
|
componentes_no_funcionales: "11 (9%)"
|
|
|
|
progreso_por_epic:
|
|
OQI-001:
|
|
nombre: "Fundamentos Auth"
|
|
componentes: 11
|
|
progreso: "70%"
|
|
gaps_criticos: 3 # P0-P1
|
|
esfuerzo_pendiente: "140h"
|
|
|
|
OQI-002:
|
|
nombre: "Educativo"
|
|
componentes: 18 # +4 (VideoUploadForm, CreatorDashboard, CertificateGenerator, LiveStreamPlayer)
|
|
progreso: "40%" # +10% por 4 componentes nuevos (2026-01-25)
|
|
gaps_criticos: 2 # P1-P2 (video upload OK, live stream OK, falta integración backend)
|
|
esfuerzo_pendiente: "200h" # -80h por componentes creados
|
|
componente_destacado: "VideoProgressPlayer (554 líneas, 11 states)"
|
|
componentes_nuevos_2026_01_25:
|
|
- VideoUploadForm.tsx (450 LOC)
|
|
- CreatorDashboard.tsx (450 LOC)
|
|
- CertificateGenerator.tsx (453 LOC)
|
|
- LiveStreamPlayer.tsx (480 LOC)
|
|
|
|
OQI-003:
|
|
nombre: "Trading Charts"
|
|
componentes: 37
|
|
progreso: "40%"
|
|
gaps_criticos: 8 # P0-P1
|
|
esfuerzo_pendiente: "420h"
|
|
hub_critico: "tradingStore (25 dependientes)"
|
|
|
|
OQI-004:
|
|
nombre: "Cuentas Inversión"
|
|
componentes: 14 # +4 (CreateAccountWizard, RiskAnalysisPanel, PortfolioOptimizerWidget, AccountTransferModal)
|
|
progreso: "55%" # +20% por 4 componentes criticos nuevos (2026-01-25)
|
|
gaps_criticos: 0 # P0 Account creation y P1 Risk/Optimizer ahora tienen UI
|
|
esfuerzo_pendiente: "100h" # -80h por componentes creados
|
|
componentes_nuevos_2026_01_25:
|
|
- CreateAccountWizard.tsx (620 LOC)
|
|
- RiskAnalysisPanel.tsx (480 LOC)
|
|
- PortfolioOptimizerWidget.tsx (520 LOC)
|
|
- AccountTransferModal.tsx (450 LOC)
|
|
|
|
OQI-005:
|
|
nombre: "Pagos Stripe"
|
|
componentes: 19 # +4 (StripeElementsWrapper, InvoicePreview, RefundRequestModal, RefundList)
|
|
progreso: "65%" # +15% por foundation PCI y refund components (2026-01-25)
|
|
gaps_criticos: 2 # P0 PCI ahora tiene foundation, falta refactor PaymentMethodForm
|
|
esfuerzo_pendiente: "120h" # -80h por componentes creados
|
|
componentes_nuevos_2026_01_25:
|
|
- StripeElementsWrapper.tsx (220 LOC)
|
|
- InvoicePreview.tsx (350 LOC)
|
|
- RefundRequestModal.tsx (480 LOC)
|
|
- RefundList.tsx (450 LOC)
|
|
|
|
OQI-006:
|
|
nombre: "ML Signals"
|
|
componentes: 15 # +3 (ModelSelector, EnsemblePanel, ICTAnalysisPanel)
|
|
progreso: "70%" # +10% por utility panels completados (2026-01-26)
|
|
gaps_criticos: 0 # Todos los gaps cerrados
|
|
esfuerzo_pendiente: "100h" # -40h por componentes creados
|
|
componentes_nuevos_2026_01_26:
|
|
- ModelSelector.tsx (280 LOC)
|
|
- EnsemblePanel.tsx (320 LOC)
|
|
- ICTAnalysisPanel.tsx (350 LOC)
|
|
|
|
OQI-007:
|
|
nombre: "LLM Strategy Agent"
|
|
componentes: 22 # +4 (ErrorBoundary, ConnectionStatus, TokenUsageDisplay, PromptLibrary)
|
|
progreso: "35%" # +10% por componentes críticos completados (2026-01-26)
|
|
gaps_criticos: 2 # Reducidos - WebSocket service y hooks pendientes
|
|
esfuerzo_pendiente: "130h" # -30h por componentes creados
|
|
componentes_nuevos_2026_01_26:
|
|
- ErrorBoundary.tsx (200 LOC)
|
|
- ConnectionStatus.tsx (280 LOC)
|
|
- TokenUsageDisplay.tsx (380 LOC)
|
|
- PromptLibrary.tsx (350 LOC)
|
|
|
|
OQI-008:
|
|
nombre: "Portfolio Manager"
|
|
componentes: 9
|
|
progreso: "20%"
|
|
gaps_criticos: 3 # P2-P3
|
|
esfuerzo_pendiente: "220h"
|
|
|
|
OQI-009:
|
|
nombre: "MT4 Gateway"
|
|
componentes: 3
|
|
progreso: "15%"
|
|
gaps_criticos: 1 # P0 BLOCKER (0% funcional)
|
|
esfuerzo_pendiente: "180h"
|
|
|
|
multimedia_handling:
|
|
video:
|
|
componentes: 2 # VideoProgressPlayer, Lesson
|
|
formatos: "MP4, WebM"
|
|
operaciones: "GET (streaming) ✅, POST (upload) ❌"
|
|
estado: "70%"
|
|
|
|
charts:
|
|
componentes: 7
|
|
tecnologias:
|
|
- "lightweight-charts 4.1.1 (Canvas)"
|
|
- "recharts 2.x (SVG)"
|
|
- "Custom SVG (AllocationChart)"
|
|
- "Custom Canvas 2D (PerformanceChart)"
|
|
estado: "90%"
|
|
|
|
images:
|
|
componentes: 5
|
|
formatos: "JPG, PNG"
|
|
operaciones: "GET (carga) ✅, POST (upload) ❌"
|
|
optimizaciones_pendientes:
|
|
- "WebP support"
|
|
- "Responsive images (srcset)"
|
|
- "Lazy loading avanzado"
|
|
- "CDN integration"
|
|
estado: "60%"
|
|
|
|
icons:
|
|
total: "120+"
|
|
librerias:
|
|
- "Lucide React (~50 icons)"
|
|
- "Heroicons (~30 icons)"
|
|
- "Custom SVG (~40 icons)"
|
|
bundle_impact: "~8 KB (gzip, tree-shaken)"
|
|
estado: "100%"
|
|
|
|
pdf:
|
|
componentes: 2 # CertificatePreview, InvoiceDetail
|
|
operaciones: "GET (preview/download) ⚠️, POST (generate) ❌"
|
|
estado: "50%"
|
|
|
|
audio:
|
|
estado: "0% - NO IMPLEMENTADO"
|
|
|
|
componentes_hub: # Alto impacto (≥5 dependientes)
|
|
- nombre: "authStore"
|
|
dependientes: 40
|
|
riesgo: "CRÍTICO"
|
|
ubicacion: "stores/auth.store.ts"
|
|
|
|
- nombre: "Button"
|
|
dependientes: 35
|
|
riesgo: "ALTO"
|
|
ubicacion: "components/ui/Button.tsx"
|
|
|
|
- nombre: "Card"
|
|
dependientes: 30
|
|
riesgo: "ALTO"
|
|
ubicacion: "components/ui/Card.tsx"
|
|
|
|
- nombre: "tradingStore"
|
|
dependientes: 25
|
|
riesgo: "ALTO"
|
|
ubicacion: "stores/trading.store.ts"
|
|
|
|
- nombre: "apiClient"
|
|
dependientes: 90
|
|
riesgo: "CRÍTICO"
|
|
ubicacion: "lib/apiClient.ts"
|
|
|
|
- nombre: "useAuth"
|
|
dependientes: 30
|
|
riesgo: "ALTO"
|
|
ubicacion: "hooks/useAuth.ts"
|
|
|
|
- nombre: "CandlestickChart"
|
|
dependientes: 3
|
|
riesgo: "MEDIO"
|
|
ubicacion: "modules/trading/components/CandlestickChart.tsx"
|
|
|
|
dependencias_cross_epic:
|
|
total: 18
|
|
criticas:
|
|
- origen: "OQI-003"
|
|
destino: "OQI-006"
|
|
componente: "CandlestickChartWithML"
|
|
- origen: "OQI-007"
|
|
destino: "OQI-003"
|
|
componente: "SignalExecutionPanel"
|
|
- origen: "OQI-001"
|
|
destino: "TODOS"
|
|
componente: "authStore"
|
|
|
|
gaps_documentacion:
|
|
especificaciones_tecnicas_faltantes: 8 # ET-*
|
|
user_stories_faltantes: 8 # US-*
|
|
swagger_docs_faltantes: 34 # ~30% de 113 APIs
|
|
module_readmes_faltantes: 8
|
|
|
|
deuda_tecnica_critica:
|
|
P0:
|
|
- issue: "Manual token refresh"
|
|
ubicacion: "authStore.ts:67"
|
|
esfuerzo: "60h"
|
|
- issue: "PCI-DSS non-compliant"
|
|
ubicacion: "PaymentMethodForm.tsx"
|
|
esfuerzo: "80h"
|
|
- issue: "MT4 Gateway stub (0% funcional)"
|
|
ubicacion: "modules/mt4/"
|
|
esfuerzo: "180h"
|
|
|
|
P1:
|
|
- issue: "VideoProgressPlayer sin upload"
|
|
ubicacion: "modules/education/"
|
|
esfuerzo: "60h"
|
|
- issue: "OrderBookPanel polling (no WebSocket)"
|
|
ubicacion: "modules/trading/components/"
|
|
esfuerzo: "40h"
|
|
- issue: "Sin Error Boundaries"
|
|
ubicacion: "apps/frontend/src/"
|
|
esfuerzo: "15h"
|
|
|
|
performance:
|
|
bundle_size_multimedia: "~283 KB (gzip)" # Excelente
|
|
metricas_actuales:
|
|
fcp: "~3.5s"
|
|
tti: "~6s"
|
|
lcp: "~4.2s"
|
|
cls: "0.15"
|
|
|
|
metricas_target_q4_2026:
|
|
fcp: "<1.5s"
|
|
tti: "<3s"
|
|
lcp: "<2.5s"
|
|
cls: "<0.1"
|
|
|
|
security:
|
|
vulnerabilidades:
|
|
- tipo: "Tokens en localStorage"
|
|
owasp: "A02:2021"
|
|
severidad: "ALTA"
|
|
- tipo: "No CSRF protection"
|
|
owasp: "A01:2021"
|
|
severidad: "ALTA"
|
|
- tipo: "PCI-DSS non-compliant"
|
|
severidad: "CRÍTICA"
|
|
- tipo: "XSS en MarkdownRenderer"
|
|
owasp: "A03:2021"
|
|
severidad: "MEDIA"
|
|
|
|
roadmap_propuesto:
|
|
fase_1_q1_2026:
|
|
nombre: "Security & Blockers"
|
|
esfuerzo: "60h" # 141h completados: PCI-DSS (18h) + Video upload (41h) + E2E tests (8h)
|
|
items_completados:
|
|
- "✅ PCI-DSS compliance (18h real vs 80h estimado) - ST4.2"
|
|
- "✅ Video upload (41h real vs 60h estimado) - ST4.3"
|
|
- "✅ E2E tests payments (8h) - ST4.2.3"
|
|
items_pendientes:
|
|
- "Auto-refresh tokens (60h)"
|
|
|
|
fase_2_q2_2026:
|
|
nombre: "Core Features"
|
|
esfuerzo: "362h"
|
|
items:
|
|
- "MT4 Gateway funcional (180h)"
|
|
- "Live streaming educativo (80h)"
|
|
- "WebSocket real-time trading (60h)"
|
|
- "Portfolio optimizer (80h)"
|
|
|
|
fase_3_q3_2026:
|
|
nombre: "Scalability & UX"
|
|
esfuerzo: "372h" # 8h de E2E ya completados
|
|
items:
|
|
- "WebP + Lazy loading (60h)"
|
|
- "Code-splitting (40h)"
|
|
- "Tests E2E adicionales (112h)" # ✅ 8h completados (payments), 112h pendientes (resto)
|
|
- "Error boundaries (15h)"
|
|
|
|
fase_4_q4_2026:
|
|
nombre: "Advanced Features"
|
|
esfuerzo: "1514h"
|
|
items:
|
|
- "Audio/Podcast (120h)"
|
|
- "Voice input (50h)"
|
|
- "Advanced ML models (200h)"
|
|
|
|
referencias_auditoria:
|
|
executive_summary: "entregables/EXECUTIVE-SUMMARY.md"
|
|
components_matrix: "entregables/COMPONENTS-MASTER-MATRIX.md"
|
|
api_contracts: "entregables/API-CONTRACTS-MASTER-MATRIX.md"
|
|
multimedia_matrix: "entregables/MULTIMEDIA-MASTER-MATRIX.md"
|
|
dependency_graph: "entregables/DEPENDENCY-GRAPH.md"
|
|
purge_plan: "entregables/PURGE-PLAN.md"
|
|
integration_plan: "entregables/INTEGRATION-PLAN.md"
|
|
recommendations: "entregables/RECOMMENDATIONS.md"
|