workspace/projects/gamilit/apps/backend
rckrdmrd 608e1e2a2e
Some checks are pending
CI Pipeline / changes (push) Waiting to run
CI Pipeline / core (push) Blocked by required conditions
CI Pipeline / trading-backend (push) Blocked by required conditions
CI Pipeline / trading-data-service (push) Blocked by required conditions
CI Pipeline / trading-frontend (push) Blocked by required conditions
CI Pipeline / erp-core (push) Blocked by required conditions
CI Pipeline / erp-mecanicas (push) Blocked by required conditions
CI Pipeline / gamilit-backend (push) Blocked by required conditions
CI Pipeline / gamilit-frontend (push) Blocked by required conditions
Multi-project update: gamilit, orchestration, trading-platform
Gamilit:
- Backend: Teacher services, assignments, gamification, exercise submissions
- Frontend: Admin/Teacher/Student portals, module 4-5 mechanics, monitoring
- Database: DDL functions, seeds for dev/prod, auth/gamification schemas
- Docs: Architecture, features, guides cleanup and reorganization

Core/Orchestration:
- New workspace directives index
- Documentation directive

Trading-platform:
- Database seeds and inventory updates
- Tech leader validation report

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 07:17:46 -06:00
..
_deprecated/migrations-maya-rank-2025-11-29 feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
docs feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
migrations feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
scripts feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
src Multi-project update: gamilit, orchestration, trading-platform 2025-12-18 07:17:46 -06:00
uploads/exercises feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
_MAP.md feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
.env.vault feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
.gitignore feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
.prettierrc feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
ADMIN-TESTS-REPORT.md feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
eslint.config.js fix: Resolve TypeScript compilation errors across all projects 2025-12-08 22:35:55 -06:00
jest.config.js Major update: orchestration system, catalog references, and multi-project enhancements 2025-12-12 22:53:55 -06:00
limpiar-referencias.sh feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
nest-cli.json feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
NOTIF-001-EMAIL-INTEGRATION.md feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
package-lock.json feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
package.json fix: Resolve TypeScript compilation errors across all projects 2025-12-08 22:35:55 -06:00
README.md Multi-project update: gamilit, orchestration, trading-platform 2025-12-18 07:17:46 -06:00
TEST_STRUCTURE_SUMMARY.md Major update: orchestration system, catalog references, and multi-project enhancements 2025-12-12 22:53:55 -06:00
test-admin-module.sh feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
test-classroom-progress-endpoint.sh feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
test-datasource-fix.ts feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
test-intervention-alerts.sh feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
test-teacher-content-endpoints.sh feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
TESTS-SUMMARY.txt feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
tsconfig.json feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00
tsconfig.paths.json feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -06:00

GAMILIT Backend

Backend para la plataforma educativa gamificada GAMILIT.

Stack Técnico

  • Runtime: Node.js 18+
  • Framework: NestJS 11.1.8
  • Language: TypeScript 5.x (strict mode)
  • ORM: TypeORM 0.3.x (multi-datasource architecture)
  • Database: PostgreSQL 14+ (multi-schema: 11 schemas)
  • Auth: Custom Auth (patrón compatible con estándares de la industria) + JWT
  • Validation: class-validator + class-transformer
  • Testing: Jest
  • Linting: ESLint + Prettier

Estructura

src/
├── shared/                  # Código compartido
│   ├── constants/          # Constantes (database.constants.ts, routes.constants.ts)
│   ├── database/           # TypeORM data sources (6 conexiones)
│   ├── decorators/         # Decoradores custom
│   ├── guards/             # Guards de autenticación/autorización
│   ├── interceptors/       # Interceptors de NestJS
│   └── types/              # TypeScript types compartidos
├── modules/                # Módulos de negocio (15 módulos)
│   ├── auth/               # Autenticación y autorización
│   ├── educational/        # Contenido educativo y ejercicios
│   ├── gamification/       # Sistema de gamificación
│   ├── progress/           # Tracking de progreso
│   ├── admin/              # Dashboard administrativo
│   ├── assignments/        # Sistema de asignaciones
│   ├── social/             # Features sociales (classrooms, teams, friendships)
│   ├── content/            # Gestión de contenido
│   ├── notifications/      # Notificaciones multi-canal
│   └── ...                 # Otros módulos
└── main.ts                 # Entry point NestJS

Arquitectura Multi-Datasource

El backend usa 6 conexiones TypeORM separadas para manejar la arquitectura multi-schema de PostgreSQL:

  • auth → schemas: auth, auth_management
  • educational → schema: educational_content
  • progress → schema: progress_tracking
  • social → schema: social_features
  • gamification → schema: gamification_system
  • content → schema: content_management

⚠️ Limitación importante: TypeORM NO soporta relaciones (@ManyToOne, @OneToMany, @OneToOne) entre entidades de diferentes data sources. Se deben usar UUIDs y hacer joins manuales en los services.

Ver documentación completa en: docs/90-transversal/inventarios/BACKEND_INVENTORY.yml (sección multi_datasource_architecture)

Scripts

npm run dev         # Desarrollo con hot reload (NestJS watch mode)
npm run build       # Build producción (TypeScript compilation)
npm run start       # Iniciar producción (dist/main.js)
npm run prod        # Producción con NODE_ENV=production
npm test            # Ejecutar tests (Jest)
npm run test:cov    # Tests con coverage
npm run lint        # Linter (ESLint)
npm run format      # Formatear código (Prettier)

Path Aliases (tsconfig.json)

  • @shared/*src/shared/*
  • @modules/*src/modules/*

Ejemplos:

import { DB_TABLES } from '@shared/constants/database.constants';
import { AuthService } from '@modules/auth/auth.service';

Endpoints API

  • Base URL: http://localhost:3006
  • Global Prefix: /api
  • Swagger Docs: http://localhost:3006/api/docs

Ejemplos:

  • POST /api/auth/login - Autenticación
  • GET /api/educational/modules - Listar módulos educativos
  • GET /api/educational/exercises - Listar ejercicios
  • GET /api/gamification/achievements - Achievements del usuario

Coverage Objetivo

  • Meta: ≥70% en branches, functions, lines, statements
  • Actual: ~30% (necesita mejora urgente)
  • Tests: 11 archivos de test actualmente

Ver más detalles en: docs/90-transversal/inventarios/BACKEND_INVENTORY.yml

Documentación Adicional

  • Inventario completo: docs/90-transversal/inventarios/BACKEND_INVENTORY.yml
  • Guía multi-datasource: Ver sección multi_datasource_architecture en inventario
  • Usuarios de prueba: apps/database/docs/GUIA-CARGA-USUARIOS-Y-PERFILES.md
  • Swagger API: http://localhost:3006/api/docs (cuando el servidor esté corriendo)