Por conta do coronavírus, os principais campeonatos de futebol estão paralisados. Minha agência de apostas tem sofrido com a queda de faturamento. Pensando nisso, elaboramos um fantasy game, onde os apostadores escolhem times, e esses times se enfrentam em uma partida em que o resultado é imprevisível. Pensando nisso, você precisa criar uma API onde é possível gerenciar os times cadastrados (Cadastrar, Editar, Remover, Visualizar) e realizar campeonatos. Nesses campeonatos todos os times cadastrados se enfrentam, você deve gerar um placar randomizado para cada partida. Para cada campeonato, você deve informar o campeão, o vice-campeão e o terceiro colocado. O campeão será aquele com o maior número de pontos.
Os nomes dos times devem ter ao menos 3 caracteres, e não devem existir times com nomes iguais.
Pontuação das partidas:
- Derrota = 0
- Empate = 1
- Ganhador = 3
Exemplos de endpoints que entregariam os requisitos :
POST /api/Time
body:
{
"nome": "Sydy"
}
PUT /api/Time/{id}
body:
{
"nome": "Sydy Editado"
}
DELETE /api/Time/{id}
GET /api/Time/{id}
Resposta:
{
"id": "1",
"nome": "Sydy Editado"
}
GET /api/Time
params: pagina:1 tamanhoPagina: 10
Resposta:
{
"pagina": 1,
"tamanhoPagina": 10,
"qtdPagina": 3,
"itens": [
{
"id": "1",
"nome": "Sydy Editado"
}
]
}
GET /api/Campeonato
{
"partidas": [
{
"times": "Time 01 x Time 02",
"resultado": "1 x 0"
},
{
"times": "Time 01 x Time 03",
"resultado": "1 x 1"
},
{
"times": "Time 01 x Time 04",
"resultado": "3 x 1"
},
{
"times": "Time 02 x Time 03",
"resultado": "1 x 5"
},
{
"times": "Time 02 x Time 04",
"resultado": "3 x 1"
},
{
"times": "Time 03 x Time 04",
"resultado": "1 x 4"
}
],
"campeao": "Time 01",
"vice": "Time 03",
"terceiro": "Time 02"
}
Diferenciais (não elimanatórios):
- Use ASP.NET Core 3.1 WebAPI
- Use EntityFramework Core
- Use CodeFirst
- Use o banco de dados SQL Server (pode ser local)
O que nós avaliaremos:
- Boa utilização de Orientação à Objetos
- Boa estrutura de pasta e arquivos
- Capacidade de escrever código coeso e legível
Você é livre para utilizar a biblioteca que desejar, adicionar/alterar funcionalidades, e etc.
"A criatividade são as asas do homem" (Oliveira, Oliveira, Gonçalves, Silva, Silva, Monet e Procopiou; 2020)
Você tem 7 dias para a conclusão do teste. Se concluir antes sinta-se a vontade para enviar antes desse prazo.
Você deve enviar o link do seu repositório público para o mecontrata@sydy.com.br.