workspace/projects/gamilit/apps/backend
rckrdmrd 49155822ae fix: Resolve TypeScript compilation errors across all projects
Platform Marketing Content:
- Add PaginationParams, PaginationMeta, PaginatedResponse interfaces
- Fix JwtAuthGuard import paths (common/guards instead of modules/auth)
- Add missing fields to CRM interfaces (address, keywords, features, benefits)
- Install @nestjs/throttler dependency

ERP Suite - Construccion:
- Create tsconfig.node.json for web frontend
- Add vite-env.d.ts for Vite types
- Fix implicit return errors in Express controllers
- Prefix unused parameters with underscore

ERP Suite - ERP Core:
- Export PoolClient type from database config
- Fix invoice type comparison (customer/supplier vs out_invoice)
- Refactor base.service.ts query handling for proper type inference
- Rename Role type to RoleType to avoid conflict with entity
- Fix ProtectedRoute to use role?.name instead of roles array

ERP Suite - POS Micro:
- Add vite-env.d.ts for Vite types
- Fix Sale property names (discountAmount, changeAmount)
- Export TodaySummary interface from sales service

All projects now pass npm install and npm run build successfully.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 22:35:55 -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 fix: Resolve TypeScript compilation errors across all projects 2025-12-08 22:35:55 -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 feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -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 feat: Initial workspace structure with multi-level Git configuration 2025-12-08 10:44:23 -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: Supabase Auth + 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)