Modela un torneo de pádel con interfaces y composición en C#
Visión general
De qué trata este proyecto.
Diseña en C# (.NET 8) un dominio de torneo con: interfaces IFormato, IReglaDesempate, IModoEmparejamiento; entidades Jugador, Pareja, Partido, Torneo. Aplica composición — un Torneo recibe sus tres interfaces en el constructor. Implementa al menos 2 formatos (eliminación + todos contra todos), 2 reglas de desempate y 2 modos. Construye una CLI que cree torneos, registre resultados, genere brackets y produzca clasificación final. Tests con xUnit cubriendo combinaciones críticas. Entrega: solución .NET, CLI ejecutable cross-platform, suite de tests, documento de diseño (5 páginas) y video demo (6 minutos).
El Briefing
Lo que harás y lo que demostrarás.
Modelar un torneo de pádel multiformato en C# usando interfaces y composición, sin caer en herencia profunda, listo como CLI para 40 clubes.
Earning criteria — what you'll demonstrate
- Preferir composición sobre herencia en problemas de variantes ortogonales
- Diseñar interfaces estables y reglas de sustitución claras
- Implementar una CLI en .NET con dependencias inyectables
- Escribir tests que cubran combinaciones de variantes sin explosión combinatoria
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosSoftware Engineer
Diseñar dominio C# con interfaces y composición es la habilidad que distingue al junior .NET que entiende OO del que solo escribe clases por nombre.
Este proyecto afina
- csharp
- interfaces
- composition
Backend Engineer
El backend engineer .NET sénior diferencia su carrera por elegir composición cuando los ejes varían independientemente — este reto entrega el portfolio.
Este proyecto afina
- csharp
- object-oriented-design
- composition