Frontend de trading-platform - Workspace V2
Go to file
Adrian Flores Cortes 42d18759b5 feat: Implement BLOCKER-001 proactive refresh + E2E video tests (frontend)
BLOCKER-001: Token Refresh Improvements (FASE 4 frontend)
- Proactive refresh scheduler: refresh 5min before token expiry
- Multi-tab synchronization with BroadcastChannel API
- Automatic scheduling on X-Token-Expires-At header reception
- Background token refresh to prevent user interruption

E2E Tests: Video Upload Module (frontend - 62 tests)
- Suite 1: Form tests (27 tests) - 3-step wizard validation
- Suite 2: Service tests (20 tests) - Multipart upload logic
- Suite 3: Integration tests (15 tests) - Complete flow validation

Test infrastructure:
- vitest.config.ts (NEW) - Vitest configuration with jsdom
- src/__tests__/setup.ts (NEW) - Global test setup and mocks
- Updated payments-stripe-elements.test.tsx to use Vitest (vi.mock)

Changes:
- apiClient.ts: Proactive refresh scheduler + BroadcastChannel sync
- payments-stripe-elements.test.tsx: Migrated from Jest to Vitest

Tests created:
- video-upload-form.test.tsx (27 tests) - Component validation
- video-upload-service.test.ts (20 tests) - Service logic validation
- video-upload-integration.test.tsx (15 tests) - Integration flow

Additional documentation:
- Module README.md files for assistant, auth, education, investment, payments, portfolio, trading
- Investment module: Analysis, contracts, gaps, delivery documentation
- Payments module: Stripe integration, wallet specification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:44:40 -06:00
src feat: Implement BLOCKER-001 proactive refresh + E2E video tests (frontend) 2026-01-27 01:44:40 -06:00
.env.example feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
.eslintrc.cjs feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
.gitignore feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
Dockerfile feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
eslint.config.js feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
index.html feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
ML_DASHBOARD_IMPLEMENTATION.md feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
nginx.conf feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
package-lock.json feat: Implement BLOCKER-001 proactive refresh + E2E video tests (frontend) 2026-01-27 01:44:40 -06:00
package.json feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
postcss.config.js feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
README.md feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
tailwind.config.js feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
tsconfig.json feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
tsconfig.node.json feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
vite.config.ts feat: Initial commit - Trading Platform Frontend 2026-01-18 04:30:39 -06:00
vitest.config.ts feat: Implement BLOCKER-001 proactive refresh + E2E video tests (frontend) 2026-01-27 01:44:40 -06:00

Trading Platform Frontend

Aplicacion web frontend para Trading Platform.

Stack Tecnologico

  • Framework: React 18
  • Build Tool: Vite 6
  • Lenguaje: TypeScript 5.x
  • Estilos: TailwindCSS 3.4
  • Estado: Zustand + React Query
  • Forms: React Hook Form + Zod
  • Charts: Recharts + Lightweight Charts
  • Icons: Heroicons + Lucide React

Estructura del Proyecto

src/
├── components/       # Componentes reutilizables
│   ├── ui/           # Componentes UI base
│   ├── charts/       # Graficos y visualizaciones
│   ├── forms/        # Componentes de formulario
│   └── layout/       # Layout components
├── hooks/            # Custom React hooks
├── modules/          # Modulos de negocio
│   ├── auth/         # Autenticacion
│   ├── dashboard/    # Dashboard principal
│   ├── trading/      # Trading interface
│   ├── portfolio/    # Gestion de portfolios
│   └── education/    # Modulo educativo
├── services/         # API clients y servicios
├── stores/           # Zustand stores
├── styles/           # Estilos globales
├── types/            # TypeScript types
├── App.tsx           # Componente raiz
└── main.tsx          # Entry point

Instalacion

# Instalar dependencias
npm install

# Copiar variables de entorno
cp .env.example .env

Variables de Entorno

# API Backend
VITE_API_URL=http://localhost:3000/api/v1
VITE_WS_URL=ws://localhost:3000/ws

# Stripe (public key)
VITE_STRIPE_PUBLIC_KEY=pk_test_xxx

# Feature flags
VITE_ENABLE_ML_DASHBOARD=true
VITE_ENABLE_TRADING=true

Scripts Disponibles

Script Descripcion
npm run dev Servidor desarrollo (Vite)
npm run build Build produccion
npm run preview Preview build local
npm run lint Verificar codigo ESLint
npm run test Ejecutar tests (Vitest)
npm run typecheck Verificar tipos TypeScript

Desarrollo

# Iniciar servidor desarrollo
npm run dev

# Abrir en navegador
# http://localhost:5173

Componentes Principales

Dashboard

  • Overview de portfolio
  • Graficos de rendimiento
  • Senales ML activas

Trading

  • Interfaz de ordenes
  • Graficos en tiempo real (TradingView style)
  • Order book y historial

Portfolio

  • Distribucion de assets
  • Historial de transacciones
  • Metricas de rendimiento

ML Dashboard

  • Predicciones activas
  • Metricas de modelos
  • Historial de senales

Estado Global (Zustand)

// stores/authStore.ts
const useAuthStore = create((set) => ({
  user: null,
  token: null,
  login: (user, token) => set({ user, token }),
  logout: () => set({ user: null, token: null }),
}));

// stores/tradingStore.ts
const useTradingStore = create((set) => ({
  orders: [],
  positions: [],
  // ...
}));

API Client (React Query)

// services/api.ts
import { useQuery, useMutation } from '@tanstack/react-query';

export const useUser = () => useQuery({
  queryKey: ['user'],
  queryFn: fetchUser,
});

export const useCreateOrder = () => useMutation({
  mutationFn: createOrder,
});

Testing

# Ejecutar tests
npm run test

# Tests con UI
npm run test:ui

# Coverage
npm run test:coverage

Build y Deploy

# Build produccion
npm run build

# Output en dist/
ls dist/

Docker

# Build imagen
docker build -t trading-frontend .

# Ejecutar con nginx
docker run -p 80:80 trading-frontend

Configuracion Nginx

Ver nginx.conf para configuracion de produccion con:

  • Compresion gzip
  • Cache de assets estaticos
  • SPA fallback routing
  • Security headers

Documentacion Relacionada


Proyecto: Trading Platform Version: 0.1.0 Actualizado: 2026-01-07