/calendula

An Android assistant for personal medication management

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Calendula

Calendula is an Android assistant for personal medication management, aimed at those who have trouble following their medication regimen, forget to take their drugs, or have complex schedules that are difficult to remember.

The app is available for download in Google Play, F-Droid and Github.

Get it on Google Play Get it on F-Droid Get it on Github

Visit our web page for more info https://citius.usc.es/calendula/

Calendula News

We have some good news!

Our Regional Public Health Authority (SERGAS) has adopted Calendula to be connected with its Electronic Prescription System, resulting in the extension of previous features from the open source version, to include:

  • Automatic download of the patient medication regime.
  • Access to the medication pickup calendar
  • Automatic recommendation of the best dates to optimize the number of visits to pharmacy
  • Acess to the anticoagulant dosing regime.

The integration process has faced two key issues: interoperability and security.

With regard to the first one, the adoption of the international standard HL7-FHIR (Fast Healthcare Interoperability Resources) will smooth the way for an easy deployment in other healthcare systems.

Regarding security, the OpenID Connect specification has been adopted, allowing Calendula to verify the identity of users based on an authentication performed by an authorization server provided by SERGAS.

Along the way, we have worked on a lot of bug fixes and feature improvements, including:

  • Increase Android API Level to level 29.
  • Update notifications and background services to the latest Android versions.
  • Update Gradle, Kotlin and Java versions.
  • Migrate Android libraries to AndroidX.
  • Update the following libraries: Google, Iconics, Material-Drawer, Fast Adapter, ButterKnife, Caldroid and Android Jobs.
  • Improve the UI to fix update problems and NPEs.
  • Localization updates: new languages will be included and updates will be provided for existing ones.
  • Memory performance updates: bitmaps will be migrated to vectorial formats.
  • Fixes regarding notifications and battery saving mode: added the option to exclude Calendula from battery saving mode, to avoid Calendula to be suspended, and thus still be able to get notifications all the time.
  • Other minor bug fixes.

These will soon be made available in this repository and applied to the version in Google Play. Stay tuned!

Getting Started

These instructions will get you a copy of the project up and running on your local machine ready for development. If you want to help developing the app take a look to the contributing section, at the end.

Development environment setup

We use Android Studio (the official Android IDE) for development, so we recommend it as the IDE to use in your development environment. Once you install Android Studio, you can use the Android SDK Manager to obtain the SDK tools, platforms, and other components you will need to start developing. The most important are:

  • Android SDK Tools and Android SDK Platform-tools (upgrade to their last versions is usually a good idea).
  • Android SDK Build-Tools 27.0.3.
  • Android 8.1 (API Level 27) SDK Platform.
  • Android Support Repository

You can also install other packages like emulators for running the app, if you don't have or don't want to use a real device. The minimum supported Android version is 4.1, Jelly Bean (API level 16).

Building and installing the app

First of all you need to get the source code, so clone this repository on your local machine:

git clone https://github.com/citiususc/calendula.git
cd calendula

Android Studio uses Gradle as the foundation of the build system, but it's not necessary to install it separately. Instead, you can use the included Gradle Wrapper. To build the app, open a terminal in the repository folder and run:

./gradlew clean assembleDevelopDebug

Note: "developDebug" is the build variant that we use for development. To see other variants, please check Calendula/build.gradle.

Then you may install the app on a device or emulator:

adb install Calendula/build/apk/develop/debug/developDebug-[version].apk

These tasks can also be executed from Android Studio with a few clicks.

App versions

We maintain releases of Calendula on Google Play, F-Droid and here on Github.

  • The latest version of the app available on those pages reflects the code of the master branch.
  • Release branches are usually deployed through the Google Play BETA channel before they are made available to everyone. If you want to be a member of the testing community, join the testing group on Google Groups, and you will automatically receive the updates from the BETA channel like normal updates from Google Play.

Join the BETA channel: click here!

Check out the contributing guidelines for more info about the branching model.

How does it look?

We try to follow Material Design principles. Take a look at the result!

Future work

We have a lot of development ideas, and we are open to newer ones. Below are some interesting features that could be very useful:

  • Information about nearby pharmacies, their locations and timetables
  • Trip assistant (how many pills I need for this weekend?)
  • Introducing gamification concepts to improve adherence.

Artwork attribution

We are using the the following resources in the app:

Contributing

Feel free to fork and send a pull request if you want to contribute to this project! Notice that Calendula is licensed under the terms of the GNU General Public License (v3), so by submitting content to the Calendula repository, you release your work under the terms of this license.

Before starting, take a look at our contribution guidelines.

I would like to contribute, but I'm not a developer...

If you're not a developer but you want to help, don't worry! You can help with app translations, by joining the BETA group, and much more! Everyone is welcome!

License

Copyright 2020 CITIUS - USC

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.