Skip to content

jcmoro/code-challenger

Repository files navigation

Code Challenger API

Aplicación PHP 8 con Symfony, diseñada para optimizar reservas y calcular estadísticas.


📦 Requisitos

  • Docker ≥ 20.x
  • Docker Compose ≥ 2.x
  • Make ≥ 4.x

🐳 Instalación y Entorno de Desarrollo

  1. Construir la imagen Docker y dependencias:
make start
  1. Levantar los contenedores:
make docker-up
  1. Acceder al bash del contenedor (opcional):
make bash
  1. Detener contenedores:
make docker-down
  1. Reiniciar contenedores:
make docker-restart

🧪 Tests

Ejecutar todos los tests:

make test

Tests unitarios únicamente:

make test-unit

Tests de integración únicamente:

make test-integration

🔍 Calidad de Código

Verificar estilo de código:

make cs-check

Corregir estilo de código automáticamente:

make cs-fix

Ejecutar análisis estático con PHPStan:

make phpstan

Ejecutar Rector (dry-run):

make rector

Aplicar cambios con Rector:

make rector-fix

Pipeline completo de calidad:

make quality

Aplicar correcciones automáticas de calidad:

make quality-fix

🌐 API

La aplicación expone los siguientes endpoints:

Método Ruta Descripción
POST /stats Given a list of booking requests, return the average, minimum, and maximum profit per night taking into account all the booking requests in the payload. The concept “profit per night” follows this calculation:
POST /maximize Given a list of booking requests, return the best combination of requests that maximizes total profits.

Ejemplo usando curl:

make api-test-stats
make api-test-maximize
make api-test-complex

📖 Documentación Interactiva

Swagger UI

make api-docs

Accede a http://localhost:8081


🧹 Limpiar Cache y Archivos Temporales

make clean
make cache-clear

🚀 Pipeline CI

Instalar dependencias, ejecutar tests y chequear calidad de código:

make ci

About

Aplicación PHP 8 con Symfony

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published