Skip to content

POC utilizando React Native,NodeJS,RabbitMQ,MongoDB e Docker com objetivo em trazer dados da api externa para o serviço de mensageria, envia-lo via rabbitmq para a API nodejs, e a mesma enviar via socket para o app mobile e também armazenar no mongodb

Notifications You must be signed in to change notification settings

williamjayjay/poc-RN-Node-RabbitMQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto - React Native/NodeJS/Mongodb/Docker/pm2/RabbitMQ: bitcoin candlesticks

GitHub language count GitHub Top Language Repository size GitHub last commit Stargazers

Vamos construir um serviço com rabbitmq, uma api em nodejs e um aplicativo em react native
Está é apenas uma POC de um projeto com objetivo de buscar e exibir os preços mais recentes do bitcoin em tempo real..

poc bitcoin

🥶 Sobre o projeto

Desenvolvi esse projeto para reforçar meu conhecimento com filas e mensageria, e bibliotecas de animação.

Containers Docker:

Docker: Serão executado 2 containers respectivamente, do rabbitMQ e do mongodb.

Guia de inicialização dos containers docker

Para criar os containers docker, siga estas etapas simples:

  1. Vá para a raiz do diretório btc-candle-generator para criar o container docker do rabbitmq:
docker compose up -d
  1. Vá para a raiz do diretório btc-candle-api para criar o container docker do mongodb:
docker compose up -d

Serviço Mensageria:

Mensageria: O serviço de mensageria foi feito utilizando rabbitMQ, ao qual buscamos os valores do preço do bitcoin na API da coingecko.

🚀 Tecnologias

Principais tecnologias que utilizei para desenvolver esta aplicação

Guia de inicialização

Para instalar e configurar uma cópia local, siga estas etapas simples:

Prerequisitos

Para garantir o funcionamento adequado da nossa aplicação, verifique abaixo:

  1. Clone o repositório:
git clone https://github.com/williamjayjay/poc-RN-Node-RabbitMQ
  1. Navegue na raiz do projeto btc-candle-generator:

  2. Instale os módulos:

bun i
  1. Copie o .env de exemplo:

  2. Instale o PM2 para rodar o serviço em segundo plano:

npm install pm2 -g
  1. Rode o build do projeto:
npm run build
  1. Execute o arquivo json do PM2 na raiz do projeto:
pm2 start pm2.json 

Roadmap

  • Conectar ao rabbitmq

  • Buscar o preço do bitcoin em dollar

  • Executar regra para buscar o preço do bitcoin a cada 30 segundos realizar 3 buscas e enviando para a fila os 3 preços

  • Manter sessão ativa em loop, sem quebrar o serviço

Exibição no terminal

Terminal PM2 Terminal Docker(RabbitMQ e MongoDB)
t-pm2 t-docker

Api NodeJS-Express:

API: A api realiza a conexão com o canal do rabbitmq para receber o serviço de mensageria

🚀 Tecnologias

Principais tecnologias que utilizei para desenvolver esta aplicação

Guia de inicialização

Para instalar e configurar uma cópia local, siga estas etapas simples:

Prerequisitos

Para garantir o funcionamento adequado da nossa aplicação, verifique abaixo:

  1. Clone o repositório:
git clone https://github.com/williamjayjay/poc-RN-Node-RabbitMQ
  1. Navegue na raiz do projeto btc-candle-api:

  2. Instale os módulos:

bun i
  1. Copie o .env de exemplo:

  2. Rode o build do projeto:

npm run build
  1. Inicie o PM2 para iniciar a api em segundo plano:
pm2 start pm2.json

Roadmap

  • Conectar ao mongodb

  • Iniciar a api

  • Iniciar serviço para consumir mensagens da fila do rabbitmq

  • Salvar no mongodb as mensagens entregues pelo rabbitmq

  • Emitir a mensagem via websocket com socket.io


Mobile React Native:

Aplicativo: O app recebe os preços do bitcoin via api REST e também via socket.io.

🚀 Tecnologias

Principais tecnologias que utilizei para desenvolver esta aplicação

Guia de inicialização

Para instalar e configurar uma cópia local, siga estas etapas simples:

Prerequisitos

Para garantir o funcionamento adequado da nossa aplicação, verifique abaixo:

  1. Clone o repositório:
git clone https://github.com/williamjayjay/poc-RN-Node-RabbitMQ
  1. Navegue na raiz do projeto rn-bitcoin-viewer-analytcs:

  2. Instale os módulos:

bun i
  1. Copie o .env de exemplo:

  2. Rode o aplicativo:

bun android

Roadmap

  • Iniciar o aplicativo e verificar se há ou não dados das velas do bitcoin, caso haja exibir o gráfico de velas, caso não exibir mensagem sobre nenhum dado carregado

  • Conseguir visualizar o preço do bitcoin em velas candlesticks

  • Exibir animação das velas quando carregadas da api

  • Receber a cada 1 minuto e 30 segundos novas velas via websocket

    • Soar som de moeda e exibir toast notification quando chegar uma nova vela via websocket
  • Ao clicar no botão da lupa, alternar a exibição entre 3, 6 e 9 últimas velas enviadas pela API Rest e pelo SocketIO

  • Ao clicar em uma das velas, deve selecionar a mesma, alterar ícones na parte inferior

  • Ao clicar em uma das velas, deve exibir na parte superior os preços de abertura, fechamento, mais alto e mais baixo e também a data e hora que foi gerada aquela vela.

UI UX

UI e UX feita baseada em aplicações ja existentes no mercado e em modelos existentes em plataformas como dribble e behance.

-Link para vídeo com o som que exibe ao chegar uma nova vela no gráfico Video-React-Native

Tela de início Tela de início (6)
Tela de início Tela de início-6
Tela de início (3) Tela de início Full
Tela de início-3 Tela de início-fulll
Tela nenhum dado carregado
Tela nenhum dado carregado

About

POC utilizando React Native,NodeJS,RabbitMQ,MongoDB e Docker com objetivo em trazer dados da api externa para o serviço de mensageria, envia-lo via rabbitmq para a API nodejs, e a mesma enviar via socket para o app mobile e também armazenar no mongodb

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published