- Create TASK-2026-01-25-OQI-008-PORTFOLIO-MANAGER with METADATA, SUMMARY, EJECUCION - Update BACKEND_INVENTORY with portfolio module details (repositories, websocket, endpoints) - Update FRONTEND_INVENTORY with portfolio pages, components, store, routes - Update MASTER_INVENTORY with OQI-008 progress (10% -> 90%) - Update _INDEX.yml with new task entry Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
323 lines
10 KiB
YAML
323 lines
10 KiB
YAML
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# FRONTEND_INVENTORY.yml - Trading Platform
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
version: "1.0.0"
|
|
fecha_actualizacion: "2026-01-25"
|
|
proyecto: "trading-platform"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# RESUMEN
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
resumen:
|
|
total_paginas: 31
|
|
total_componentes: 53
|
|
total_stores: 5
|
|
total_services: 10
|
|
total_hooks: 3
|
|
ubicacion: "apps/frontend/src/"
|
|
framework: "React 18.2.0"
|
|
build_tool: "Vite 6.2.0"
|
|
lenguaje: "TypeScript 5.3.3"
|
|
fecha_actualizacion: "2026-01-25"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# PAGINAS POR MODULO
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
paginas:
|
|
|
|
auth:
|
|
cantidad: 6
|
|
lista:
|
|
- Login.tsx
|
|
- Register.tsx
|
|
- ForgotPassword.tsx
|
|
- VerifyEmail.tsx
|
|
- ResetPassword.tsx
|
|
- AuthCallback.tsx
|
|
|
|
dashboard:
|
|
cantidad: 1
|
|
lista:
|
|
- Dashboard.tsx
|
|
|
|
trading:
|
|
cantidad: 1
|
|
lista:
|
|
- Trading.tsx
|
|
|
|
ml:
|
|
cantidad: 1
|
|
lista:
|
|
- MLDashboard.tsx
|
|
|
|
backtesting:
|
|
cantidad: 1
|
|
lista:
|
|
- BacktestingDashboard.tsx
|
|
|
|
investment:
|
|
cantidad: 3
|
|
lista:
|
|
- Investment.tsx
|
|
- Portfolio.tsx
|
|
- Products.tsx
|
|
|
|
education:
|
|
cantidad: 6
|
|
lista:
|
|
- Courses.tsx
|
|
- CourseDetail.tsx
|
|
- MyLearning.tsx
|
|
- Leaderboard.tsx
|
|
- Lesson.tsx
|
|
- Quiz.tsx
|
|
|
|
payments:
|
|
cantidad: 2
|
|
lista:
|
|
- Pricing.tsx
|
|
- Billing.tsx
|
|
|
|
admin:
|
|
cantidad: 4
|
|
lista:
|
|
- AdminDashboard.tsx
|
|
- MLModelsPage.tsx
|
|
- AgentsPage.tsx
|
|
- PredictionsPage.tsx
|
|
|
|
assistant:
|
|
cantidad: 1
|
|
lista:
|
|
- Assistant.tsx
|
|
|
|
settings:
|
|
cantidad: 1
|
|
lista:
|
|
- Settings.tsx
|
|
|
|
portfolio:
|
|
cantidad: 4
|
|
lista:
|
|
- PortfolioDashboard.tsx
|
|
- CreatePortfolio.tsx
|
|
- CreateGoal.tsx
|
|
- EditAllocations.tsx
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# COMPONENTES
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
componentes:
|
|
|
|
chat:
|
|
cantidad: 4
|
|
lista:
|
|
- ChatInput.tsx
|
|
- ChatMessage.tsx
|
|
- ChatPanel.tsx
|
|
- ChatWidget.tsx
|
|
|
|
education:
|
|
cantidad: 6
|
|
lista:
|
|
- AchievementBadge.tsx
|
|
- CourseCard.tsx
|
|
- LeaderboardTable.tsx
|
|
- QuizQuestion.tsx
|
|
- StreakCounter.tsx
|
|
- XPProgress.tsx
|
|
|
|
payments:
|
|
cantidad: 4
|
|
lista:
|
|
- PricingCard.tsx
|
|
- SubscriptionCard.tsx
|
|
- UsageProgress.tsx
|
|
- WalletCard.tsx
|
|
|
|
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: 12
|
|
lista:
|
|
- TradingChart.tsx
|
|
- OrderBook.tsx
|
|
- OrderForm.tsx
|
|
- PositionsPanel.tsx
|
|
- TradeHistory.tsx
|
|
- WatchlistPanel.tsx
|
|
- SymbolSearch.tsx
|
|
- TimeframeSelector.tsx
|
|
- IndicatorPanel.tsx
|
|
- AlertsPanel.tsx
|
|
- MarketDepth.tsx
|
|
- QuickTrade.tsx
|
|
|
|
ml:
|
|
cantidad: 7
|
|
lista:
|
|
- AMDPhaseIndicator.tsx
|
|
- PredictionCard.tsx
|
|
- SignalsTimeline.tsx
|
|
- ConfidenceMeter.tsx
|
|
- ModelSelector.tsx
|
|
- EnsemblePanel.tsx
|
|
- ICTAnalysisPanel.tsx
|
|
|
|
auth:
|
|
cantidad: 4
|
|
lista:
|
|
- SocialLoginButtons.tsx
|
|
- PhoneLoginForm.tsx
|
|
- TwoFactorForm.tsx
|
|
- PasswordStrengthMeter.tsx
|
|
|
|
assistant:
|
|
cantidad: 4
|
|
lista:
|
|
- ChatWindow.tsx
|
|
- ChatMessage.tsx
|
|
- ChatInput.tsx
|
|
- SignalCard.tsx
|
|
|
|
portfolio:
|
|
cantidad: 5
|
|
lista:
|
|
- AllocationChart.tsx # Donut chart de allocaciones
|
|
- AllocationTable.tsx # Tabla de posiciones
|
|
- PerformanceChart.tsx # Line chart de rendimiento (canvas)
|
|
- RebalanceCard.tsx # Card de recomendaciones
|
|
- GoalCard.tsx # Card de metas financieras
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# 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: 10
|
|
lista:
|
|
- auth.service.ts
|
|
- trading.service.ts
|
|
- ml.service.ts
|
|
- education.service.ts
|
|
- investment.service.ts
|
|
- payments.service.ts
|
|
- admin.service.ts
|
|
- assistant.service.ts
|
|
- portfolio.service.ts
|
|
- websocket.service.ts # WebSocket connections (trading, ml, portfolio)
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# HOOKS CUSTOM
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
hooks:
|
|
cantidad: 3
|
|
lista:
|
|
- useAuth.ts
|
|
- useTrading.ts
|
|
- usePortfolioUpdates (websocket.service.ts) # Real-time portfolio updates
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# RUTAS
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
rutas:
|
|
publicas:
|
|
- /login
|
|
- /register
|
|
- /forgot-password
|
|
- /verify-email
|
|
- /auth/callback
|
|
|
|
protegidas:
|
|
- /dashboard
|
|
- /trading
|
|
- /ml-dashboard
|
|
- /backtesting
|
|
- /investment
|
|
- /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"
|