Gabriel-Oliveira25 / M.A.I.N---MAIL-SENDING-API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

M@AIN 3

M.@.I.N. - Mensagem Automatizada de Informações Novas

M@IN é uma aplicação que permite o envio de e-mails automatizados a partir de cadastros de usuários em um banco de dados;

Com o programa é possível criar, buscar, deletar e atualizar o cadastro de usuários, associando-os a endereços eletrônicos e um id, como também a uma organização;

Há também um repositório de mensagens que pode receber temas específios para elas, o qual também é possível gerenciar fazendo buscas por assuntos e registro (ID da mensagem).

Também é possível enviar emails utilizando mensagens pré-cadastradas e customizadas, para usuário de uma mesma organização e também por função do usuário.

Com uma ferramenta auxiliar, é possível confirmar o envio, retornando o status do email (enviado ou mensagem de erro).

Criado por:

  • Basílio Lima de Queiroz Santos;
  • Flávio Lins de Oliveira;
  • José Gabriel Coelho Oliveira;
  • Saulo Roberto Farias de Mesquita

Mentoria:

Ana Beatriz Cavalcanti Ribeiro

Trabalho de conclusão do curso NExT - Nova Experiência de Trabalho (sem fins comerciais)

O que é necessário para executar a aplicação localmente:

- OpenJDK 17.0.2 +;
- Maven 3.9.4 +;
- Uma ferramenta auxiliar para fazer REST requests. (Ex: Postman, Insomnia ou a dependência Swagger);
- Spring Boot 3.1.3 +;
- Um conector a banco de dados (JDBC) (JDBC Connector);
- Um endereço de Gmail para uso da aplicação e o envio dos emails.
OBS: É possível copiar o código direto para sua IDE.

Funcionalidades (CRUD) - Usuários:

Para executar a aplicação localmente, com o código aberto na sua IDE, primeiro você deverá ir em AplicationProperties e atualizar os dados de usuário (username=) e senha (password=), considerando seu banco de dados local de sua preferência (JBDC Connector) e atualizar o username (username=) e senha (password) do Gmail da aplicação.

Depois de executar a aplicação e conectado ao banco de dados na sua máquina, você precisará de uma ferramenta para fazer REST Requests. Todos os testes de funcionalidade do CRUD e do envio de e-mail deste projeto foram feitos usando o Postman ou Insomnia. O banco de dados recebe informações sobre usuários, com os parâmetros "name", "email", "organization" e "func".

Na feramenta para REST Request, utilize o seguinte formato:

{
"name": "JoãoMaria";
"email": "joaomaria@gmail.com";
"organization": "cesar";
"func": "Desenvolvedor";
}

Métodos CRUD: http://localhost:8080/api/v1/user - (uso local)

  • POST, para cadastrar usuários preenchendo os atributos acima;

  • GET, para buscar uma lista com todos os usuários cadastrados e todos os emails recebidos por cada usuário;

    EX:

{
    "id": "16c37-041",
    "name": "JoãoMaria",
    "email": "joaoMaria@gmail.com",
    "organization": "cesar",
    "func": "chefe",
    "emailsReceived": [
      {
        "id": "ae18-2b98",
        "sendFrom": "emailsendernext@gmail.com",
        "sendTo": "randomlocalmail@gmail.com",
        "subject": "É isso!",
        "text": "Será?",
        "dateSent": "2023-09-22T21:20:12.653367",
        "statusMail": SENT
      } ],
      { "registrationDate": "2023-09-22T10:07:53.209895"  },

  {
    "id": "8d272a37-4998-4e48-bf2b-25c0d73ca4d3",
    "name": "MariaJoão",
    "email": "mariajoao@cesar.org.br",
    "organization": "cesar",
    "func": "monitora",
    "emailsReceived": ...
  } 
    ... (etc.)

Colocando o número do ID do usuário no lugar do "id", você pode usar os seguintes métodos: GET, para buscar o usuário por ID; DELETE, para apagar o usuário identificado pelo ID; PUT, para atualizar dados do usuário identificado pelo ID.

É possível atualizar (PUT) o usuário modificando um ou mais dos atributos do mesmo: “email”, “name”, “organization” e “func”.

{
"name": "JoãoMaria";
"email": "joaomaria@gmail.com";
"organization": "cesar";
"func": "Analista";
}

Funcionalidades (CRUD) - Mensagens:

Há também uma forma de adicionar mensagens pré-formatadas na tabela, com os parâmetros "Subject" e "Text".

Utilize o seguinte formato:

{
"Subject": "Infrome de planejamento";
"Text": "Execução do panejamento confirmada.";
}

Métodos CRUD: http://localhost:8080/api/v1/message - (uso local)

  • POST, para cadastrar mensagens;
  • GET, para buscar uma lista com todas as mensagens cadastradas;

Colocando o número do ID do usuário depois do "id", você pode usar os seguintes métodos: GET, para buscar a mensagem pelo seu ID, DELETE, para apagar a mensagem pelo seu ID e PUT, para atualizar dados da mensagem pelo seu ID.

Também é possível fazer uma busca por assunto da menssagem com o método GET, substituindo "subject" na URL:

Funcionalidades (CRUD) - Enviando e-mails:

Para enviar e-mails com mensagem personalizada para usuário cadastrado no banco de dados, utilize o método POST:

{
"sendTo": "JoaoMaria@gmail.com",
"subject": "Aniversário",
"text": "Parabéns, João !!"
}

É possível enviar e-mails usando mensagens pré-cadastradas para usuários de uma mesma organização pelo método POST. Utilizar o ID da mensagem pré-cadastradas ("id) e o nome da organização ("organization"): Ex.:

Assim como também é possível enviar emails pelo método POST para usuários de uma mesma função ("function") utilizando o ID ("id") da mensagem:

Nossos contatos:

Basílio Queiroz:
Flávio Lins:
José Gabriel Coelho Oliveira:
Saulo Mesquita:

M@AIN 3

About


Languages

Language:Java 100.0%