trading-platform-backend-v2/README.md
rckrdmrd e45591a0ef feat: Initial commit - Trading Platform Backend
NestJS backend with:
- Authentication (JWT)
- WebSocket real-time support
- ML integration services
- Payments module
- User management

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 04:28:47 -06:00

166 lines
3.7 KiB
Markdown

# 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
```bash
# Instalar dependencias
npm install
# Copiar variables de entorno
cp .env.example .env
# Editar .env con credenciales
```
## Variables de Entorno
```env
# 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
```bash
# Ejecutar todos los tests
npm test
# Tests con coverage
npm run test:coverage
# Tests en modo watch
npm run test:watch
```
## Docker
```bash
# Build imagen
docker build -t trading-backend .
# Ejecutar contenedor
docker run -p 3000:3000 --env-file .env trading-backend
```
## Documentacion Relacionada
- [Documentacion de Modulos](../../docs/02-definicion-modulos/)
- [Inventario Backend](../../docs/90-transversal/inventarios/BACKEND_INVENTORY.yml)
- [Especificaciones API](../../docs/02-definicion-modulos/OQI-001-fundamentos-auth/)
---
**Proyecto:** Trading Platform
**Version:** 0.1.0
**Actualizado:** 2026-01-07