Skip to content

keilapassos/fin-api-node-js-typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FinApi: API Financeira

Tecnologias utilizadas:

  • Node.Js;
  • Express;
  • Typescript


Este projeto foi feito seguindo orientação da desenvolvedora Dani Leão no curso de Node.Js pela Rocketseat.

O projeto FinAPI é uma API Financeira simples, onde é possível fazer operações CRUD (Create, Read, Update, Delete) de contas, realizar depósitos, saques, ver extrato, entre outros.

A aplicação original possuia Node.Js com Express, e os códigos ficavam apenas em um arquivo.

Para exercitar a organização do projeto, decidi separar por diretórios, com controller, services e routes. Adicionei Typescript a este projeto para poder praticá-lo mais.

Como resultado, apesar de ser uma aplicação simples pude trabalhar com alguns conceitos como middleware, pude praticar o Typescript, e pude usar o raciocínio lógico para resolver problemas que apareciam.

Abaixo estão os requisitos e regras de negócio que a aplicação pedia. Em seguida, estarão listadas instruções para baixar e rodar este projeto localmente, em sua máquina. A seguir, estarão as rotas e os resultados esperados das requisições.




Requisitos

  • Deve ser possível criar uma conta
  • Deve ser possível buscar o extrato bancário do cliente
  • Deve ser possível realizar um depósito
  • Deve ser possível realizar um saque
  • Deve ser possível buscar o extrato bancário do cliente por data
  • Deve ser possível atualizar dados da conta do cliente
  • Deve ser possível obter dados da conta do cliente
  • Deve ser possível deletar uma conta

Regras de negócio

  • Não deve ser possível cadastrar uma conta com CPF já existente
  • Não deve ser possível fazer depósito em uma conta não existente
  • Não deve ser possível buscar extrato em uma conta não existente
  • Não deve ser possível fazer saque em uma conta não existente
  • Não deve ser possível excluir uma conta não existente
  • Não deve ser possível fazer saque quando o saldo for insuficiente



Pré-requisitos

Você precisa ter instalado em sua máquina as ferramentas:

  • Sistema de controle versão Git,

  • Node.js,

  • Editor de texto, por exemplo, VSCode

  • API Client (para testar a API), recomendo o Insomnia


Instruções para rodar o projeto localmente


# clone o repositório usando SSH
git clone git@github.com:keilapassos/fin-api-node-js-typescript.git
# ou usando HTTPS
git clone https://github.com/keilapassos/fin-api-node-js-typescript.git

# acesse a pasta do projeto no terminal
cd fin-api-node-js-typescript

# você pode ver os códigos do projeto abrindo-o em seu editor de texto, exemplo com VSCode
code .

# instale as dependências - irá criar uma pasta 'node_modules'
npm install

# execute a aplicação em modo de desenvolvimento
npm run dev

# a aplicação iniciará na porta 3000
# acesse http://localhost:3000 no seu navegador ou API Client.
# ** Observação: apenas os métodos get podem rodar via navegador, outros métodos rodam apenas via API CLient

Rotas da aplicação

URL base: http://localhost:3000

# No API Client, adicione um novo HTTP Request (exemplo: POST json)
# em seguida adicione a url base com o seu endpoint, exemplo:
# POST http://localhost:3000/account

# Em todas as rotas EXCETO no endpoint <POST http://localhost:3000/account>, temos que informar o cpf em Headers

com o servidor rodando (npm run dev), vamos aos endpoints:


POST /account

  • criado com sucesso - 201 created
  • error - 400
  • ao tentar cadastrar um cliente que já existe


GET /account

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • error - 400
  • quando o CPF do cliente não encontrado


PUT /account

  • body da requisição
  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • error - 400
  • quando o CPF do cliente não encontrado


DELETE /account

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • error - 400
  • quando o CPF do cliente não encontrado


GET /statement

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • inicia com array vazio
  • sucesso - 200 ok
  • após realizar operações de débito e crédito


GET /statement/date

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • obrigatório inserir query param date. O query pode ser passado tanto na url como: http://localhost:3000/statement/date?date=2022-12-01 ou pela aba query do seu API Client
  • se a data não for encontrada, retorna um array vazio
  • sucesso - 200 ok
  • após realizar operações de depósito(crédito) e saque(débito)


POST /deposit

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • depositando uma vez 50 reais
  • error - 400
  • quando o CPF do cliente não encontrado


POST /withdraw

withdraw = saque/retirada de dinheiro

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • saque de 10 reais
  • error - 400
  • quando o CPF do cliente não encontrado


GET /balance

  • sucesso - 200 ok
  • obrigatório inserir CPF no headers
  • mostra o total disponível
  • error - 400
  • quando o CPF do cliente não encontrado



Desenvolvido por Keila Passos

Linkedin

Perfil do Github

---

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published