Um projeto feito com Node.js, para consultar cotações de ações.
Dados das ações sendo consultadas na Alpha Vantage, estou ultilizando o PostgreSQL para salvar dados atualizados.
Typeorm, Date-fns, Axios, ESlint, Jest.
Node.js com versão acima da 14.x.
Um banco PostgreSQL com nome de corretora rodando na porta padrão.
-
Clone este repositório.
-
Vá para pasta principal.
-
Usando Yarn:
- Download das depêndencias usando o Yarn:
$ yarn
- Iniciando a API com Yarn:
$ yarn dev
- Download das depêndencias usando o Yarn:
-
Usando NPM:
- Download das depêndencias usando o NPM:
$ npm install
- Iniciando a API com NPM:
$ npm run dev
- Download das depêndencias usando o NPM:
-
Porta da API: 3333
- Rodando os testes usando o Yarn:
$ yarn test
- Rodandos os testes usando o NPM:
$ npm run test
✅ Testes dos serviços 100% Coverage.
Favor adicionar .SA no final de alguns símbolos de ações como VALE5.SA, PETR4.SA, GOLL4.SA, CASH3.SA, etc...
http://localhost:3333/stocks/ETHBTC/quote
{
"name": "ETHBTC",
"lastPrice": 0.0674,
"pricedAt": "2022-05-22"
}
http://localhost:3333/stocks/IBM/history
from: 2022-04-13
to: 2022-04-16
{
"name": "IBM",
"prices": [
{
"opening": 128.93,
"high": 130.58,
"low": 126.38,
"closing": 126.56,
"pricedAt": "2022-04-14"
},
{
"opening": 125.64,
"high": 126.67,
"low": 124.91,
"closing": 126.14,
"pricedAt": "2022-04-13"
}
]
}
http://localhost:3333/stocks/ETHBTC/compare
{
"stocks": ["PETR4.SA", "VALE5.SA"]
}
{
"lastPrices": [
{
"name": "ETHBTC",
"lastPrice": 0.0674,
"pricedAt": "2022-05-22"
},
{
"name": "PETR4.SA",
"lastPrice": 34.83,
"pricedAt": "2022-05-20"
},
{
"name": "VALE5.SA",
"lastPrice": 33.36,
"pricedAt": "2019-02-15"
}
]
}
Não foi considerado calculos de juros e dividendos, somente o ganho de porcentagem da ação.
http://localhost:3333/stocks/BBAS3.SA/gains
purchasedAmount: 1000
purchasedAt: 2018-01-24
{
"name": "BBAS3.SA",
"purchasedAmount": 1000,
"purchasedAt": "2018-01-24",
"priceAtDate": 37.99,
"lastPrice": 37,
"capitalGains": -26.06
}
- GitHub: https://github.com/denion465
- Linkedin: https://www.linkedin.com/in/daniel-vidal465