Backend de trading-platform - Workspace V2
Go to file
Adrian Flores Cortes 815f3e42eb feat(education): Add video upload controller and service (ST4.3.3)
Files created:
- src/modules/education/services/video.service.ts (400+ lines)
- src/modules/education/controllers/video.controller.ts (300+ lines)
- Updated src/modules/education/education.routes.ts

Video Service features:
- initializeUpload(): Create DB record + multipart upload
- completeUpload(): Finalize multipart upload
- abortUpload(): Cancel upload
- getVideoById(), getVideosByCourse(), getVideosByLesson()
- updateVideo(): Update metadata
- deleteVideo(): Soft delete
- updateProcessingStatus(): For processing service
- validateCourseAccess(): Check permissions

Video Controller endpoints:
- POST /videos/upload-init (auth required)
- POST /videos/:id/complete (auth required)
- POST /videos/:id/abort (auth required)
- GET /videos/:id
- GET /courses/:courseId/videos
- GET /lessons/:lessonId/videos
- PATCH /videos/:id (auth required)
- DELETE /videos/:id (auth required)
- POST /videos/:id/processing-status (internal)

Features:
- Multipart upload support (5MB parts)
- Presigned URLs for client-side upload
- Upload progress tracking
- Validation (file size max 2GB, allowed types)
- Course access validation
- Soft delete support

Blocker: BLOCKER-003 (ST4.3 Video Upload Backend)
Epic: OQI-002

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 20:29:40 -06:00
src feat(education): Add video upload controller and service (ST4.3.3) 2026-01-26 20:29:40 -06:00
.env.example feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
.gitignore feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
Dockerfile feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
ENDPOINT-ROUTING.md docs(coherence): Add comprehensive endpoint routing documentation (E-COH-007, ST1.7) 2026-01-26 18:07:29 -06:00
eslint.config.js feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
jest.config.ts feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
package-lock.json feat: Complete notifications system with push support and tests 2026-01-25 03:56:34 -06:00
package.json feat: Complete notifications system with push support and tests 2026-01-25 03:56:34 -06:00
README.md feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
service.descriptor.yml feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
swagger.yml docs(api): Add comprehensive OpenAPI/Swagger documentation (ST2.3) 2026-01-26 18:18:39 -06:00
test-websocket.html feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
test-websocket.js feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
tsconfig.json feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
WEBSOCKET_IMPLEMENTATION_REPORT.md feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00
WEBSOCKET_TESTING.md feat: Initial commit - Trading Platform Backend 2026-01-18 04:28:47 -06:00

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 real
  • signals:update - Nuevas senales ML
  • orders: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