Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jmoussa/crypto-news-platform
Content Platform serving crypto news and information over gRPC microservices behind a REST HTTP API.
https://github.com/jmoussa/crypto-news-platform
gin gin-gonic go golang grpc grpc-go helm kubernetes microservice microservice-architecture microservices minikube
Last synced: about 1 month ago
JSON representation
Content Platform serving crypto news and information over gRPC microservices behind a REST HTTP API.
- Host: GitHub
- URL: https://github.com/jmoussa/crypto-news-platform
- Owner: jmoussa
- Created: 2022-02-01T04:25:00.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-06T01:44:48.000Z (almost 3 years ago)
- Last Synced: 2024-11-14T14:46:16.629Z (about 1 month ago)
- Topics: gin, gin-gonic, go, golang, grpc, grpc-go, helm, kubernetes, microservice, microservice-architecture, microservices, minikube
- Language: Go
- Homepage:
- Size: 49.8 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Crypto Dashboard
**An experiment in microservice architecture**## Local Testing
**Prerequisites:**
- Kubectl
- Minikube (running/started)```bash
# set this at the beginning of your terminal session to reference the local docker images
eval $(minikube docker-env)git clone github.com/jmoussa/crypto-dashboard
cd crypto-dashboard
cp $(pwd)/config/config.json.template $(pwd)/config/config.json # fill in the correct values
export CONFIG_LOCATION=$(pwd)/config
go get .
make build
make deploy # will open minikube dashboard in browser to visualize the deployment# in a separate terminal window
minikube tunnel # expose API port to your local machine# Additional Commands
# clean up go cache, docker, and kubernetes deployment
make clean# open minikube dashboard for monitoring
minikube dashboard# test endpoint in browser
localhost:3000/coindesk (test coindesk REST API + CoinDesk Article Scraping gRPC endpoint)
localhost:3000/twitter (test coindesk REST API + Twitter Scraping gRPC endpoint)
```## Architecture
### UI
- Single Dashboard view
- Monitoring top 20 crypto prices (scrape from etherscan.io)
- Twitter NFT News Feed (API)
- CoinDesk, TodayOnChain, CCN, and CoinTelegraph
- Crypto/Finance News Feed (API or scrape)
- Companies that Accept Crypto (scrape from somewhere?)### API
- REST at the high level
- gRPC for microservice communicationsTop level REST API which connects to gRPC Servers that will perform the content gathering jobs and pipe the input back.
## CI/CD
Using Kubernetes and Helm for environment management and monitoring, and minikube for local development.