Skip to content

O Projeto Comnunication e destinado a receber cadastro de mensagens a serem enviadas aos seus destinatários (email, sms, push, e whatsap))

Notifications You must be signed in to change notification settings

maurigre/labs-communication-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Labs Communication API

E um projeto de plataforma de comunicação de mensagens. Tem como finalidade de cadastrar mensagens a serem enviadas, consultar status da mensagem cadastrada e excluir uma mensagem agendada.

Tecnologias

  • Spring boot - Framework de desenvolvimento Java.
  • Spring Hateoas - Hipermídia como o motor do estado do aplicativo
  • Lombok - Biblioteca java que auxilia como ferramentas de construção.
  • MySQL - Banco de dados relacional.
  • JPA/Hibernate - Framework para persistência de dados / ORM.
  • Flyway - Controle de versão para banco de dados
  • H2 Database Engine - Banco de dados executado em memória, utilizado nos testes.
  • RabbitMQ - RabbitMQ é o broker de mensagens de código aberto mais amplamente implantado.
  • Swagger - Framework para projetar, construir, documentar e usar serviços da Web RESTful.
  • Docker - Plataforma de virtualização

Detalhes importantes

É necessário ter instalado na sua máquina os seguintes programas:

  • A aplicação foi desenvolvida no java-jdk13.
  • Motor de build da aplicação e atraves do Mavem.
  • Aplicação de containers, neste projeto é o Docker, caso ele não esteja instalado, siga o tutorial do próprio site: Get Docker.

Informações de como o projeto pode ser executado

Primeiro passo e criar um clone deste repositorio com o comando:

git clone https://github.com/maurigre/labs-communication-api.git

Segundo passo e acessar o diretorio do projeto, com o comando:

cd ./labs-communication-api/

Terceiro passo, criar variáveis de ambiente. Neste projeto será necessário criar as seguintes variaveis:

  • MGR_MYSQL_DATABASE - Variável destinada para conter o nome do DATABASE
  • MGR_MYSQL_ROOT_PASSWORD - Destinada a conter o password de root do MySQL
  • MGR_MYSQL_USER - Destinada a conter seu username do MySQL
  • MGR_MYSQL_PASSWORD - Destinada a conter sua senha de usuário do MySQL

Observações:
-Você pode criar um arquivo .env no diretório raiz do projeto e incluir estas variáveis neste arquivo.

Exemplo:

 MGR_MYSQL_DATABASE=labs_communication_db
 MGR_MYSQL_ROOT_PASSWORD=123456
 MGR_MYSQL_USER=labs
 MGR_MYSQL_PASSWORD=123456

Quarto passo e realizar o build do projeto com o comando:

./mvnw clean compile package

Quinto passo e realizar o build do docker da API com o comando:

docker-compose build

Sexto passo e subir os containers de docker do MySql, RabbitMq e da API com o comando:

docker-compose up -d

Observações:
O projeto possui 3 profile são eles:

  • prod - Profile de produção que ira rodar na porta: 8080 e irá utilizar o banco MySQL.
  • dev - Profile de desenvolvimento que ira rodar na porta: 8081 e irá utilizar o banco H2 (Banco em memória).
  • test - Profile de test que ira rodar na porta: 8082 e irá utilizar o banco H2 (Banco em memória).

Api documentada com Swagger

Todas as informações referente ao endpoits da API estão detalhadas no swagger. Atraves da URL: Producao, Desenvolvimento

Endpoints da API

São:

É possível consulta-los pelo endpoint da documentação via Swagger.

License

Apache License 2.0

About

O Projeto Comnunication e destinado a receber cadastro de mensagens a serem enviadas aos seus destinatários (email, sms, push, e whatsap))

Resources

Stars

Watchers

Forks

Packages

No packages published