Frontend de trading-platform - Workspace V2
Go to file
Adrian Flores Cortes 261dc4c71c feat: Add 2FA frontend components (TwoFactorSetup, TwoFactorVerifyModal, TwoFactorSettings)
Created three complete 2FA components integrating with existing backend endpoints:

1. TwoFactorSetup.tsx (auth/components)
   - 3-step wizard for 2FA setup
   - QR code display with manual entry fallback
   - TOTP code verification
   - Backup codes display with copy functionality
   - Integrates with POST /auth/2fa/setup and /auth/2fa/enable

2. TwoFactorVerifyModal.tsx (auth/components)
   - Modal for 2FA verification during login
   - Support for both TOTP (6 digits) and backup codes (8 digits)
   - Auto-submit for TOTP codes
   - Switch between code types
   - Auto-focus input field

3. TwoFactorSettings.tsx (settings/components)
   - Management panel for 2FA in settings
   - Enable/disable 2FA with confirmation
   - Regenerate backup codes
   - Status display with activation date
   - Integrates with all 2FA endpoints

All components follow project patterns:
- Tailwind CSS styling matching existing components
- lucide-react icons
- Centralized apiClient with auto-refresh
- Complete TypeScript types
- No placeholders or TODOs

Related: GAP-P1-004 2FA Frontend Flow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 12:23:06 -06:00
src feat: Add 2FA frontend components (TwoFactorSetup, TwoFactorVerifyModal, TwoFactorSettings) 2026-01-28 12:23:06 -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 fix(frontend): resolve all 218 pre-existing TypeScript errors 2026-01-27 05:45:12 -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