Readme.md 3.64 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<h1 align="center">
<a href="https://bvlj.github.io/projects/diab.html">
  <img src="fastlane/metadata/android/en-US/images/featureGraphic.png"/>
</a>
</h1>

<p align="center">
<a href="https://gitlab.com/bvlj/diab/pipelines"><img src="https://gitlab.com/bvlj/diab/badges/staging/build.svg" alt="Gitlab Pipeline"></a>
<a href="https://circleci.com/gh/bvlj/diab/tree/staging"><img src="https://circleci.com/gh/bvlj/diab/tree/staging.svg?style=svg" alt="CircleCI"></a>
<a href="https://codeclimate.com/github/bvlj/diab/maintainability"><img src="https://api.codeclimate.com/v1/badges/017008168f8e5910c7c2/maintainability" alt="Maintainability"></a>
<a href="https://ktlint.github.io/"><img src="https://img.shields.io/badge/code%20style-%E2%9D%A4-FF4081.svg" alt="ktlint"></a>
</p>

<p align="center">
Joey's avatar
Joey committed
15
<b>Diab</b> is a smart opensource application that helps you managing your diabetes by
Joey's avatar
Joey committed
16
keeping track of your glucose values and insulin injections.
17
</p>
Joey's avatar
Joey committed
18

Joey's avatar
Joey committed
19 20
[<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="80">](https://f-droid.org/app/it.diab)

Joey's avatar
Joey committed
21 22 23 24 25 26
Using the data registered inside the app it's possible to generate a
customized plugin that once applied to the app will provide smart insights
for insulin dosages based on real-time context.

It's also possible to integrate the app with other fitness services to share
the data.
Joey's avatar
Joey committed
27

Joey's avatar
Joey committed
28
## Features
Joey's avatar
Joey committed
29

Joey's avatar
Joey committed
30 31
* Save records of glucose and insulin dosages
* Insulin suggestions plugin
Joey's avatar
Joey committed
32
* Export records as Excel file
33
* Reminder for checking again in case of hypoglycemia
Joey's avatar
Joey committed
34 35 36
* [optional] Google Fit integration

For upcoming features, see the [bug tracker](https://github.com/bvlj/diab/issues).
Joey's avatar
Joey committed
37

Joey's avatar
Joey committed
38 39 40
## Open source

### License
Joey's avatar
Joey committed
41

Joey's avatar
Joey committed
42 43
Released under the [GNU GPLv3](https://www.gnu.org/licenses/gpl-3.0.txt).

Joey's avatar
Joey committed
44
### Working with the repository
Joey's avatar
Joey committed
45

Joey's avatar
Joey committed
46
Clone the repository with git
Joey's avatar
Joey committed
47

Joey's avatar
Joey committed
48
```shell
Joey's avatar
Joey committed
49
git clone https://github.com/bvlj/diab
Joey's avatar
Joey committed
50 51
```

Joey's avatar
Joey committed
52
Setup the work environment
Joey's avatar
Joey committed
53

Joey's avatar
Joey committed
54 55 56
* Install git pre-push hooks (all the tests must pass before pushing to master)
* Install [ktlint](https://ktlint.github.io) (enforces code style guidelines)
* Prevent git from tracking changes to your trained plugin models
Joey's avatar
Joey committed
57

Joey's avatar
Joey committed
58
```shell
Joey's avatar
Joey committed
59
./_scripts/setup.sh
Joey's avatar
Joey committed
60 61
```

Joey's avatar
Joey committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
### Compile

The builds can be compiled using [gradle](https://gradle.org/).
The following build variants are available:

1. `oss`
2.  `googleFit`

#### oss builds

Builds the app without any fitness services integration.
The output is composed of 100% open source code.

```shell
./gradlew assembleOssRelease
```

#### googleFit builds

Builds the app with (optional) Google Fit integration.
The output includes proprietary libraries from Google used for Fit.

```shell
./gradlew assembleGoogleFitRelease
```

## Insulin suggestions plugin

> :warning: This feature could be dangerous, use with extreme caution. :warning:
>
> **DO NOT** blindly rely on it as while it's efficient enough for
> providing hints, it's NOT supposed to replace medical advices
> or suggestions from more-experienced humans.
>
> The developer and contributors disclaim any responsibility over any
> form of injury derived from (mis)usage of this feature.

The insulin suggestion plugin allows the app to provide smart insulin
dosage hints.

The plugin is created by using a machine-learning model created with data from
the app which is tested against a wide set of possible scenarios.

Given the strictly sensitive and personal nature of dealt with data, no plugin
is bundled with the app, nor made available for download.

### Build your own suggestion plugin

To create your customized insulin suggestions plugins using ml, see the
Joey's avatar
Joey committed
111
[readme found in the `ml` module](_ml/Readme.md).
Joey's avatar
Joey committed
112

Joey's avatar
Joey committed
113
It's also possible to build a plugin manually, but no documentation is available for the time being.