Esta API simula um ambiente de uma corretora de investimentos;
O cliente cadastrado poderá realizar depósitos, saques, compra e venda de ações;
Por meio desta API um cliente poderá realizar seu cadastro
Ao fazer o login utilizando o código do cliente e a senha, o cliente poderá fazer operações como:
- Consultar o próprio saldo
- Realizar depósito e saque
- Consultar a lista de ações cadastradas
- Realizar compra e venda de ações;
- Consultar o Saldo de Investimentos;
A documentação de uso da API, indicando o caminho das rotas, e as entradas esperadas, pode ser consultada neste link abaixo.
DEPLOY NO HEROKU -> https://jorgezup-api-node.herokuapp.com/api-docs/Esta aplicação utiliza banco de dados PostgreSQL para armazenar as informações.
As variáveis de ambiente podem ser encontradas em .env.example.
É recomendado o uso deste repositório por meio de Docker.
As instruções de instalação e configuração do Docker podem ser encontradas neste link https://docs.docker.com/get-docker/.
Opção sem Docker
Caso tenha optado por utilizar o repositório sem Docker siga as instruções abaixo, após o clone do repositório.
Para instalar as dependências:
npm install
Para executar em modo de desenvolvimento:
npm run dev
** Após a instalação e configuração do Banco de Dados utilizando as variáveis de ambiente **
Execute as migrations para iniciar o Banco de Dados, por meio do comando:
npm migrate:run
Opção com Docker
Caso tenha optado por utilizar o repositório com o Docker siga as instruções abaixo, após o clone do repositório.
Para executar o container em modo de desenvolvimento:
O docker irá iniciar os containers da API (node) e do PostgreSQL, e ficar pronto para o desenvolvimento.docker compose up
Para executar o container em modo de produção:
docker compose -f docker-compose.prod.yml up -d
Possui alguns dados pré-cadastrados:
Usuário Administrador (o qual pode cadastrar uma nova ação)
codClient -> 308033
accountId -> 1
password -> 999999
Usuário comum
codClient -> 195031
accountId -> 2
password -> 888888
Para criar um novo cliente
Rota: /clientes/criar
Ao acessar esta rota, será possível criar um novo cliente informando os dados como consta na documentação.
Exemplo:
{
"name":"John",
"surname":"Doe",
"email":"john.doe@email.com",
"password":"888888"
}
Para fazer o login na aplicação
Rota: /clientes/entrar
Será necessário informar o código do cliente e a senha;
{
"codClient":443808,
"password":"999999"
}
Ao fazer o login, será enviado como resposta o Token.
{
"token": 6581e00ebccf5ac6628db47b9487153281dd1d450ad6a064e25c1488cfdc920c24b5d24c5a2695592e73dd581fdf05e30b534087f4002debd8353d91b7959115035051081026f709c2b7e8e7fb752704
}
É necessário informar o Token em todas as requisições;
É necessário informar na requisição das demais rotas o número da conta do cliente (accountId), este número da conta é informado no momento da criação da conta;
O número da conta do cliente (accountId) é diferente do código do cliente (codClient).
Para acessar o saldo do cliente
Rota: /conta/accountId/saldo
Ao acessar esta rota, será possível ver o saldo da conta.
Exemplo:
{
"codClient": 292053,
"saldo": 954.24
}
Para realizar um depósito
Rota: /conta/accountId/deposito
Ao acessar esta rota, será possível realizar a operação de depósito.
Exemplo:
{
"value":1100.89
}
Para realizar um saque
Rota: /conta/accountId/saque
Ao acessar esta rota, será possível realizar a operação de saque.
Exemplo:
{
"value":298.00
}
Para acessar o saldo dos Investimentos
Rota: /investimentos/accountId/saldo
Ao acessar esta rota, será possível ver o saldo dos investimentos.
Exemplo:
{
"codStock": 106459,
"stockname": "PETR4",
"stocksquantity": "5",
"avgprice": "29.33"
}
Para realizar a compra de uma ação
Rota: /investimentos/accountId/comprar
Ao acessar esta rota, será possível realizar a operação de compra de uma ação.
Exemplo:
{
"codStock":106459,
"quantity":5
}
Para realizar a venda de uma ação
Rota: /investimentos/accountId/vender
Ao acessar esta rota, será possível realizar a operação de venda de uma ação.
Exemplo:
{
"codStock":106459,
"quantity":9
}
Para listar as ações disponíveis
Rota: /acoes
Ao acessar esta rota, será possível listar todas as ações cadastradas na corretora com o preço atualizado.
Exemplo:
[
{
"codStock": 106459,
"name": "PETR4",
"value": 29.33
}
]
Para cadastrar uma nova ação na corretora
Rota: /acoes
Ao acessar esta rota, será possível cadastrar uma nova ação na corretora.
Somente administradores possuem essa permissão.
API Externa: Foi utilizado a API fornecida pela HG Brasil https://hgbrasil.com/status/finance
Foi utilizado o endpoint do plano gratuito que retorna apenas os dados de uma ação conforme o código informado.
Para informações de uso desta API consulte a documentação.
Exemplo:
{
"name": "MGLU3"
}
Para realização deste trabalho foi utilizado as seguintes tecnologias;
- TypeScript
- Express
- TypeORM
- PostgreSQL
- Docker
- Swagger
- Heroku
- Github Action