{"id":18457956,"url":"https://github.com/alokkusingh/home-dashboard","last_synced_at":"2025-09-06T19:44:03.334Z","repository":{"id":45814878,"uuid":"466959416","full_name":"alokkusingh/home-dashboard","owner":"alokkusingh","description":"Home Dashboard ring ReactJS","archived":false,"fork":false,"pushed_at":"2025-05-22T09:32:54.000Z","size":1444,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T08:07:37.700Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/alokkusingh.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-07T05:46:28.000Z","updated_at":"2025-05-22T09:32:57.000Z","dependencies_parsed_at":"2023-02-10T15:15:39.590Z","dependency_job_id":"5ed2ea47-0c9a-40a5-a930-dab4f0d3ad1a","html_url":"https://github.com/alokkusingh/home-dashboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alokkusingh/home-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alokkusingh%2Fhome-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alokkusingh%2Fhome-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alokkusingh%2Fhome-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alokkusingh%2Fhome-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alokkusingh","download_url":"https://codeload.github.com/alokkusingh/home-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alokkusingh%2Fhome-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273955632,"owners_count":25197579,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-06T08:16:15.698Z","updated_at":"2025-09-06T19:44:03.314Z","avatar_url":"https://github.com/alokkusingh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home Dashboard \n\nHome dashboard\n\n## Available Scripts\n\n### Start App Locally\n```shell\nnpm start\n```\n\n### Launch Test Nunner\n```shell\nnpm test\n```\n\nLaunches the test runner in the interactive watch mode.\\\nSee the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.\n\n### Build app for production\n```shell\nnpm run build\n```\n\nBuilds the app for production to the `build` folder.\\\nIt correctly bundles React in production mode and optimizes the build for the best performance.\n\nThe build is minified and the filenames include the hashes.\\\nApp is ready to be deployed!\n\nSee the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n### Protobuf\n#### Install pbf Globally to generate .js from .proto\n```shell\nnpm install -g pbf\n```\n#### Install pbf locally to be used as dependent lib\n```shell\nnpm install pbf --save\n```\n#### Generate JS from PROTO\n```shell\npbf src/proto/getInvestmentsResponse.proto  \u003esrc/proto/getInvestmentsResponse.js\npbf src/proto/getInvestmentsRorMetricsResponse.proto  \u003esrc/proto/getInvestmentsRorMetricsResponse.js\npbf src/proto/getRawInvestmentsResponse.proto  \u003esrc/proto/getRawInvestmentsResponse.js\n```\n### Docker Build and Deploy\n1. Build\n```shell\ndocker build -t alokkusingh/home-dashboard:latest -t alokkusingh/home-dashboard:1.4.0 .\n```\n2. Push\n```shell\ndocker push alokkusingh/home-dashboard:latest\n```\n```shell\ndocker push alokkusingh/home-dashboard:1.4.0\n```\n2. Deploy\n```shell\ndocker run -d -p 8083:80 --rm --name home-dashboard alokkusingh/home-dashboard\n```\n## Open Distributed Tracing with Jaeger\n1. Compiled and included ngx_http_opentracing_module\n2. Enabled Jaeger header propagation\n3. Enabled connection to Jaeger agent\n\n## Sequence Diagram\n```mermaid\nsequenceDiagram\n  participant web as Home Dashboard\n  participant idp as Google IdP\n  participant authorizer as Authorizer Service\n  participant homeapi as Home API Service\n  participant homeetl as Home ETL Service\n  participant db as MySQL\n  participant sheet as Google Sheet\n  participant backup as Github\n  web-\u003e\u003eidp: Get ID Token for Home Service?\n  alt login success\n    idp-\u003e\u003eweb: ID Token (including email)\n    web-\u003e\u003eauthorizer: Validate ID Token\n    authorizer-\u003e\u003eauthorizer: Validate Token Integrity\n    authorizer-\u003e\u003eauthorizer: Validate Email\n    alt user authorized\n      authorizer-\u003e\u003eweb:User ID and Email\n      web-\u003e\u003ehomeapi:Get Metrics\n      alt has access to API\n        homeapi-\u003e\u003edb:Get Records\n        db-\u003e\u003ehomeapi:Records\n        homeapi-\u003e\u003ehomeapi:Aggregate Metrics\n        homeapi-\u003e\u003eweb:Metrics\n      else dont have access to API\n        homeapi-\u003e\u003eweb:Unauthorized Access\n      end\n      web-\u003e\u003ehomeetl:Upload Statement\n      alt has access to API\n        homeetl-\u003e\u003ehomeetl:Parse File\n        homeetl-\u003e\u003edb:Add Records\n        homeetl-\u003e\u003eweb:Success\n      else dont have access to API\n        homeetl-\u003e\u003eweb:Unauthorized Access\n      end\n      web-\u003e\u003ehomeetl:Refresh data\n      alt has access to API\n        homeetl-\u003e\u003esheet:Get Sheet Records\n        sheet-\u003e\u003ehomeetl:Records\n        homeetl-\u003e\u003edb:Delete Records\n        homeetl-\u003e\u003edb:Add Records\n        homeetl-\u003e\u003eweb:Success\n      else dont have access to API\n        homeetl-\u003e\u003eweb:Unauthorized Access\n      end\n    else user not authorized\n      authorizer-\u003e\u003eweb:User Not Authorized \n    end\n  else login failed\n    idp-\u003e\u003eweb: Login failed\n  end\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falokkusingh%2Fhome-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falokkusingh%2Fhome-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falokkusingh%2Fhome-dashboard/lists"}