Skip to content

SkyDrinksAPI é uma API para uma empresa fictícia de bebidas, desenvolvida com Spring Boot.

Notifications You must be signed in to change notification settings

SilvanoGPM/sky-drinks-api

Repository files navigation

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.