{"id":21026578,"url":"https://github.com/jmoussa/crypto-news-platform","last_synced_at":"2026-01-05T21:33:43.194Z","repository":{"id":113273902,"uuid":"454260303","full_name":"jmoussa/crypto-news-platform","owner":"jmoussa","description":"Content Platform serving crypto news and information over gRPC microservices behind a REST HTTP API.","archived":false,"fork":false,"pushed_at":"2022-02-06T01:44:48.000Z","size":51,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-29T23:11:34.715Z","etag":null,"topics":["gin","gin-gonic","go","golang","grpc","grpc-go","helm","kubernetes","microservice","microservice-architecture","microservices","minikube"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmoussa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-02-01T04:25:00.000Z","updated_at":"2023-02-08T16:37:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"cfd549ce-84c2-48fe-90b9-b461f6a2500c","html_url":"https://github.com/jmoussa/crypto-news-platform","commit_stats":null,"previous_names":["jmoussa/crypto-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoussa%2Fcrypto-news-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoussa%2Fcrypto-news-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoussa%2Fcrypto-news-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoussa%2Fcrypto-news-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmoussa","download_url":"https://codeload.github.com/jmoussa/crypto-news-platform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245325317,"owners_count":20596840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gin","gin-gonic","go","golang","grpc","grpc-go","helm","kubernetes","microservice","microservice-architecture","microservices","minikube"],"created_at":"2024-11-19T11:45:21.071Z","updated_at":"2026-01-05T21:33:43.162Z","avatar_url":"https://github.com/jmoussa.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Crypto Dashboard\n**An experiment in microservice architecture**\n\n## Local Testing\n**Prerequisites:**\n- Kubectl\n- Minikube (running/started)\n\n```bash\n# set this at the beginning of your terminal session to reference the local docker images\neval $(minikube docker-env)\n\ngit clone github.com/jmoussa/crypto-dashboard\ncd crypto-dashboard\ncp $(pwd)/config/config.json.template $(pwd)/config/config.json # fill in the correct values\nexport CONFIG_LOCATION=$(pwd)/config\ngo get .\nmake build\nmake deploy # will open minikube dashboard in browser to visualize the deployment \n\n# in a separate terminal window\nminikube tunnel # expose API port to your local machine\n\n# Additional Commands\n# clean up go cache, docker, and kubernetes deployment\nmake clean\n\n# open minikube dashboard for monitoring\nminikube dashboard\n\n# test endpoint in browser\nlocalhost:3000/coindesk (test coindesk REST API + CoinDesk Article Scraping gRPC endpoint)\nlocalhost:3000/twitter (test coindesk REST API + Twitter Scraping gRPC endpoint)\n```\n\n## Architecture\n### UI\n- Single Dashboard view\n    - Monitoring top 20 crypto prices (scrape from etherscan.io)\n    - Twitter NFT News Feed (API)\n    - CoinDesk, TodayOnChain, CCN, and CoinTelegraph\n        - Crypto/Finance News Feed (API or scrape)\n    - Companies that Accept Crypto (scrape from somewhere?)\n\n### API\n- REST at the high level\n- gRPC for microservice communications\n\nTop level REST API which connects to gRPC Servers that will perform the content gathering jobs and pipe the input back.\n\n## CI/CD\nUsing Kubernetes and Helm for environment management and monitoring, and minikube for local development.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmoussa%2Fcrypto-news-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmoussa%2Fcrypto-news-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmoussa%2Fcrypto-news-platform/lists"}