Este proyecto simula un torneo de tenis con eliminación directa, donde los jugadores compiten en rondas sucesivas hasta que queda un único campeón. El sistema modela tanto torneos masculinos como femeninos, cada uno con sus características únicas.
- Eliminación directa: Los perdedores quedan inmediatamente eliminados, mientras que los ganadores avanzan a la siguiente fase.
- Torneos por género: Se pueden simular torneos masculinos y femeninos.
- Atributos de jugadores:
- Nombre
- Nivel de habilidad (0-100)
- Para hombres: fuerza y velocidad de desplazamiento
- Para mujeres: tiempo de reacción
- Cálculo de ganadores: Basado en habilidad y un factor de suerte.
- Simulación completa: A partir de una lista de jugadores, se simula el torneo completo hasta determinar un ganador.
- Docker Desktop instalado y en ejecución
- Node.js y npm (para scripts de gestión del proyecto)
-
Clonar el repositorio:
git clone https://github.com/SergioRodas/tennis-tournament.git cd tennis-tournament
-
Instalar dependencias del proyecto:
cd frontend && npm install && cd ..
-
Configurar y construir los contenedores Docker:
docker-compose up -d --build
-
Ejecutar las migraciones de la base de datos:
docker-compose exec backend php bin/console doctrine:migrations:migrate -n
-
Configurar la base de datos de prueba (necesario para los tests de integración):
docker-compose exec backend php bin/console doctrine:database:drop --force --env=test docker-compose exec backend php bin/console doctrine:database:create --env=test docker-compose exec backend php bin/console doctrine:schema:create --env=test
Para ejecutar los tests, use los siguientes comandos:
-
Todos los tests:
docker-compose exec backend ./vendor/bin/phpunit --testsuite All
-
Tests unitarios:
docker-compose exec backend ./vendor/bin/phpunit --testsuite Unit
-
Tests de integración:
docker-compose exec backend ./vendor/bin/phpunit --testsuite Integration
Para información más detallada sobre componentes específicos del proyecto, consulte:
Este proyecto utiliza Conventional Commits para el formato de los mensajes de commit, lo que facilita la generación automática de changelogs y la comprensión del historial del proyecto.
Este proyecto está bajo la licencia MIT.
- Frontend: https://tennis-tournament-nine.vercel.app/
- Backend: https://tennis-tournament-zo6j.onrender.com/
- Documentación de la API: https://tennis-tournament-zo6j.onrender.com/api/doc