{"id":13500768,"url":"https://github.com/Reportr/dashboard","last_synced_at":"2025-03-29T07:31:37.360Z","repository":{"id":11028605,"uuid":"13360219","full_name":"Reportr/dashboard","owner":"Reportr","description":"Your life's personal dashboard.","archived":true,"fork":false,"pushed_at":"2015-10-21T03:18:50.000Z","size":5553,"stargazers_count":2556,"open_issues_count":13,"forks_count":237,"subscribers_count":111,"default_branch":"master","last_synced_at":"2024-04-26T07:41:47.183Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Reportr.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}},"created_at":"2013-10-06T10:01:47.000Z","updated_at":"2024-04-25T16:05:25.000Z","dependencies_parsed_at":"2022-09-02T19:51:07.556Z","dependency_job_id":null,"html_url":"https://github.com/Reportr/dashboard","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reportr%2Fdashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reportr%2Fdashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reportr%2Fdashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Reportr%2Fdashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Reportr","download_url":"https://codeload.github.com/Reportr/dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246155994,"owners_count":20732355,"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":[],"created_at":"2024-07-31T22:01:13.407Z","updated_at":"2025-03-29T07:31:36.276Z","avatar_url":"https://github.com/Reportr.png","language":"JavaScript","readme":"Reportr\n=========\n\n\u003e \"Your life's personal dashboard.\"\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)\n\nReportr 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).\n\nThe project is entirely open source and you can host your own Reportr instance on your own server or Heroku. \n\n[![Screen Preview](./preview.png)](./preview.png)\n\n## Start your instance\n\nReportr is really easy to run locally or on heroku-compatible services.\n\n```\n$ git clone https://github.com/Reportr/dashboard.git\n$ npm install .\n```\n\nTo 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)):\n\n```\n$ foreman start\n```\n\nTo deploy it on Heroku:\n\n```\n$ heroku config:set MONGODB_URL=mongodb://...\n$ heroku config:set AUTH_USERNAME=...\n$ heroku config:set AUTH_PASSWORD=...\n$ git push heroku master\n```\n\n## API and Events\n\nReportr uses an HTTP REST API to track events. Datas are always JSON encoded.\n\n| Endpoint | HTTP Method | Description | Arguments |\n| -------- | ----------- | ----------- | --------- |\n| /api/infos | GET | Get informations about this instance |  |\n| /api/types | GET | Return all event types |  |\n| /api/events | POST | Post a new event | `\u003cstring\u003etype`, `\u003cobject\u003eproperties` |\n| /api/events | GET | List all events | `\u003cstring\u003etype`, `\u003cint\u003estart(0)`, `\u003cint\u003elimit` |\n| /api/stats/categories | GET | Get categorized events stats | `\u003cstring\u003etype`,`\u003cstring\u003efield` |\n| /api/stats/time | GET | Get time stats | `\u003cstring\u003etype`,`\u003cstring\u003efields`, `\u003cstring\u003einterval`, `\u003cstring\u003efunc` |\n| /api/reports | POST | Create a new report | `\u003cstring\u003etitle` |\n| /api/reports | GET | List all reports |  |\n| /api/report/:id | PUT | Update a report | `\u003cstring\u003etitle`, `\u003carray\u003evisualizations` |\n| /api/report/:id | DELETE | Remove a report |  |\n| /api/alerts | GET | List all alerts |  |\n| /api/alerts | POST | Create an alert | `\u003cstring\u003etype`, `\u003cstring\u003eeventName`, `\u003cstring\u003econdition`, `\u003cstring\u003etitle` |\n\n#### Special Events\n\n| Name | Description | Properties |\n| ---- | ----------- | ---------- |\n| reportr.alert | Triggered when an alert is triggered | `\u003cstring\u003etype`, `\u003cstring\u003eeventName` |\n\n\n## Configuration\n\nReportr is configured using environment variables.\n\n| Name | Description |\n| ---- | ----------- |\n| PORT | Port for running the application, default is 5000 |\n| MONGODB_URL | Url for the mongoDB database |\n| REDIS_URL | (Optional) Url for a redis database when using worker mode |\n| AUTH_USERNAME | Username for authentication |\n| AUTH_PASSWORD | Password for authentication |\n\nSee [types](#types) for informations about alert configurations.\n\n## Events\n\nAn 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`:\n\n```\n$ curl -X POST -H \"Content-Type: application/json\" --data '{ \"type\":\"home.temperature\", \"properties\": { \"temperature\": 66 } }' http://localhost:5000/api/events\n```\n\n## Visualizations\n\nA visualization is a configured way to show data, for example in a pie, bar chart or time graph.\n\n#### Types\n\n| Type | Description |\n| ---- | ----------- |\n\n#### Templates\n\nVisualizations accept templates as most of rendering options. Template are processed using [lodash's _.template method](http://lodash.com/docs#template) with some special functions:\n\n- `$.date(date)`: returns a beautiful date\n\n## Alerts\n\nReportr lets you configure alerts to be triggered when specific condition is valid at a specific interval.\n\n#### Types\n\n| Type | Description | Configuration |\n| ---- | ----------- | ------------- |\n| webhook | Post an HTTP request to a specific url with the data encoded in the body | |\n| mail | Send an email notification | `\u003cstring\u003eMAIL_SERVICE`, `\u003cstring\u003eMAIL_USERNAME`, `\u003cstring\u003eMAIL_PASSWORD`, `\u003cstring\u003eMAIL_FROM` |\n| sms | Send a text message notification | `\u003cstring\u003eTWILIO_SID`, `\u003cstring\u003eTWILIO_TOKEN`, `\u003cstring\u003eTWILIO_FROM` |\n\n#### Condition\n\nCondition for alerts are really easy to write, for example: `COUNT \u003e 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 \u003e 80`.\n\n## Trackers\n\n| Description | Link |\n| ---- | ----------- |\n| Google Chrome Navigation | https://github.com/Reportr/tracker-googlechrome |\n| Home ambient (temperature, humidity, light) | https://github.com/Reportr/tracker-home-ambient |\n| Memory and CPU of computer | https://github.com/Reportr/tracker-machine |\n| Battery data | https://github.com/hughrawlinson/tracker-machine-battery |\n\n## Scale it\n\nReportr can easily be scaled on Heroku (and compatibles), use the `REDIS_URL` to enable a task queue between **workers** and **web** processes.\n\n\n","funding_links":[],"categories":["JavaScript","📦 Legacy \u0026 Inactive Projects","others","个人仪表盘"],"sub_categories":["视频流"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FReportr%2Fdashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FReportr%2Fdashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FReportr%2Fdashboard/lists"}