Projeto para o Bootcamp da ADA e Avanade.
Este projeto foi desenvolvido como parte do Bootcamp da ADA e Avanade, com o objetivo de criar uma API REST em Java com Spring Boot, integrada a um banco de dados Postgres, que oferecesse aos usuários a experiência de jogar RPG contra um sistema controlado por computador.
O foco do jogo são as batalhas contra os monstros e a possibilidade de criar novos personagens.
Foram desenvolvidos endpoints para realizar operações de CRUD em diversas áreas cruciais do jogo, incluindo:
- Gerenciamento de personagens do jogador.
- Criação e edição de personagens (Heróis e Monstros).
- Sistema de Batalhas com turnos e rolagens de dados.
- Registro de batalhas.
Ele foi desenvolvido seguindo os conceitos de tecnologia ágeis, fiz um controle por scrumban com o Trello para focar nos requisitos pedidos na documentação.
Procurei seguir e praticar ao máximo os princípios de SOLID e Clean Code que foram abordados no bootcamp.
- Java 17
- Spring Boot
- Postgres
- Docker
- Swagger
A estrutura de dados do projeto foi cuidadosamente projetada para garantir a eficiência e a integridade das informações.
O fluxo do jogo foi mapeado para oferecer uma visão geral do funcionamento do sistema.
Como funciona o fluxo do jogo:
- O usuário cria um personagem ou escolhe um personagem existente.
- O usuário cria uma batalha com o personagem escolhido, caso ele queira ele pode escolher um monstro como inimigo, se não escolher o sistema irá sortear um.
- Com a batalha criada o jogador precisa fazer o teste de iniciativa, ele vai determinar quem ataca primeiro.
- Se o jogador ganhar ele pode realizar o ataque, e se acertar ele deve calcular o dano causado.
- Se perder ele devera realizar uma defesa, se o monstro acertar ele o monstro vai realizar um ataque.
- Caso alguem fique com vida igual ou menor que 0 a batalha acaba e o vencedor é declarado.
- Se os dois continuam vivos, o turno acaba e o processo se repete.
- Clone o repositório
- Caso tenha o docker instalado rode o comando
docker-compose up -d
na raiz do projeto para subir o banco de dados Postgres na porta 5432 e uma imagem docker do backend na porta 9080.
O banco será populado com os personagens iniciais.
Caso não tenha o docker instalado, pode rodar o banco de dados localmente e alterar as configurações de conexão no arquivo
application.properties
na pastasrc/main/resources
.
Mas existem muitas maneiras de rodar o Spring Boot.
O projeto pode ser rodado pelo Maven usando os comandos:
mvn clean install
para instalar as dependências e gerar o pacote.mvn spring-boot:run
para rodar o projeto
Ou caso prefira pode ser rodado como jar.
mvn clean install
para instalar as dependências e gerar o pacote.- E se tiver o java na máquina pode tentar com o comando:
java -jar /target/adnd-0.0.1-SNAPSHOT.jar
Atualmente o projeto está configurado para rodar em ambiente de desenvolvimento.
O swagger foi utilizado para documentar a API e pode ser acessado em http://localhost:9080/swagger-ui/index.html
A collection de Postman utilizada está disponivel em: https://www.postman.com/blue-shadow-247287/workspace/ada-avanade/collection/16884809-5cf7fdae-5b4f-400e-9566-3e98715c0e38?action=share&creator=16884809