Skip to content

Cadulox/luizalabs-communication-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java SpringBoot MIT license

Build Status Coverage Status

Communication API

API desenvolvida com Spring Boot para agendamento de envio de mensagens e persistência dos dados em banco de dados MySQL.

  • Tipos de mensagens permitidas para agendamento:
    • EMAIL
    • SMS
    • PUSH
    • WHATSAPP

Pré-requisitos ❗

Como rodar os testes

  • Via linha de comando, navegue até o diretório raiz da aplicação e execute o comando abaixo:
$ mvnw clean test

Como rodar a aplicação ▶️

  • Faça o download do projeto ZIP e extraia os arquivos no diretório de sua preferência, ou se preferir clone o projeto com o comando $ git clone https://github.com/Cadulox/luizalabs-communication-api.git

  • Via linha de comando, navegue até o diretório raiz da aplicação e execute o comando abaixo para criar o jar do projeto:

$ mvnw clean package -DskipTests
  • O arquivo é gerado no diretório target, vá para o diretório com o comando $ cd target/ e execute o comando abaixo:
$ java -jar luizalabs-communication-api-0.0.1-SNAPSHOT.jar

⚠️ É necessário ter o banco de dados MySQL instalado e rodando na porta padrão 3306, caso contrário a aplicação falhará ao tentar iniciar.

⚠️ A aplicação roda na porta padrão 8080 do Spring Boot.

Como rodar a aplicação via Docker 🐳

  • Caso queira rodar toda aplicação via Docker, navegue através da linha de comando até o diretório raiz da aplicação e execute o comando abaixo:
$ docker-compose up
  • Será feito o download da imagem da aplicação Communication API, do banco de dados MySQL 5.6, criado os contêineres e aplicação estará rodando perfeitamente.

⚠️ A aplicação é exposta na porta padrão 8080 do Spring Boot e o banco de dados na porta padrã 3306 do MySQL.

Recursos disponíveis da aplicação

Recurso Verbo HTTP Path
Agendar mensagem POST communication-api/schedules
Consultar agendamento GET communication-api/schedules/{id}
Cancelar agendamento PATCH communication-api/schedules/{id}
  • É possível verificar o comportamento dos recursos utilizando Postman, Insomnia ou através da documentação da API no link abaixo:

OpenAPI Doc - http://localhost:8080/swagger-ui.html

Tecnologias utilizadas 📚

  • Java 11 - como linguagem
  • Spring Boot - como framework para criação da API
  • Lombok - para redução de código boilerplate
  • JavaMail API - para a verificação de emails válidos
  • JUnit5 - como framework para testes unitários
  • AssertJ - biblioteca que fornece um rico conjunto de Assertions
  • Mockito - para instanciar classes e controlar o comportamento dos métodos
  • MySQL - como banco de dados
  • Hibernate - para o mapeamento objeto-relacional
  • Spring Data JPA - para facilitar a persistência de dados
  • OpenAPI 3 - para a geração de documentação
  • Docker - para a conteinerização do banco de dados e da aplicação
  • Jib - para facilitar a criação de imagens docker

Desenvolvedores/Contribuintes :octocat:

Carlos Eduardo

Carlos Eduardo

Licença

O Projeto Communication API está licenciado sob a licença The MIT License.