Este projeto consiste em uma aplicação desenvolvida usando Angular para o frontend e Spring Boot para o backend. A aplicação permite trabalhar com o cadastro de jogadores e divisão de times a partir dos jogadores cadastrados.
Adicionar jogadores
Visualizar jogadores cadastrados
Excluir todos os jogadores
Gerar times com os jogadores cadastrados
-
Certifique-se de ter o JDK (Java Development Kit) instalado em sua máquina.
-
Abra o projeto na sua IDE preferida (por exemplo, IntelliJ IDEA, Eclipse).
-
Execute o aplicativo Spring Boot. Isso iniciará o servidor backend.
O backend estará disponível em http://localhost:8080.
Adiciona um novo jogador com o nome fornecido.
{
"nome": "Nome Sobrenome"
}
Status:200 OK
{}
O endpoint POST /jogador recebe um objeto com o nome do jogador. Esse jogador é adicionado à lista de jogadores existente.
Retorna a lista de todos os jogadores.
Status:200 OK
[
{ "nome": "Nome Sobrenome" },
{ "nome": "Nome Sobrenome" },
...
]
O endpoint GET /jogador retorna todos os jogadores atualmente armazenados no sistema.
Organiza os jogadores em times com base na primeira letra do sobrenome.
Status:200 OK Um objeto onde as chaves são os nomes dos times e os valores são listas de jogadores.
{
"time": ["Nome Sobrenome", "Nome Sobrenome", "Nome Sobrenome"],
"time": ["Nome Sobrenome", "Nome Sobrenome", "Nome Sobrenome"],
...
}
O endpoint GET /times organiza os jogadores em times, seguindo as regras requisitadas. Ele agrupa os jogadores com base na primeira letra do sobrenome e garante que cada time tenha apenas um jogador com o mesmo sobrenome em cada time.
Apaga todos os jogadores.
Status:200 OK Um objeto onde as chaves são os nomes dos times e os valores são listas de jogadores.
{}
O endpoint DELETE /jogador/all remove todos os jogadores armazenados, limpando a lista de jogadores existente.
src
├── main
│ ├── java
│ │ └── com
│ │ └── airel
│ │ └── jogadoresetimes
│ │ ├── controllers
│ │ │ ├── JogadorController.java
│ │ │ └── TimeController.java
│ │ ├── entities
│ │ │ ├── Jogador.java
│ │ │ └── Time.java
│ │ ├── JogadoresetimesApplication.java
│ │ ├── repositories
│ │ │ └── JogadorRepository.java
│ │ └── services
│ │ ├── JogadorService.java
│ │ └── TimeService.java
│ └── resources
│ ├── application.properties
│ ├── static
│ └── templates
└── test
└── java
└── com
└── airel
└── jogadoresetimes
└── AceitacaoTest.java
-
Certifique-se de ter o Node.js e o Angular CLI instalados em sua máquina.
-
Navegue até a pasta frontend do projeto.
-
Instale as dependências do projeto executando o seguinte comando:
npm install
Inicie o servidor de desenvolvimento com o seguinte comando:
ng serve
O frontend estará disponível em http://localhost:4200.
src
├── app
│ ├── app.component.html
│ ├── app.component.scss
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ ├── app.module.ts
│ ├── app-routing.module.ts
│ ├── header
│ │ ├── header.component.html
│ │ ├── header.component.scss
│ │ ├── header.component.spec.ts
│ │ └── header.component.ts
│ └── jogador
│ ├── jogador.component.html
│ ├── jogador.component.scss
│ ├── jogador.component.spec.ts
│ ├── jogador.component.ts
│ ├── jogador.service.ts
│ ├── jogador.ts
│ └── time.ts
├── assets
├── favicon.ico
├── index.html
├── main.ts
└── styles.scss
É importante que você siga esta ordem, pois o frontend interage com o backend, de forma que você não poderá usufruir de suas funcionalidades de outra forma.
- Usando GitHub CLI
gh repo clone AirelRibeiro/desafio_api_spring
- Usando o Git
git clone git@github.com:AirelRibeiro/desafio_api_spring.git
- Vá para o diretório do back
cd jogadoresetimes_spring
- Execute o comando para rodar a API
mvn spring-boot:run
Para acessar o backend use a url http://localhost:8080 (use uma interface gráfica, como Postman, ou o terminal, com o curl
)
- Vá para o diretório do front
cd jogadoresetimes_angular
- Instale as dependências
npm install
- Execute o comando para rodar a aplicação
npm start
Para acessar o frontend use a url http://localhost:4200.
Esta aplicação é minha primeira API Spring Boot e primeira aplicação Angular; trata-se de um desafio, mas també um projeto de aprendizado. Dessa forma, sinta-se a vontade para clonar e testar na sua máquina. Contribuições e sugestões sobre como melhorar são muito bem vindas.