Sistema de operaciones con matrices que incluye rotación y cálculo de estadísticas. Arquitectura basada en pnpm workspaces con APIs en Go y Node.js, y un frontend en React.
- Go 1.21+ con Fiber - API principal para la rotación de matrices
- Node.js 22+ con Express y TypeScript - API de estadísticas de matrices
- JWT - Autenticación y autorización
- React 18 con TypeScript
- Vite - Build tool y dev server
- Axios - Cliente HTTP
- Docker & Docker Compose - Containerización y orquestación
- pnpm - Gestión de dependencias (monorepo)
- Biome - Linter y formateador
challenge-talent-house/
├── apps/
│ ├── api-fiber/ # API Go (Fiber) - Puerto 3001
│ ├── api-express/ # API Express (Node.js + TypeScript) - Puerto 3000
│ └── frontend/ # Frontend React (Vite + TypeScript) - Puerto 5173
├── docker-compose.yml # Orquestación de servicios
└── package.json # Configuración del monorepo
Frontend (React)
↓
API Go (Fiber) ──→ API Express (Node.js)
↓ ↓
Rotación de Estadísticas
Matrices de Matrices
Flujo:
- Frontend consume solo la API Go
- API Go rota la matriz y llama internamente a API Express para estadísticas
- API Go retorna resultado completo al Frontend
- Docker >= 20.10
- Docker Compose >= 2.0
# Clonar el repositorio
git clone <https://github.com/bchipanav/Challenge-Talent-House.git>
cd challenge-talent-house
# Construir e iniciar todos los servicios
docker-compose up -d
# Detener servicios
docker-compose down- Frontend: http://localhost
- API Go: http://localhost:3001
- API Express: http://localhost:3000
Las variables de entorno están configuradas en docker-compose.yml. Para personalizar, edita el archivo o crea un .env:
JWT_SECRET=your-secret-key-change-in-production
JWT_EXPIRES_IN=24h
NODE_API_URL=http://api-express:3000/api- Node.js >= 22.0.0
- pnpm >= 8.0.0
- Go >= 1.21
# Instalar dependencias Node.js
pnpm install
# Instalar dependencias Go
cd apps/api-fiber && go mod download# Todas las aplicaciones
pnpm dev
# Servicios individuales
pnpm dev:api-fiber # API Go (puerto 3001)
pnpm dev:api-express # API Express (puerto 3000)
pnpm dev:frontend # Frontend (puerto 5173)# Todas las pruebas
pnpm test
# Por servicio
pnpm test:api-express
pnpm test:api-fiberPOST /auth/login- AutenticaciónPOST /matrices/rotate- Rotación de matrices (requiere JWT)GET /health- Health check
POST /api/auth/login- AutenticaciónPOST /api/matrices/statistics- Estadísticas de matrices (requiere JWT)GET /api/health- Health check
Credenciales por defecto:
- Usuario:
admin - Contraseña:
admin123
El sistema utiliza JWT almacenado en cookies httpOnly para mayor seguridad.
- API Express README - Documentación detallada de la API Express
- API Go README - Documentación detallada de la API Go
- Frontend README - Documentación del frontend
El proyecto incluye:
- ✅ Tests unitarios (Jest para Node.js, testing nativo para Go)
- ✅ Tests de integración
- ✅ Cobertura de código