🪙 DR Bank Restful API 💵

📃 Sobre

Esse projeto tem como objetivo construir uma API de um banco com operações simples de depósito e transfências de valores.

Além de poder instalar e rodar o projeto localmente, você pode também acessar a versão online em um deploy realizado no Railway.

🛠️ Stacks e bibliotecas utilizadas

  • Node.js
  • Express.js
  • MySQL
  • Cors
  • JWT

🛠️ Instalação e execução

Configurando o banco de dados e .env

O projeto vem configurado para rodar em um banco de dados MySQL, então é nessário instalar MySQL em seu computador ou utilizar um servidor na nuvem com as seguintes configuracões:

1. Em um arquivo .env na raíz do repositório, adicione as configurações de seu banco MySQL:

MYSQL_HOST=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=
MYSQL_PORT=

2. Nesse mesmo arquivo .env, também configure as chaves de segredo do JWT e a porta do Express

PORT=
JWT_SECRET=
Rodando o projeto localmente

Para rodar está aplicação é necessário ter Git e o Node e o instalados e atualizados em seu computador.

Também é necessário que o seu sistema operacional tenha um terminal Bash instalado. Caso você esteja utilizando Linux ou macOS, o Bash já vem instalado por padrão. Porém, se o seu sistema for Windows, talvez você precise fazer a instalação a parte.

1. Após clonar o repositório, execute o comando abaixo na raíz do projeto no terminal para instalar as dependências

npm install

2. Execute o projeto

npm start

💻 Documentação e rotas da API:

Criando uma conta /ACCOUNT

Requisição do tipo /POST

  • É necessario ter a chave name
  • É necessário ter a chave cpf
  • Cpf aceita somente digitos numérios
  • Cpf aceita apenas uma composição de 11 digitos
body = {
"name": 
"cpf":
}
Checando saldo /ACCOUNT/SALDO

Requisição do tipo /GET

  • É necessario o token de autenticação obtido via Login
header = {
authorization: token
}
Efetuando depósito /ACCOUNT/DEPOSITO

Requisição do tipo /POST

  • É necessario o token de autenticação obtido via Login
  • É necessário um valor maior que 0
  • É necessário informar o valor da chave "deposito"
header = {
authorization: token
}

body = {
"deposito":
}
Efetuando Login /LOGIN

Requisição do tipo /POST

  • É necessario a chave cpf
  • É necessário a chave name
  • É necessário que e name e cpf correspodam no cadastro do banco de dados.
body = {
"name":
"cpf":
}
Efetuando transferência /TRANSFER

Requisição do tipo /POST

  • É necessario o token de autenticação obtido via Login
  • É necessário a chave destinatario ser um usuário existente
  • É necessário que o valor transferValue seja maior que 0, menor que 2000 e não maior que seu saldo atual
header: {
authorization: token
}
body = {
"destinatario":
"transferValue":
}