Skip to content

Latest commit

 

History

History
97 lines (66 loc) · 3.89 KB

README.md

File metadata and controls

97 lines (66 loc) · 3.89 KB

SkyDrinks API

SkyDrinksAPI é uma API construida para uma empresa fictícia(Sky Drinks), desenvolvida com Spring Boot.

GitHub top language GitHub language count Repository size GitHub last commit Repository issues

🔧 Como executar?

🔎 Requisitos:

  • Docker e docker-compose.
  • Java 11 ou superior.
  • Maven(opcional pois no projeto já vem um binário do mesmo).

👟 Passo a passo:

  1. Clone este repositório para sua máquina e abra o terminal já no diretório do projeto.
  2. Utilize o comando docker-compose up, para iniciar o container do MySQL.
  3. Utilize o comando ./mvnw clean package para gerar um .jar do projeto.
  4. Utilize o comando ./mvnw spring-boot:run para iniciar o servidor.
  5. Para o serviço de restauração de senhas funcionar, você deve configurar as credenciais corretamente:
./mvnw spring-boot:run -D spring-boot.run.arguments="--spring.mail.username=SEU_USERNAME --spring.mail.password=SUA_SENHA"

Pronto, caso tudo tenha ocorrido com sucesso, o projeto funcionará normalmente!

📎 Informaçõea adicionais:

  • Durante a geração do .jar, você pode escolher se quer executar todos os testes, os testes unitários, os testes de integração ou nenhum teste:
./mvnw clean package -P all-tests // Para executar todos os testes.
./mvnw clean package -P unit-tests // Para executar os testes unitários.
./mvnw clean package -P integration-tests // Para executar os testes de integração. 
./mvnw clean package -P skip-tests // Para não executar nenhum teste.
  • Caso precise mudar de banco de dados, você pode alterar a configuração do docker-compsose.yml

  • Caso a tabela de usuários esteja vazia, será gerado um usuário com acesso de admin padrão, ele servirá para você registrar novos usuários, caso deseje, você pode criar um novo usuário admin com ele, e então, apagá-lo.

{
  "email": "admin@mail.com",
  "password": "admin123",
  "name": "Admin",
  "role": "USER,BARMEN,WAITER,ADMIN",
  "cpf": "878.711.897-19",
  "birthAt": "2000-04-04"
}

Caso você precise de alguns dados de bebidas para testar, e não queria pensar em tudo, você pode pegar aqui.

🚀 Tecnologias

  • Spring Boot - Framework Java para criação de APIs REST.

  • Project Lombok - Biblioteca Java que ajuda a remover a verbosidade do nosso código usando anotações.

  • Map Struct - Framework Java para mapear DTOs.

  • JUnit5 - Framework Java para testes unitários.

  • H2 - Banco de dados em memória.

  • Postgres - Banco de dados relacional(usado aqui no ambiente de produção).

  • MySQL - Banco de dados relacional(usado aqui no ambiente de desenvolvimento).

  • Nimbus JOSE Biblioteca para uso de JSON Web Tokens.