A progressive Node.js framework for building efficient and scalable server-side applications.
Necessario ter o docker instalado na maquina
https://www.docker.com
$ docker-compose up
Caso erro de permissão, execute: chmod +x .docker/entrypoint.sh
# Cadastro de usuário
POST http://localhost:3000/usuarios
{
"nome": "nomeExemplo",
"telefone": "8399999999",
"email": "exemplo@gmail.com"
}
# Cadastrar chave PIX
POST http://localhost:3000/chaves
{
"chave": "usuario1abc1",
"usuario_id": 1
}
# Realizar Transação
POST http://localhost:3000/transacoes
{
"valor": 11.02,
"remetente_chave": "usuario1abc1",
"destinatario_chave": "usuario2abc1"
}
# Obter Transação por usuário ID
GET http://localhost:3000/transacoes/3
- 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 assuntoDesafio Back end Brisalabs
.
-
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
- Requisitos
-
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
- Requisitos
-
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
- Requisitos
-
Bonus
- Adicionar um
docker-compose
e umDockerfile
. - Adicionar o diagrama do banco de dados.
- Adicionar um
- 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.
- Arquitetura
- Clean code
- Clareza
- Ausência de bugs