Skip to content

brduarte/bot-coin-service

Repository files navigation

🤖 Bot Coin Service

⚒️ Ferramentas Utilizadas

  • Node.js
  • Express
  • TypeOrm
  • Mysql

✔️ Pré-requisitos

  • Docker
  • Docker Composer

🐳 Executando com Docker

  1. Rode o comando docker-compose up --build e aguarde a inicialização do projeto.
$ docker-compose up --build
  1. Depois que os container terminarem de subir basta acessar http://localhost:3333 image

👨‍💻 Executando Manualmente

  1. Clone seu repositório e instale as dependências
$ git clone https://github.com/brduarte/bot-coin-service.git 
$ cd bot-coin-service
$ yarn install
  1. Renome o arquivo .env.example para .env
$ cp -v .env.example .env
  1. Execute o banco de dados. Você pode instanciar o banco de dados onde preferir, mas eu deixei uma configuração do Docker Compose para subir um banco de dados para você utilizando os parâmetros configurado no arquivo .env, basta você executar o comando abaixo.

      ⚠️ OBS: Certifique-se que você tenha o Docker e o Docker Compose instalado em seu computador, caso o contrário você pode encontrar o guia de instalação no índice de documentação.
    
$ docker-compose up server-mysql
  1. Rode as migrations para construir a estrutura do banco de dados.
$ yarn typeorm migration:run
  1. Execute o projeto.
$ yarn start 
  1. Sua API deve estar sendo executada em http://localhost:3333.

     ⚠️ OBS: A API será executada na porta parametrizada na variável `APP_PORT` do projeto. 
    

image

👨🏽‍🏫 Como Utilizar o Projeto

O projeto foi desenvolvido para monitorar e gerar dados do candles da criptomoeda que você cadastrar no sistema.

    ⚠️ O exempo mostrado aqui é para gerar um candles de 1 minuto
  1. Cadastre um job para a moeda que você deseja monitorar.
    • Parametros
      • name: Nome do JOB
      • currencyPair: Par de moeda para monitoramento. É permitido apenas moedas listadas na página da API Poloniex
      • frequency: Periodicidade para gerar os dados do candles. Essa informação é setada com valor em minutos
curl --location -g --request POST '{{URL}}/jobs' \
--data-raw '{
    "name": "JOB_BNB-BTC 1M",
    "currencyPair": "BTC_BTS",
    "frequency":1
}'

Assim que os sistema começar a gerar os dados, ele mostrará logs de processamento no terminal image

  1. Depois que o cadastro for feito e os primeiros dados forem gerados, você pode obter os dados do candles através da endpoint abaixo.
curl --location -g --request GET '{{URL}}/candles?currencyPair=BTC_BTS&frequency=1'
  1. Caso você queira fazer a consulta através do banco de dados, basta você rodar a query abaixo passando o id do job cadastrado.
SELECT
jobs.id as job_id,
jobs.name,
currencys.currency_pair,
schedules_jobs.frequency,
candles.open,
candles.low,
candles.high,
candles.close,
candles.created_at
FROM jobs
JOIN candles on jobs.id = candles.job_id
JOIN currencys on jobs.currency_id = currencys.id
JOIN schedules_jobs on jobs.schedule_job_id = schedules_jobs.id
WHERE job_id=:job_id
ORDER BY candles.created_at DESC

Você pode ver mais sobre os endpoints na Documentação da API

🗄️ Diagrama do Banco de Dados

image

👨🏿‍🔬 Melhorias

📝 Documentação

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published