Desafio de Mensageria em Microserviço

É de suma importancia que você leia até o final antes de começar a fazer o desafio


Bem-Vindo pequeno Padawan ao nosso desafio

Aqui seus conhecimentos serão testados! Sua capacidade de lidar com problemas será testada! Sua força Jedi será testada! Então preparece, e se caso não estiver pronto... Bom, volte em outro momento, estaremos aguardando sua chegada. Que a Força esteja com você.


Não nos conhece?

Somos uma equipe de desenvolvedores e lidamos com os mais diversos tipos de desafios todos os dias como este pequeno teste, e precisamos de novos aliados para nos ajudar com a resistencia contra o lado sombrio, caso esteja apto, você terá um grupo de Jedis habilidosos ao seu lado para ajudar em sua jornada, e talvez um dia você olhe para trás e veja o quão tranquilo foi essa batalha.

Não há mais tempo, se você chegou até aqui, precisamos de novos combatentes!


Regras

Regras de Setup

  • Padrão da API deve ser Restful (utilizando json);
  • Faça a API na sua Stack de preferencia (acordado na entrevista);
  • Utilize o MongoDB ou Postgres como banco de dados da aplicação;

Requisitos Funcionais

  • A aplicação deve ser capaz de receber uma key de integração;
  • A aplicação deve ser capaz de validar a existência da key internamente;
  • A aplicação deve ser capaz de receber requisições apenas de servidores permitidos (host e/ou ip);
  • A aplicação deve ser capaz de receber via api um conteúdo HTML que será enviado no email;
  • A aplicação deve ser capaz de disparar emails para os destinos informados;
  • A aplicação deve ser capaz de receber multiplos destinatários e enviar os emails;
  • A aplicação deve retornar um array com os email enviados com sucesso e os com erro;

Requisitos não-funcionais

  • Use o Mailgun para disparar os emails;
  • Use o banco MongoDB ou Postgres (se julgar necessário);
  • A API deve seguir uma estrutura escalável, pensando em uma estrutura de menssageria onde no futuro poderão ser adicionadas outros métodos de envio tais como push notification e sms;
  • Utilizar variáveis de ambiente (Environment), sem estar hardcoded (digitado no meio codigo). O ideal é utilizar variáveis de ambiente ou arquivos de configuração;

Regras de Documentação

  • Com tudo feito, gere uma documentação com ApiDoc, Swagger, Apiary ou Postman, com todos os endpoints da sua api, com payload e response (Tanto de sucesso quanto de erro).

Extras

Os itens extras não são obrigatórios, e não afetam sua avaliação caso não seja feito.

Serão considerados extras:

  • Código bem documentado;
  • Documentação gerada no codigo da API, por ex com ApiDoc;
  • Código com funções e variáveis em ingles (PS: Documentação pode ser em portugues ou ingles);

🚀 Para a entrega do seu desafio.

  • Faça um fork deste projeto em sua conta no Github.
  • Crie um repositório privado, com a solução do seu desafio.
  • Em seguida, desenvolva o projeto.
  • Adicione como membros do repositório @danielneris, @bruno, @vcteduardo e @luoldrigues.
  • Por fim, envie um email informando que concluiu o desafio p/ vagas@liveonsolutions.com. (coloque no assunto o nome do desafio)

Muito obrigado Padawan por fazer parte da nossa equipe, agredecemos a sua participação, e que a força estejá com você


https://www.liveonbaas.com/