Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Reportr/dashboard
Your life's personal dashboard.
https://github.com/Reportr/dashboard
Last synced: about 1 month ago
JSON representation
Your life's personal dashboard.
- Host: GitHub
- URL: https://github.com/Reportr/dashboard
- Owner: Reportr
- License: apache-2.0
- Archived: true
- Created: 2013-10-06T10:01:47.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-10-21T03:18:50.000Z (about 9 years ago)
- Last Synced: 2024-04-26T07:41:47.183Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 5.3 MB
- Stars: 2,556
- Watchers: 111
- Forks: 237
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-repos - Reportr/dashboard - Your life's personal dashboard. (JavaScript)
- awesome-starred - Reportr/dashboard - Your life's personal dashboard. (others)
README
Reportr
=========> "Your life's personal dashboard."
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)
Reportr is a complete application which works like a dashboard for tracking events in your life (using a very simple API). With a simple interface, it helps you track and display your online activity or your real-life activity (with hardware trackers or applications like Runkeeper), some trackers are available on [this organization](https://github.com/Reportr).
The project is entirely open source and you can host your own Reportr instance on your own server or Heroku.
[![Screen Preview](./preview.png)](./preview.png)
## Start your instance
Reportr is really easy to run locally or on heroku-compatible services.
```
$ git clone https://github.com/Reportr/dashboard.git
$ npm install .
```To run it locally, you should use [foreman](http://ddollar.github.io/foreman/) (configuration can be stored in a [.env file](https://devcenter.heroku.com/articles/config-vars#local-setup)):
```
$ foreman start
```To deploy it on Heroku:
```
$ heroku config:set MONGODB_URL=mongodb://...
$ heroku config:set AUTH_USERNAME=...
$ heroku config:set AUTH_PASSWORD=...
$ git push heroku master
```## API and Events
Reportr uses an HTTP REST API to track events. Datas are always JSON encoded.
| Endpoint | HTTP Method | Description | Arguments |
| -------- | ----------- | ----------- | --------- |
| /api/infos | GET | Get informations about this instance | |
| /api/types | GET | Return all event types | |
| /api/events | POST | Post a new event | `type`, `properties` |
| /api/events | GET | List all events | `type`, `start(0)`, `limit` |
| /api/stats/categories | GET | Get categorized events stats | `type`,`field` |
| /api/stats/time | GET | Get time stats | `type`,`fields`, `interval`, `func` |
| /api/reports | POST | Create a new report | `title` |
| /api/reports | GET | List all reports | |
| /api/report/:id | PUT | Update a report | `title`, `visualizations` |
| /api/report/:id | DELETE | Remove a report | |
| /api/alerts | GET | List all alerts | |
| /api/alerts | POST | Create an alert | `type`, `eventName`, `condition`, `title` |#### Special Events
| Name | Description | Properties |
| ---- | ----------- | ---------- |
| reportr.alert | Triggered when an alert is triggered | `type`, `eventName` |## Configuration
Reportr is configured using environment variables.
| Name | Description |
| ---- | ----------- |
| PORT | Port for running the application, default is 5000 |
| MONGODB_URL | Url for the mongoDB database |
| REDIS_URL | (Optional) Url for a redis database when using worker mode |
| AUTH_USERNAME | Username for authentication |
| AUTH_PASSWORD | Password for authentication |See [types](#types) for informations about alert configurations.
## Events
An event represent something to monitor at a defined date. For example if I'm monitoring the temperature in my home, I'll post an event `home.temperature` with a property `temp`:
```
$ curl -X POST -H "Content-Type: application/json" --data '{ "type":"home.temperature", "properties": { "temperature": 66 } }' http://localhost:5000/api/events
```## Visualizations
A visualization is a configured way to show data, for example in a pie, bar chart or time graph.
#### Types
| Type | Description |
| ---- | ----------- |#### Templates
Visualizations accept templates as most of rendering options. Template are processed using [lodash's _.template method](http://lodash.com/docs#template) with some special functions:
- `$.date(date)`: returns a beautiful date
## Alerts
Reportr lets you configure alerts to be triggered when specific condition is valid at a specific interval.
#### Types
| Type | Description | Configuration |
| ---- | ----------- | ------------- |
| webhook | Post an HTTP request to a specific url with the data encoded in the body | |
| mail | Send an email notification | `MAIL_SERVICE`, `MAIL_USERNAME`, `MAIL_PASSWORD`, `MAIL_FROM` |
| sms | Send a text message notification | `TWILIO_SID`, `TWILIO_TOKEN`, `TWILIO_FROM` |#### Condition
Condition for alerts are really easy to write, for example: `COUNT > 9`, this condition will be valid if at least 10 events have been posted in the alert interval. Conditions can also use the event object, for example: `event.temperature > 80`.
## Trackers
| Description | Link |
| ---- | ----------- |
| Google Chrome Navigation | https://github.com/Reportr/tracker-googlechrome |
| Home ambient (temperature, humidity, light) | https://github.com/Reportr/tracker-home-ambient |
| Memory and CPU of computer | https://github.com/Reportr/tracker-machine |
| Battery data | https://github.com/hughrawlinson/tracker-machine-battery |## Scale it
Reportr can easily be scaled on Heroku (and compatibles), use the `REDIS_URL` to enable a task queue between **workers** and **web** processes.