Aplicação utiliza NodeJs e Express responsável por fazer uma API para um Banco Digital.
Operações realizadas:
- Criar conta bancária
- Listar contas bancárias
- Atualizar os dados do usuário da conta bancária
- Excluir uma conta bancária
- Depósitar em uma conta bancária
- Sacar de uma conta bancária
- Transferir valores entre contas bancárias
- Consultar saldo da conta bancária
- Emitir extrato bancário
Como rodar o projeto
1 - Tenha certeza que o npm está instalado.
Para isso use o comando npm -v
2 - Com o npm instalado rode o rode em seguida:
npm i
npm run dev
Curl: curl --request GET --url 'http://localhost:3000/contas?senha_banco=Cubos123Bank'
Esse endpoint lista todas as contas bancárias existentes. Para testar a aplicação usa-se uma senha como parametro na url. A senha utilizada foi: Cubos123Bank.
Curl: curl --request POST --url 'http://localhost:3000/contas'
Esse endpoint cria uma conta bancária, vinculada a um número único para identificação da conta (número da conta).
- Requisição - O corpo (body) deverá possuir um objeto com as seguintes propriedades (respeitando estes nomes):
- nome
- cpf
- data_nascimento
- telefone
- senha
-EX: { "nome": "Foo Bar 2", "cpf": "00011122234", "data_nascimento": "2021-03-15", "telefone": "71999998888", "email": "foo@bar2.com", "senha": "12345" }
- Condições para acriação:
- CPF e Email devem ser um campo únicos.
- Verificar se todos os campos do corpo devem ser preenchidos.
- A senha deve apresentar 6 ou mais dígitos.
Curl: curl --request PUT --url 'http://localhost:3000/contas/1/usuario'
Esse endpoint atualiza os dados do usuário de uma conta bancária. O numero da conta bancária a ser alterad deve ser informada como paramentro na rota.
- Requisição - O corpo (body) deverá possuir um objeto com as seguintes propriedades (respeitando estes nomes):
- nome
- cpf
- data_nascimento
- telefone
- senha
-EX: { "nome": "Foo Bar 2", "cpf": "00011122234", "data_nascimento": "2021-03-15", "telefone": "71999998888", "email": "foo@bar2.com", "senha": "12345" }
- Condições para acriação:
- CPF e Email devem ser um campo únicos.
- Verificar se todos os campos do corpo devem ser preenchidos.
- A senha deve apresentar 6 ou mais dígitos.
Curl: curl --request DELETE --url 'http://localhost:3000/contas/1'
Esse endpoint exclui uma conta bancária existente. O Numero da conta bancária a ser excluida é passado como parâmetro na rota.
Curl: curl --request POST --url 'http://localhost:3000/transacoes/depositar'
Esse endpoint adiciona o valor do depósito ao saldo de uma conta válida e registra essa transação.
-
Requisição - O corpo (body) deverá possuir um objeto com as seguintes propriedades (respeitando estes nomes):
- numero_conta
- valor
-
EX: { "numero_conta": "1", "valor": 1900 }
Curl: curl --request POST --url 'http://localhost:3000/transacoes/sacar'
Esse endpoint realiza o saque de um valor em uma determinada conta bancária e registra essa transação.
-
Requisição - O corpo (body) deverá possuir um objeto com as seguintes propriedades (respeitando estes nomes):
- numero_conta
- valor
- senha
-
EX: { "numero_conta": "1", "valor": 1900, "senha": "123456" }
Curl: curl --request POST --url 'http://localhost:3000/transacoes/transferir'
Esse endpoint permite a transferência de recursos (dinheiro) de uma conta bancária para outra e registra essa transação.
-
Requisição - O corpo (body) deverá possuir um objeto com as seguintes propriedades (respeitando estes nomes):
- numero_conta_origem
- numero_conta_destino
- valor
- senha
-
EX: { "numero_conta_origem": "1", "numero_conta_destino": "2", "valor": 200, "senha": "123456" }
Curl: curl --request GET --url 'http://localhost:3000/contas/saldo?numero_conta=1&senha=123456'
Esse endpoint retorna o saldo de uma conta bancária. O numero da conta e a senha são informadas como query params na url
Curl: curl --request GET --url 'http://localhost:3000/contas/extrato?numero_conta=2&senha=123456'
Esse endpoint lista as transações realizadas de uma conta específica. O numero da conta e a senha são informadas como query params na url
tags: backend lógica nodeJS JavaScript