Desafio Back end Brisalabs šŸ’»

  • O desafio consiste no desenvolvimento de uma API REST utilizando as tecnologias listadas abaixo.
  • Caso nĆ£o termine desenvolver todo o desafio, envia o que conseguir que nĆ³s avaliaremos com muito prazer.
  • Crie um repositĆ³rio pĆŗblico no GitHub e envie o link para o e-mail vanericadias@grupobrisanet.com.br com assunto Desafio Back end Brisalabs.

Tecnologias šŸš€

Sobre o desafio šŸ“Œ

  • O desafio consiste em desenvolver uma API REST para o sistema de transaƧƵes do BrisaPIX.

  • BĆ”sico

    • Requisitos
      • O sistema deve ser capaz de estabelecar uma conexĆ£o com um banco de dados Postgres.
      • O sistema deve ser capaz de lidar com requisiƧƵes com formato de dados do tipo JSON.
      • O sistema deve ser capaz de cadastrar usuĆ”rios.
      • O sistema deve ser capaz de persistir essas informaƧƵes em um banco de dados relacional.
    • Adicionar arquivo de rotas do Insomnia
    • Adicionar migrations
  • IntermediĆ”rio

    • Requisitos
      • O sistema deve ser capaz de cadastrar chaves PIX para os usuĆ”rios jĆ” cadastrados.
      • Uma chave nĆ£o poderĆ” ser cadastrada mais de uma vez.
      • Cada usuĆ”rio poderĆ” ter no mĆ”ximo 3 chaves.
      • O sistema deve ser capaz de realizar transaƧƵes PIX utilizando chaves cadastradas de usuĆ”rios.
      • Cada transaĆ§Ć£o deve ser identificada de forma Ćŗnica por um id.
      • Cada transaĆ§Ć£o deve conter a chave do usuĆ”rio que envia e do usuĆ”rio que recebe o PIX, alĆ©m do valor, claro.
      • O sistema deve listar as transaƧƵes feitas por um usuĆ”rio
      • O sistema deve ser capaz de persistir essas informaƧƵes em um banco de dados relacional.
    • Adicionar testes unitĆ”rios
  • AvanƧado

    • Requisitos
      • O sistema deve ser capaz de enviar um email notificando o envio e recebimento de um pix.
      • O email de chegada deve ter o valor recebido, o nome de quem enviou e a data.
      • O email de envio deve ter o valor enviado, o nome de quem recebeu e a data.
    • Adicionar tratamento de erros de maneira global
  • Bonus

    • Adicionar um docker-compose e um Dockerfile.
    • Adicionar o diagrama do banco de dados.

Entidades āœļø

  • UsuĆ”rios
    • O usuĆ”rio deve possuir nome (nome do usuĆ”rio), telefone (telefone do usuĆ”rio), email e um id.
  • Chaves.
    • A entidade chaves deve possuir um valor (referente a chave a ser salva), id e a relaĆ§Ć£o com o usuĆ”rio dono da chave.
  • TransaƧƵes.
    • A transaĆ§Ć£o deve possuir um valor (referente ao valor em R$ da transaĆ§Ć£o), relaĆ§Ć£o com quem envia e quem recebe o PIX (usuĆ”rio que envia e usuĆ”rio que recebe o PIX) e um id.

CritĆ©rios de avaliaĆ§Ć£o šŸ“

  • Arquitetura
  • Clean code
  • Clareza
  • AusĆŖncia de bugs