Backend de trading-platform - Workspace V2
- Add @aws-sdk/client-s3 and @aws-sdk/s3-request-presigner dependencies - Add storage config section to config/index.ts - Fix users.controller.ts imports (db, AuthenticatedRequest, logger) - Update education.types.ts with backward-compatible alias properties - Add missing interfaces: LessonResource, QuizOption - Change QuizQuestion.options from Record to QuizOption[] - Fix education services to align with updated types - Export ML service types properly in ml.module.ts - Fix portfolio/snapshot.repository.ts type cast - Fix trading/order.service.ts number type Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| src | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| ENDPOINT-ROUTING.md | ||
| eslint.config.js | ||
| jest.config.ts | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| service.descriptor.yml | ||
| swagger.yml | ||
| test-websocket.html | ||
| test-websocket.js | ||
| tsconfig.json | ||
| WEBSOCKET_IMPLEMENTATION_REPORT.md | ||
| WEBSOCKET_TESTING.md | ||
Trading Platform Backend API
Backend API para la plataforma Trading Platform.
Stack Tecnologico
- Runtime: Node.js >= 18.0.0
- Framework: Express.js 5.x
- Lenguaje: TypeScript 5.x
- Base de Datos: PostgreSQL 16 (pg driver)
- Autenticacion: JWT + Passport.js (OAuth2)
- Validacion: class-validator + zod
- Documentacion API: Swagger (OpenAPI 3.0)
Estructura del Proyecto
src/
├── config/ # Configuracion (env, swagger, database)
├── middleware/ # Middleware Express (auth, rate-limit, cors)
├── modules/ # Modulos de negocio
│ ├── admin/ # Administracion del sistema
│ ├── agents/ # Agentes de trading
│ ├── auth/ # Autenticacion y autorizacion
│ ├── education/ # Modulo educativo (gamificacion, quizzes)
│ ├── investment/ # Gestion de inversiones
│ ├── llm/ # Integracion LLM (Anthropic, OpenAI)
│ ├── ml/ # Senales ML y predicciones
│ ├── payments/ # Pagos y suscripciones (Stripe)
│ ├── portfolio/ # Gestion de portafolios
│ ├── trading/ # Operaciones de trading
│ └── users/ # Gestion de usuarios
├── services/ # Servicios compartidos
├── types/ # Tipos TypeScript
├── utils/ # Utilidades
└── index.ts # Entry point
Instalacion
# Instalar dependencias
npm install
# Copiar variables de entorno
cp .env.example .env
# Editar .env con credenciales
Variables de Entorno
# Server
PORT=3000
NODE_ENV=development
# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/trading_platform
# JWT
JWT_SECRET=your-secret-key
JWT_EXPIRES_IN=7d
# OAuth (opcional)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Stripe
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
# Redis (cache)
REDIS_URL=redis://localhost:6379
Scripts Disponibles
| Script | Descripcion |
|---|---|
npm run dev |
Desarrollo con hot-reload (tsx watch) |
npm run build |
Compilar TypeScript |
npm start |
Ejecutar build de produccion |
npm run lint |
Verificar codigo con ESLint |
npm run test |
Ejecutar tests con Jest |
npm run typecheck |
Verificar tipos TypeScript |
API Documentation
Swagger UI disponible en desarrollo:
http://localhost:3000/api/v1/docs
Modulos Principales
Auth (/api/v1/auth)
- Login/Register con email
- OAuth2 (Google, Apple, Facebook, GitHub)
- 2FA (TOTP + SMS)
- Refresh tokens
Trading (/api/v1/trading)
- Ordenes de compra/venta
- Historial de operaciones
- WebSocket para datos en tiempo real
ML Signals (/api/v1/ml)
- Predicciones de mercado
- Senales de trading
- Metricas de modelos
Payments (/api/v1/payments)
- Suscripciones con Stripe
- Facturacion
- Historial de pagos
WebSocket
Endpoint WebSocket para datos en tiempo real:
ws://localhost:3000/ws
Eventos soportados:
market:ticker- Precios en tiempo realsignals:update- Nuevas senales MLorders:update- Actualizaciones de ordenes
Testing
# Ejecutar todos los tests
npm test
# Tests con coverage
npm run test:coverage
# Tests en modo watch
npm run test:watch
Docker
# Build imagen
docker build -t trading-backend .
# Ejecutar contenedor
docker run -p 3000:3000 --env-file .env trading-backend
Documentacion Relacionada
Proyecto: Trading Platform Version: 0.1.0 Actualizado: 2026-01-07