workspace-v1/projects/trading-platform/docs/90-transversal/inventarios/FRONTEND_INVENTORY.yml
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

553 lines
15 KiB
YAML

# ============================================================================
# FRONTEND_INVENTORY.yml - OrbiQuant IA Trading Platform
# ============================================================================
# Proposito: Inventario consolidado de todos los componentes del frontend
# Ultima actualizacion: 2025-12-05
# Version: 1.0.0
# ============================================================================
version: "1.0.0"
project: "OrbiQuant IA"
framework: "React 18 + TypeScript + Vite"
styling: "TailwindCSS + shadcn/ui"
state_management: "Zustand"
last_updated: "2025-12-05"
# ============================================================================
# RESUMEN EJECUTIVO
# ============================================================================
summary:
total_features: 6
total_pages: 12
total_components: 18
total_hooks: 0
total_stores: 0
status: "En desarrollo (OQI-001 parcial)"
# ============================================================================
# ESTRUCTURA DE DIRECTORIOS
# ============================================================================
structure:
root: "apps/frontend/src"
directories:
- path: components/
purpose: "Componentes compartidos (layout)"
- path: modules/
purpose: "Features organizados por dominio"
- path: hooks/
purpose: "Custom hooks compartidos"
status: "Pendiente"
- path: stores/
purpose: "Zustand stores"
status: "Pendiente"
- path: types/
purpose: "Tipos TypeScript compartidos"
status: "Pendiente"
- path: lib/
purpose: "Utilidades y helpers"
status: "Pendiente"
# ============================================================================
# FEATURES (MODULOS)
# ============================================================================
features:
# --------------------------------------------------------------------------
# AUTH - Autenticacion
# --------------------------------------------------------------------------
- name: auth
path: modules/auth/
epic: OQI-001
status: implemented
description: "Login, registro, OAuth, 2FA"
pages:
- name: Login.tsx
route: /login
description: "Pagina de login"
rf: RF-AUTH-002
- name: Register.tsx
route: /register
description: "Pagina de registro"
rf: RF-AUTH-002
- name: ForgotPassword.tsx
route: /forgot-password
description: "Solicitar reset de password"
rf: RF-AUTH-002
- name: ResetPassword.tsx
route: /reset-password
description: "Completar reset de password"
rf: RF-AUTH-002
- name: VerifyEmail.tsx
route: /verify-email
description: "Verificacion de email"
rf: RF-AUTH-002
- name: AuthCallback.tsx
route: /auth/callback
description: "Callback de OAuth"
rf: RF-AUTH-001
components:
- name: SocialLoginButtons.tsx
purpose: "Botones de login social (Google, Facebook, X, Apple, GitHub)"
rf: RF-AUTH-001
- name: PhoneLoginForm.tsx
purpose: "Formulario de login por telefono"
rf: RF-AUTH-002
# --------------------------------------------------------------------------
# DASHBOARD - Panel principal
# --------------------------------------------------------------------------
- name: dashboard
path: modules/dashboard/
epic: OQI-001
status: structure_only
description: "Panel principal del usuario"
pages:
- name: Dashboard.tsx
route: /dashboard
description: "Dashboard principal"
components_planned:
- name: PortfolioSummary.tsx
purpose: "Resumen de portfolio"
- name: RecentActivity.tsx
purpose: "Actividad reciente"
- name: QuickActions.tsx
purpose: "Acciones rapidas"
# --------------------------------------------------------------------------
# EDUCATION - Cursos
# --------------------------------------------------------------------------
- name: education
path: modules/education/
epic: OQI-002
status: structure_only
description: "Catalogo y detalle de cursos"
pages:
- name: Courses.tsx
route: /courses
description: "Catalogo de cursos"
rf: RF-EDU-001
- name: CourseDetail.tsx
route: /courses/:slug
description: "Detalle de curso"
rf: RF-EDU-002
pages_planned:
- name: LessonViewer.tsx
route: /courses/:slug/lessons/:lessonId
description: "Visor de leccion"
- name: QuizPage.tsx
route: /courses/:slug/quizzes/:quizId
description: "Pagina de quiz"
- name: MyLearning.tsx
route: /my-learning
description: "Mis cursos inscritos"
components_planned:
- name: CourseCard.tsx
purpose: "Tarjeta de curso"
- name: LessonList.tsx
purpose: "Lista de lecciones"
- name: VideoPlayer.tsx
purpose: "Reproductor de video"
- name: QuizForm.tsx
purpose: "Formulario de quiz"
- name: ProgressBar.tsx
purpose: "Barra de progreso"
# --------------------------------------------------------------------------
# TRADING - Trading y charts
# --------------------------------------------------------------------------
- name: trading
path: modules/trading/
epic: OQI-003
status: structure_only
description: "Charts, watchlists, paper trading"
pages:
- name: Trading.tsx
route: /trading
description: "Pagina principal de trading"
rf: RF-TRD-001
pages_planned:
- name: PaperTrading.tsx
route: /trading/paper
description: "Paper trading"
- name: Signals.tsx
route: /trading/signals
description: "Senales ML"
components_planned:
- name: TradingChart.tsx
purpose: "Chart con Lightweight Charts + ML overlay"
rf: RF-TRD-003
- name: OrderPanel.tsx
purpose: "Panel de ordenes"
- name: WatchlistPanel.tsx
purpose: "Panel de watchlist"
- name: PositionsTable.tsx
purpose: "Tabla de posiciones"
- name: SignalCard.tsx
purpose: "Tarjeta de senal ML"
- name: MLOverlay.tsx
purpose: "Overlay de predicciones ML"
rf: RF-TRD-003
- name: AMDZoneIndicator.tsx
purpose: "Indicador de zonas AMD"
# --------------------------------------------------------------------------
# INVESTMENT - Cuentas de inversion
# --------------------------------------------------------------------------
- name: investment
path: modules/investment/
epic: OQI-004
status: structure_only
description: "Productos, cuentas, rendimiento"
pages:
- name: Investment.tsx
route: /investment
description: "Pagina de inversiones"
rf: RF-INV-001
pages_planned:
- name: Products.tsx
route: /investment/products
description: "Catalogo de productos"
- name: AccountDetail.tsx
route: /investment/accounts/:id
description: "Detalle de cuenta"
- name: OpenAccount.tsx
route: /investment/open-account
description: "Abrir cuenta nueva"
components_planned:
- name: ProductCard.tsx
purpose: "Tarjeta de producto (Atlas/Orion/Nova)"
- name: AccountSummary.tsx
purpose: "Resumen de cuenta"
- name: PerformanceChart.tsx
purpose: "Grafico de rendimiento"
- name: DepositModal.tsx
purpose: "Modal de deposito"
- name: WithdrawModal.tsx
purpose: "Modal de retiro"
- name: BotSelector.tsx
purpose: "Selector de bot/agente"
# --------------------------------------------------------------------------
# SETTINGS - Configuracion
# --------------------------------------------------------------------------
- name: settings
path: modules/settings/
epic: OQI-001
status: structure_only
description: "Configuracion de usuario"
pages:
- name: Settings.tsx
route: /settings
description: "Pagina de configuracion"
pages_planned:
- name: Profile.tsx
route: /settings/profile
description: "Editar perfil"
- name: Security.tsx
route: /settings/security
description: "Seguridad y 2FA"
- name: Notifications.tsx
route: /settings/notifications
description: "Preferencias de notificaciones"
- name: Billing.tsx
route: /settings/billing
description: "Suscripcion y pagos"
# ============================================================================
# COMPONENTES COMPARTIDOS
# ============================================================================
shared_components:
layout:
- name: MainLayout.tsx
path: components/layout/MainLayout.tsx
purpose: "Layout principal con sidebar"
- name: AuthLayout.tsx
path: components/layout/AuthLayout.tsx
purpose: "Layout para paginas de auth"
planned:
- name: Navbar.tsx
purpose: "Barra de navegacion"
- name: Sidebar.tsx
purpose: "Menu lateral"
- name: Footer.tsx
purpose: "Pie de pagina"
- name: LoadingSpinner.tsx
purpose: "Indicador de carga"
- name: ErrorBoundary.tsx
purpose: "Manejo de errores"
- name: Modal.tsx
purpose: "Componente modal base"
- name: Toast.tsx
purpose: "Notificaciones toast"
# ============================================================================
# ROUTING
# ============================================================================
routing:
file: App.tsx
routes:
public:
- path: /login
component: Login
- path: /register
component: Register
- path: /forgot-password
component: ForgotPassword
- path: /reset-password
component: ResetPassword
- path: /verify-email
component: VerifyEmail
- path: /auth/callback
component: AuthCallback
protected:
- path: /dashboard
component: Dashboard
- path: /courses
component: Courses
- path: /courses/:slug
component: CourseDetail
- path: /trading
component: Trading
- path: /investment
component: Investment
- path: /settings
component: Settings
# ============================================================================
# STORES (ZUSTAND)
# ============================================================================
stores:
planned:
- name: authStore
purpose: "Estado de autenticacion"
state:
- user
- isAuthenticated
- accessToken
actions:
- login()
- logout()
- refreshToken()
- name: tradingStore
purpose: "Estado de trading"
state:
- selectedSymbol
- timeframe
- watchlists
- positions
actions:
- setSymbol()
- addToWatchlist()
- placeOrder()
- name: educationStore
purpose: "Estado de educacion"
state:
- enrolledCourses
- currentLesson
- progress
actions:
- enrollCourse()
- updateProgress()
- name: uiStore
purpose: "Estado de UI"
state:
- theme
- sidebarOpen
- notifications
actions:
- toggleTheme()
- toggleSidebar()
- showNotification()
# ============================================================================
# HOOKS PERSONALIZADOS
# ============================================================================
hooks:
planned:
- name: useAuth
purpose: "Hook de autenticacion"
returns: [user, isLoading, login, logout]
- name: useApi
purpose: "Hook para llamadas API"
returns: [data, error, isLoading, refetch]
- name: useTradingChart
purpose: "Hook para manejo de charts"
- name: useWebSocket
purpose: "Hook para conexiones WebSocket"
- name: useNotification
purpose: "Hook para notificaciones"
# ============================================================================
# MAPEO A EPICAS
# ============================================================================
epic_mapping:
OQI-001:
features: [auth, dashboard, settings]
pages_count: 8
status: "Parcialmente implementado"
OQI-002:
features: [education]
pages_count: 2
status: "Estructura creada"
OQI-003:
features: [trading]
pages_count: 1
status: "Estructura creada"
OQI-004:
features: [investment]
pages_count: 1
status: "Estructura creada"
OQI-005:
features: []
pages_count: 0
status: "Pendiente"
note: "Paginas de billing en settings"
OQI-006:
features: []
pages_count: 0
status: "Pendiente"
note: "Componentes ML en trading"
OQI-007:
features: []
pages_count: 0
status: "Planificado"
note: "Feature copilot a crear"
OQI-008:
features: []
pages_count: 0
status: "Planificado"
note: "Feature portfolio a crear"
# ============================================================================
# DEPENDENCIAS PRINCIPALES
# ============================================================================
dependencies:
production:
- react: "^18.x"
- react-dom: "^18.x"
- react-router-dom: "^6.x"
- typescript: "^5.x"
- zustand: "^4.x"
- tailwindcss: "^3.x"
- "@tanstack/react-query": "^5.x"
- axios: "^1.x"
- lightweight-charts: "^4.x"
- lucide-react: "^0.x"
development:
- vite: "^5.x"
- "@types/react": "^18.x"
- "@vitejs/plugin-react": "^4.x"
- autoprefixer: "^10.x"
- postcss: "^8.x"
# ============================================================================
# ARCHIVOS CLAVE
# ============================================================================
key_files:
- path: apps/frontend/src/main.tsx
purpose: "Entry point de la aplicacion"
- path: apps/frontend/src/App.tsx
purpose: "Componente raiz con routing"
- path: apps/frontend/tailwind.config.js
purpose: "Configuracion de Tailwind"
- path: apps/frontend/vite.config.ts
purpose: "Configuracion de Vite"
- path: apps/frontend/package.json
purpose: "Dependencias y scripts"
# ============================================================================
# NOTAS Y PENDIENTES
# ============================================================================
notes:
- "Solo auth tiene implementacion real, resto son paginas placeholder"
- "Falta crear stores Zustand"
- "Falta crear hooks personalizados"
- "Falta integracion con API del backend"
- "Falta componente TradingChart con Lightweight Charts"
- "Falta feature Copilot (OQI-007)"
- "Falta feature Portfolio (OQI-008)"
- "Tests E2E pendientes"
# ============================================================================
# FIN DEL INVENTARIO
# ============================================================================