A dashboard for visualization of personal health data.
Supports:
- metrics for quantitative measurements. You can use metrics for anything you want, like blood tests, mood tracking, poop tracking, water consumption, urine tests, whathever you would like to visualize.
- annotations for medical history (medicines, treatments, surgeries etc)
This project consists of:
- a Grafana instance, to visualize your metrics data
- an HTTP API that will serve your data to Grafana and will configure itself as a datasource for Grafana, and will create your dashboards from your dashboard data
- your data (in a separate repository that is cloned inside this one) as JSON and/or JavaScript files
- configs to glue everything together
This requires docker-compose
installed.
git clone git@github.com:rafaeleyng/health-dashboard.git && cd health-dashboard
# create your data repository and clone it instead of the example repo bellow
git clone git@github.com:rafaeleyng/health-dashboard-example-data.git data
make start
# open http://localhost:3000
Click on "Home" at the top to find the created dashboard(s):
This dashboard is meant to run locally only (because it is not properly secured). Do not deploy it at any public address.
To stop your instance, run:
make stop
You can also run it in watch mode while creating your personal data repository, so you can see new data added on your data files just by refreshing the Grafana queries:
make watch
By default, health-dashboard
runs with dummy data from an example repository.
As stated in the previous section, your should create your own (private!) repository to keep your medical data and clone it as the data
folder inside the health-dashboard
project.
Refer to https://github.com/rafaeleyng/health-dashboard-example-data as a guideline of how your data repository should look like.
You can create a .env
file at the root of this project containing the variables:
API_TZ=America/Sao_Paulo # [optional, default is GMT] the timezone you are expressing your metric dates in
GIT_SYNC_USERNAME=<your username>
GIT_SYNC_PASSWORD=<a personal access token>
GIT_SYNC_REPO=<your health data repo>