{"id":13397713,"url":"https://github.com/keen/dashboards","last_synced_at":"2026-01-28T10:31:36.236Z","repository":{"id":19518443,"uuid":"22765472","full_name":"keen/dashboards","owner":"keen","description":"Responsive dashboard templates 📊✨","archived":false,"fork":false,"pushed_at":"2021-11-02T12:25:42.000Z","size":2240,"stargazers_count":11049,"open_issues_count":6,"forks_count":1409,"subscribers_count":489,"default_branch":"master","last_synced_at":"2025-12-09T04:29:01.962Z","etag":null,"topics":["analytics","analytics-dashboard","charts","css-grid","css-grid-layout","css-grid-template","dashboard","grid","keen-io","templates"],"latest_commit_sha":null,"homepage":"http://keen.github.io/dashboards/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-08T17:16:17.000Z","updated_at":"2025-12-08T18:07:57.000Z","dependencies_parsed_at":"2022-07-11T19:29:09.021Z","dependency_job_id":null,"html_url":"https://github.com/keen/dashboards","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/keen/dashboards","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keen%2Fdashboards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keen%2Fdashboards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keen%2Fdashboards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keen%2Fdashboards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keen","download_url":"https://codeload.github.com/keen/dashboards/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keen%2Fdashboards/sbom","scorecard":{"id":553502,"data":{"date":"2025-08-11","repo":{"name":"github.com/keen/dashboards","commit":"348b37de6070b1d04318c7525ff0f4591d3269ee"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":7,"reason":"Found 9/12 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating httpd to httpd@sha256:3198c1839e1a875f8b83803083758a7635f1ae999f0601f30f2f3b8ce2ac99e3","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T11:39:15.048Z","repository_id":19518443,"created_at":"2025-08-20T11:39:15.048Z","updated_at":"2025-08-20T11:39:15.048Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28844014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T07:39:25.367Z","status":"ssl_error","status_checked_at":"2026-01-28T07:39:24.487Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["analytics","analytics-dashboard","charts","css-grid","css-grid-layout","css-grid-template","dashboard","grid","keen-io","templates"],"created_at":"2024-07-30T18:01:40.762Z","updated_at":"2026-01-28T10:31:36.220Z","avatar_url":"https://github.com/keen.png","language":"HTML","readme":"# Dashboards by Keen IO\n\nBuilding an analytics dashboard? Don’t start from scratch. Grab one of our CSS Grid-based templates and admire your data in minutes.\n\n**UPDATE: All examples in this repo have been updated to use [keen-dataviz.js](https://github.com/keen/keen-dataviz.js) and [keen-analysis.js](https://github.com/keen/keen-analysis.js), as well as CDN versions of all dependencies.** When producing charts with [keen-dataviz.js](https://github.com/keen/keen-dataviz.js), the HTML wrapper for each chart (`.chart-wrapper`, described below) is rendered automatically.\n\nBegin with a layout:\n\n![Hero Thirds Example](http://cl.ly/image/3v2H180U0k0Q/Screen%20Shot%202014-10-29%20at%203.12.24%20AM.png)\n\nAdd charts to each `chart-stage` HTML element:\n\n```html\n\u003cdiv class=\"grid-hero\"\u003e\n  \u003cdiv class=\"hero chart-wrapper\"\u003e\n    \u003cdiv class=\"chart-title\"\u003e\n      Chart Title\n    \u003c/div\u003e\n    \u003cdiv class=\"chart-stage\"\u003e\n      \u003cdiv id=\"grid-1-1\"\u003e\n        \u003c!-- chart goes here! --\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"chart-notes\"\u003e\n      Notes about this chart (optional)\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n```\n\nAnd voilà!\n\n![Sample Dashboard](http://cl.ly/image/1T3a0X402r0W/Screen%20Shot%202014-10-29%20at%203.35.04%20AM.png)\n\nAn attractive, custom analytics dashboard that's ready to be shown to your team or your customers. No hours lost tweaking CSS or testing responsiveness on eight different mobile devices.\n\n## The Templates\n\nThese layout templates are composed of a minimal set of custom styles. They cover the most common use cases and layout configurations we've encountered so far.\n\n* [Layouts](http://keen.github.io/dashboards/layouts/) for pre-built, responsive dashboard views\n* [Examples](http://keen.github.io/dashboards/examples/) for specific domains, data models and popular integrations\n\n## Integrations\n\nThese templates can work with any data source or charting library, but they're particularly streamlined to work with Keen IO's [Dataviz SDK](https://github.com/keen/keen-dataviz.js). You can add some charts to your dashboard with just a few lines of code. [Talk to our team](https://try.keen.io/contact) to get started today.\n\n## Usage\n\nReady to use one of these awesome layouts? Here's how to get started.\n\n1. Download a copy of this repository as a zip file, using [this link](https://github.com/keen/dashboards/archive/gh-pages.zip). You can also type `git clone keen/dashboards` in your terminal.\n\n2. Check out the various [layouts](http://keen.github.io/dashboards/layouts/) and pick the one that best suits your needs. Find the template in the repository you downloaded at `folder/layouts/(name-of-template)`.\n\n3. Start editing! In the destination folder will exist an `.html` file. Open it in your favorite text editor. There are three things you need to do to edit your dashboard:\n  1. Setup: If you're a registered Keen IO user, navigate to [your keen project](http://keen.io/login?s=gh-dashboards) or if you don't have a user at first, you can simply use some demo data that we've prepared for you. You can access those by going to the repository and navigating to demo-data. There, you will see some javascript files with some code in them. We will simply paste those in the .html file.\n  2. Some copypasta. When you navigate to the bottom of the .html file, you can see that there are a bunch of script tags. Just before the end of the body tag, we're going to add in the code from sample.html. Simply copy and paste the code just before you see ```\u003c/body\u003e```.\n  3. Once you've done that we need to hook up the specific items within the template to the code that we've just pasted in to our file. Each KeenDataviz instance has `container` property, which is a node selector required by *query*. That means that this *query* will try to find inside the html file a specified node. Please bear in mind that you have to set a height of this node in your stylesheet or using inline CSS. In these templates, you will see lines of that resemble something like:\n  ```html\n  \u003cdiv class=\"chart-stage\"\u003e \u003c!-- This is where you need to put the id property in! --\u003e\n    \u003cimg data-src=\"holder.js/100%x650/white\"\u003e\n  \u003c/div\u003e\n  ```\n  Now we're going to change those lines so that it looks like this:\n  ```html\n  \u003cdiv class=\"chart-stage\" id=\"chart-01\"\u003e \u003c!-- This is where you need to put the id property in! --\u003e\n    \u003c!-- Get rid of that img tag! --\u003e\n  \u003c/div\u003e\n  ```\n\nYou're finished! Congratulations on setting up your first chart! Repeat step three with the rest of the items in the template to complete your dashboard!\n\n\n## Docker\nClone the repository.\n```\n$ git clone https://github.com/keen/dashboards.git\n```\nAccess the repository and build your Docker image.\n```\n$ cd dashboards\n$ docker build -t keen/dashboards .\n```\nRun the Docker container. \n```\n$ docker run -d -p 80:80 keen/dashboards\n```\n\n## Contributing\n\nContributions are 11,000,000% welcome! That's a lot!\n\nPlease file issues for any bugs you find or features you'd like to see. And if you're up for it, send in a pull request.\n\nTo develop, you'll need to first install dependencies using [Bower](http://bower.io/):\n\n```\n$ npm install -g bower\n$ bower install\n```\n\nNote: Updates to the site backed by the **gh-pages** branch go live immediately once pull requests are reviewed and approved.\n\nNote #2: This project is moving fast, so make sure and stay up to date. Here's what we suggest. Fork this repo, clone the fork, and add the original repo as a remote called `upstream`:\n\n```\n$ git clone https://github.com/keen/dashboards.git\n$ cd dashboards\n$ git remote add upstream https://github.com/keen/dashboards.git\n```\n\nPull from `upstream` frequently to keep your local copy up to date:\n\n```\n$ git pull upstream gh-pages\n```\n\n## Support\n\nNeed a hand with something? Send us an email to [contact@keen.io](mailto:contact@keen.io) and we'll get back to you right away!\nFor technical questions, use the [`keen-io`](https://stackoverflow.com/questions/tagged/keen-io) tag on Stack Overflow.\n","funding_links":[],"categories":["HTML","JavaScript","css","Admin","前端开发框架及项目","analytics","Uncategorized"],"sub_categories":["其他_文本生成、文本对话","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeen%2Fdashboards","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeen%2Fdashboards","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeen%2Fdashboards/lists"}