{"id":20156118,"url":"https://github.com/openfun/potsie","last_synced_at":"2025-04-09T22:21:03.549Z","repository":{"id":38107720,"uuid":"369200479","full_name":"openfun/potsie","owner":"openfun","description":":bar_chart: Grafana dashboards suite for learning analytics","archived":false,"fork":false,"pushed_at":"2024-12-18T15:07:30.000Z","size":6550,"stargazers_count":10,"open_issues_count":3,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-24T00:14:06.443Z","etag":null,"topics":["grafana","jsonnet"],"latest_commit_sha":null,"homepage":"https://demo.potsie.education","language":"Jsonnet","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/openfun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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":"2021-05-20T12:28:03.000Z","updated_at":"2024-12-18T15:06:42.000Z","dependencies_parsed_at":"2024-03-18T15:30:54.519Z","dependency_job_id":"f985cf07-9559-4533-a361-a1b46092b266","html_url":"https://github.com/openfun/potsie","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fpotsie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fpotsie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fpotsie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fpotsie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfun","download_url":"https://codeload.github.com/openfun/potsie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248120061,"owners_count":21050886,"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":["grafana","jsonnet"],"created_at":"2024-11-13T23:37:39.310Z","updated_at":"2025-04-09T22:21:03.534Z","avatar_url":"https://github.com/openfun.png","language":"Jsonnet","readme":"# Potsie\n\nPotsie is a collection of [Grafana](https://grafana.com/grafana/) dashboards\nfor learning analytics.\n\n## Sneak peek\n\nWe've cooked an up-to-date project demonstration for you! Check this out at\nhttps://demo.potsie.education using the following credentials:\n\n| Account | Login     | Password    |\n| ------- | --------- | ----------- |\n| Teacher | `teacher` | `funfunfun` |\n\n## Getting started\n\nOnce you have cloned this project, bootstrapping it should be as easy as typing\nthe following command from your terminal:\n\n```\n$ make bootstrap\n```\n\nNow you are ready to fire up grafana using:\n\n```\n$ make run\n```\n\nAfter a few seconds, the application should be running at\n[localhost:3000](http://localhost:3000). Default admin credentials are\n`admin:pass`. If you want to see the provisionned dashboards, connect with the user `teacher:funfunfun`.\nOnce logged in, running grafana instance should be provisioned\nwith all dashboards versioned in this repository.\n\n## Developer guide\n\n### Working on dashboards\n\nPotsie dashboards are written using the [Jsonnet templating\nlanguage](https://jsonnet.org) with the help of the [grafonnet\nlibrary](https://github.com/grafana/grafonnet-lib). Sources are stored in the\n`src/` directory and should be compiled to plain JSON before being sent to\ngrafana.\n\nSources compilation can be done using the _ad hoc_ command:\n\n```\n$ make compile\n```\n\nOnce compiled, our `potsie` provisioner (see\n[potsie.yaml](./etc/grafana/provisioning/dashboards/potsie.yaml)) should\nautomatically load new or modified dashboards in running grafana instance\n(after at most 3 seconds). You should refresh your web browser to see\nmodifications.\n\n\u003e _nota bene_: you can see compiled sources in the `var/lib/grafana/` directory\n\u003e from this repository (look for JSON files).\n\nTo automatically compile sources upon saved modifications, we provide a watcher\nthat requires to install the\n[inotify-tools](https://github.com/inotify-tools/inotify-tools/wiki) dependency\nfor your system. It can be run using:\n\n```\n$ make watch\n```\n\n### Quality checks\n\nTo respect Jsonnet standards, we recommend to use official language formatter\nand linter:\n\n```bash\n# Format sources\n$ make format\n\n# Lint sources\n$ make lint\n```\n\nYou can also use the `bin/jsonnetfmt` or `bin/jsonnet-lint` helper scripts for\ncustom use of the related tools. Adding a Git pre-commit hook script to\nautoformat sources before committing changes would be an example usage of those\nscripts.\n\n### Other helper scripts\n\nTo install new dependencies, you should use the `bin/jb` wrapper script we\nprovide. This script uses the [Jsonnet\nBundler](https://github.com/jsonnet-bundler/jsonnet-bundler), _aka_ `jb`\npackage manager to handle project requirements. To list available commands and\noptions, use the `--help` flag:\n\n```\n$ bin/jb --help\n```\n\nIf you want to play with the Jsonnet compiler, we also provide a wrapper\nscript, see:\n\n```\n$ bin/jsonnet --help\n```\n\n### Create a new Grafana Plugin\n\nTo create a new Grafana plugin, we use the following script:\n\n```bash\n$ ./bin/create-plugin my-new-awesome-plugin\n```\n\nThe script will ask you a couple of questions and then create your plugin\nin the `./src/plugins/packages` directory using `@grafana/toolkit`.\n\nThen, download the necessary dependencies and build all plugins by running\nthe following commands:\n\n```bash\n$ make dependencies\n$ make plugins\n```\n\nGrab a coffee or tea; this might take a while :coffee:\n\nFinally, add your plugin to the `GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS` in `./env.d/grafana`\n(it's a comma-separated list of plugin names) and restart Grafana:\n\n```bash\n$ make stop\n$ make run\n```\n\n### Working on plugins\n\nTo launch continuous build of your plugin, run:\n\n```bash\n$ ./bin/run-plugin potsie-my-new-awesome-plugin watch\n```\n\nNote: the `run-plugin` script wraps the usual `npm run` commands and executes them\non the node development docker image.\nYou can replace the `watch` argument with any other script defined in your\nplugins package.json file.\n\nFinally, to view your changes on the plugin, create a new panel using the plugin\nin grafana and refresh the panel page in the browser.\n\n## Contributing\n\nThis project is intended to be community-driven, so please, do not hesitate to\nget in touch if you have any question related to our implementation or design\ndecisions.\n\nWe try to raise our code quality standards and expect contributors to follow\nthe recommandations from our\n[handbook](https://openfun.gitbooks.io/handbook/content).\n\n## License\n\nThis work is released under the MIT License (see [LICENSE](./LICENSE.md)).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fpotsie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfun%2Fpotsie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fpotsie/lists"}