{"id":18684805,"url":"https://github.com/j-sephb-lt-n/plotly-dash-dashboard-template","last_synced_at":"2025-06-18T00:39:37.608Z","repository":{"id":244702993,"uuid":"816005601","full_name":"J-sephB-lt-n/plotly-dash-dashboard-template","owner":"J-sephB-lt-n","description":"A data dashboard template","archived":false,"fork":false,"pushed_at":"2024-07-02T07:46:05.000Z","size":1467,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-28T00:21:07.167Z","etag":null,"topics":["dash","data","data-visualisation","data-vizualization","dataviz","google-cloud","google-cloud-platform","plotly","plotly-dash","python","responsive-design","responsive-web-design"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/J-sephB-lt-n.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-06-16T19:47:30.000Z","updated_at":"2024-07-02T07:46:09.000Z","dependencies_parsed_at":"2024-06-16T21:24:11.592Z","dependency_job_id":"79ddd429-af65-4a8b-b921-00728dc6de61","html_url":"https://github.com/J-sephB-lt-n/plotly-dash-dashboard-template","commit_stats":null,"previous_names":["j-sephb-lt-n/plotly-dash-dashboard-template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-sephB-lt-n%2Fplotly-dash-dashboard-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-sephB-lt-n%2Fplotly-dash-dashboard-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-sephB-lt-n%2Fplotly-dash-dashboard-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/J-sephB-lt-n%2Fplotly-dash-dashboard-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/J-sephB-lt-n","download_url":"https://codeload.github.com/J-sephB-lt-n/plotly-dash-dashboard-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239539681,"owners_count":19655856,"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":["dash","data","data-visualisation","data-vizualization","dataviz","google-cloud","google-cloud-platform","plotly","plotly-dash","python","responsive-design","responsive-web-design"],"created_at":"2024-11-07T10:19:25.259Z","updated_at":"2025-02-18T19:44:24.608Z","avatar_url":"https://github.com/J-sephB-lt-n.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plotly Dash Data Dashboard Template\n\nAn example of a data dashboard built using Plotly Dash in python.\n\nHow it looks on a laptop (macbook air):\n\n![](./screenshots/macbook-air.png)\n\nHow it looks on a mobile phone (iPhone XR):\n\n\u003cimg src=\"./screenshots/iphone-xr.png\" width=\"250\"/\u003e\n\nI apologise for the somewhat messy code (no modularisation etc.). I would enjoy cleaning up the codebase, but I want to go and learn new things more!\n\nSimulate data to show in the dashboard:\n\n```bash\n$ python simulate_data.py \\\n    --n_datasets 10 \\\n    --n_groups 3 \\\n    --n_rows_per_group 100\n```\n\nDeploy locally:\n\n```bash\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\npython dash_app.py\n# feature flags:\npython dash_app.py --debug # shows diagnostic information on the dashboard (for dev)\npython dash_app.py --expose_to_public_internet # make available over http from anywhere\n```\n\nDeploy on a Google Cloud Run service:\n\n```bash\nGCP_PROJ_ID=\"your_google_cloud_project_id_here\"\nGCP_REGION_NAME=\"region_in_which_to_deploy_service\" # e.g. \"africa-south1\"\nGCP_ARTIFACT_REG_REPO_NAME=\"your-artifact-registry-repo-name\"\nAPI_NAME=\"joes-example-dashboard\"\nsource build_deploy_cloud_run.sh\n```\n\nHere is how dataset selection works:\n\n1. On first starting a session, a user will have no datasets selected. The pages related to data will simply show a message informing the user to select a dataset.\n\n2. Dataset data is cached within the user's session. When a user selects a dataset, that data will be fetched from their session cache (if it is there) or fetched from the database and stored in their session cache (if it is not there).\n\n3. When the user clicks the \"refresh data\" button, the dashboard does the following:\n\n   - Fetch updated list of available datasets from the database\n\n   - Delete all existing datasets in cache\n\n   - Change the \"selected dataset\" back to nothing selected\n\nKnown issues not yet fixed:\n\n- The code needs a clean and refactor (very messy)\n\n- Plots on small screens are being cropped on Firefox browser (this is to do with the Firefox implementation of the `zoom` CSS property)\n\n- The dashboard does not look good yet on very large screens (there is wasted space)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj-sephb-lt-n%2Fplotly-dash-dashboard-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj-sephb-lt-n%2Fplotly-dash-dashboard-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj-sephb-lt-n%2Fplotly-dash-dashboard-template/lists"}