Skip to content

bchipanav/Challenge-Talent-House

Repository files navigation

Challenge Talent House - Matrix Operations API

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.

🚀 Tecnologías

Backend

  • 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

Frontend

  • React 18 con TypeScript
  • Vite - Build tool y dev server
  • Axios - Cliente HTTP

DevOps & Tools

  • Docker & Docker Compose - Containerización y orquestación
  • pnpm - Gestión de dependencias (monorepo)
  • Biome - Linter y formateador

📁 Estructura del Proyecto

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

🏗️ Arquitectura

Frontend (React)
    ↓
API Go (Fiber) ──→ API Express (Node.js)
    ↓                    ↓
Rotación de          Estadísticas
Matrices             de Matrices

Flujo:

  1. Frontend consume solo la API Go
  2. API Go rota la matriz y llama internamente a API Express para estadísticas
  3. API Go retorna resultado completo al Frontend

🐳 Despliegue con Docker

Requisitos

  • Docker >= 20.10
  • Docker Compose >= 2.0

Inicio Rápido

# 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

Servicios Disponibles

Variables de Entorno

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

💻 Desarrollo Local

Requisitos

  • Node.js >= 22.0.0
  • pnpm >= 8.0.0
  • Go >= 1.21

Instalación

# Instalar dependencias Node.js
pnpm install

# Instalar dependencias Go
cd apps/api-fiber && go mod download

Ejecutar en Desarrollo

# 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)

Testing

# Todas las pruebas
pnpm test

# Por servicio
pnpm test:api-express
pnpm test:api-fiber

📡 Endpoints Principales

API Go (Fiber)

  • POST /auth/login - Autenticación
  • POST /matrices/rotate - Rotación de matrices (requiere JWT)
  • GET /health - Health check

API Express

  • POST /api/auth/login - Autenticación
  • POST /api/matrices/statistics - Estadísticas de matrices (requiere JWT)
  • GET /api/health - Health check

🔐 Autenticación

Credenciales por defecto:

  • Usuario: admin
  • Contraseña: admin123

El sistema utiliza JWT almacenado en cookies httpOnly para mayor seguridad.

📚 Documentación Adicional

🧪 Testing

El proyecto incluye:

  • ✅ Tests unitarios (Jest para Node.js, testing nativo para Go)
  • ✅ Tests de integración
  • ✅ Cobertura de código

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors