Sen descrición

MrOzOn fd50af530d Update README.ru.md %!s(int64=4) %!d(string=hai) anos
app 5be4806436 refactoring code - remove theme and icon launcher in utils module for share %!s(int64=4) %!d(string=hai) anos
config 08552009e6 add library lent_repo for lint rules %!s(int64=5) %!d(string=hai) anos
core 163cbf0a6e add baseline for detekt %!s(int64=5) %!d(string=hai) anos
core_api 77ea8d4fd9 Merge branch 'master' into add_module_measure %!s(int64=5) %!d(string=hai) anos
core_impl 77ea8d4fd9 Merge branch 'master' into add_module_measure %!s(int64=5) %!d(string=hai) anos
feature_auth 5cc45cdcd9 fix style in layout %!s(int64=4) %!d(string=hai) anos
feature_measure db088223e0 add ru-Ru locale %!s(int64=4) %!d(string=hai) anos
feature_measure_type db088223e0 add ru-Ru locale %!s(int64=4) %!d(string=hai) anos
feature_person 5ecb98e6f6 bugfix - calculate correct name age for ru-RU %!s(int64=4) %!d(string=hai) anos
feature_splash 5be4806436 refactoring code - remove theme and icon launcher in utils module for share %!s(int64=4) %!d(string=hai) anos
gradle 86192de15c create default android project %!s(int64=5) %!d(string=hai) anos
lint_repo 5aa2393d94 add check list with interesting tags name %!s(int64=5) %!d(string=hai) anos
media ccedd99f72 rename some media files %!s(int64=4) %!d(string=hai) anos
scripts c22189e860 create layout for edit measure %!s(int64=5) %!d(string=hai) anos
utils 5be4806436 refactoring code - remove theme and icon launcher in utils module for share %!s(int64=4) %!d(string=hai) anos
.gitignore 2220d4df4a refactoring deps_versions.gradle and build.gradle for feature_auth add espresso %!s(int64=5) %!d(string=hai) anos
Dockerfile 9e3bc6d0a7 add Dockerfile - custom image for CI, add java8 %!s(int64=5) %!d(string=hai) anos
Jenkinsfile 1a3bad6f21 change Jenkinsfile - tests stage now run consistently %!s(int64=5) %!d(string=hai) anos
README.md e69534aa3f Update README.md %!s(int64=4) %!d(string=hai) anos
README.ru.md fd50af530d Update README.ru.md %!s(int64=4) %!d(string=hai) anos
build.gradle 6383fd5938 add jacoco plugin for calculate code coverage %!s(int64=5) %!d(string=hai) anos
detekt-config.yml 163cbf0a6e add baseline for detekt %!s(int64=5) %!d(string=hai) anos
detekt.gradle 163cbf0a6e add baseline for detekt %!s(int64=5) %!d(string=hai) anos
gradle.properties 86192de15c create default android project %!s(int64=5) %!d(string=hai) anos
gradlew 86192de15c create default android project %!s(int64=5) %!d(string=hai) anos
gradlew.bat 86192de15c create default android project %!s(int64=5) %!d(string=hai) anos
jacoco.gradle 6383fd5938 add jacoco plugin for calculate code coverage %!s(int64=5) %!d(string=hai) anos
settings.gradle 1b44190ce7 add empty project folder for lint %!s(int64=5) %!d(string=hai) anos

README.md

HealthDiarylogo

Read this in other languages: English, Русский.

Screenshots:

Diary for saving measurements of important health indicators.
A multi-user application that allows you to save the main indicators of human health. Namely:

  • temperature
  • pressure
  • pulse
  • blood sugar
  • saturation and others

Key features:

  • user's personal account
  • creating a list of profiles, people for whom measurements are saved
  • creating common profiles for multiple users
  • enter/change the selected dimension
  • viewing previously entered measurements in the list

Architectural solution:

  • multi-module application with "clean architecture" inside each module
  • single source of truth (SSOT) is a local SQLite database using Room framework
  • using static code analyzer Detekt
  • using plugin for calculate code coverage based on JaCoCo
  • using unit and instrumental tests ONLY one module (feauture) for example
  • writing to demonstratesome custom rules for Lint
  • added CI script for Jenkins

Technology stack:

  • Kotlin
  • Dagger 2
  • MVVM
  • Coroutine
  • Android Navigation
  • Architecture Components (Room for local cache)
  • Retrofit

Backend:

  • Django
  • DRF (Django REST Framework)
  • SQLite (used at the development stage, then you can choose MySQL or Postrges)

Screen lists:

  • User registration/authorization
  • Granting access to one user to the profiles of others
  • Measurement type settings
  • Add/edit dimension
  • Viewing measurements in a list