# Дневник здоровья (HealthDiary)![логотип](./media/launch_icon.png)

## Несколько скринов программы:
<img src="./media/screen1.png" width="256"> <img src="./media/screen2.png" width="256"> <img src="./media/screen3.png" width="256">

Дневник для сохранения измерений важных показателей здоровья.<BR>
Многопользовательское приложение, которое позволяет сохранять основные показатели здоровья человека.
К таким показателям относятся:
+ температура
+ давление
+ пульс
+ сахар в крови
+ сатурация 
и другие

## Основные возможности:
+ личный кабинет пользователя
+ создание списка наблюдаемых (профилей), людей для которых сохраняются показатели (измерения)
+ создание общих профилей для нескольких пользователей
+ ввод/изменение выбранного измерения
+ просмотр раннее введенных измерений списком и на графике

## Арихитектурное решение:
+ многомодульное приложение с "чистой архитектурой" внутри каждого модуля
+ единственным источником правды (SSOT) выступает локальная SQLite БД с использованием Room
+ подключен статический анализатор кода [Detekt](https://github.com/detekt/detekt)
+ для подсчета покрытия кода тестами подключен плагин на основе [JaCoCo](https://github.com/jacoco/jacoco)
+ написаны модульные и инструментальные тесты на примере ТОЛЬКО одного модуля (фичи)
+ написаны для демонстрации несколько собственных правил для Lint
+ добавлен CI скрипт для [Jenkins](https://www.jenkins.io/)

## Стек технологий:
+ Kotlin
+ Dagger 2
+ MVVM
+ Coroutine
+ Android Navigation
+ Architecture Components (Room для локального кеша данных)
+ Retrofit

## Серверная часть:
+ Django
+ DRF (Django REST Framework)
+ SQLite (используется на этапе разработки, т.к. ORM то потом можно выбрать MySQL или Postrges)

## Список экранов:
+ Регистрация/авторизация пользователя
+ Предоставление доступа одним пользователям к профилям других
+ Настройки типов измерений
+ Добавить/редактировать измерение
+ Просмотр измерений списком/графиком
