Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ajbosco/statboard
Personal dashboard and metrics collector
https://github.com/ajbosco/statboard
dashboard go golang
Last synced: 22 days ago
JSON representation
Personal dashboard and metrics collector
- Host: GitHub
- URL: https://github.com/ajbosco/statboard
- Owner: ajbosco
- Created: 2018-10-22T11:13:08.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-10T10:24:21.000Z (over 3 years ago)
- Last Synced: 2024-05-01T18:45:10.636Z (6 months ago)
- Topics: dashboard, go, golang
- Language: Go
- Homepage:
- Size: 2.81 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# statboard
[![Travis CI](https://img.shields.io/travis/ajbosco/statboard.svg?style=flat-square)](https://travis-ci.org/ajbosco/statboard)
[![Go Report Card](https://goreportcard.com/badge/github.com/ajbosco/statboard?style=flat-square)](https://goreportcard.com/report/github.com/ajbosco/statboard)Personal dashboard and metrics collector
- [Supported Metrics](#supported-metrics)
- [Components](#components)
- [Deployment](#deployment)
- [Setup](#setup)
* [Configuration](#configuration)
* [Environment Variables](#environment-variables)![screenshot](/img/screenshot_v1.png)
### Supported Metrics
* [Github](https://developer.github.com/v3/) Contributions
* [Fitbit](https://dev.fitbit.com/build/reference/web-api/) Steps
* [Goodreads](https://www.goodreads.com/api) Books Read
* [Goodreads](https://www.goodreads.com/api) Pages Read### Components
`collector` - an application that parses data from a number of APIs, aggregates it into monthly metrics, and stores the results in the `store`
`reporter` - a http service that reads data from `store`, generates [chart.js](https://www.chartjs.org/) charts, and serves a dashboard
`store` - data is stored in [BoltDB](https://github.com/etcd-io/bbolt) using [Storm](https://github.com/asdine/storm)
### Deployment
This project is intended to be deployed via Docker with two containers (`collector` and `reporter`) and a shared volume for the backing database. The the `collector` application should be a scheduled job such as a [CronJob](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/) in Kubernetes.
### Setup
#### Configuration
Populate a configuration yaml file ([example](/config.example.yml)) with the credentials required for the metrics you are interested in collecting.
* Goodreads - create a Developer Key [here](https://www.goodreads.com/api/keys)
* Fitbit - register your application [here](https://dev.fitbit.com/apps/new)
* Github - create a Personal Token [here](https://github.com/settings/tokens)#### Environment Variables
Statboard requires two environment variables to be set:
* `STATBOARD_CONFIGFILEPATH` - path to your yaml configuration file described above
* `STATBOARD_DBFILEPATH` - path to store `BoltDB` database file