mVax is an Android mobile application for managing a medical records database that stores immunization records for Clínica Esperanza in Roatán, Honduras.
mVax is configured to use Firebase for storing and retrieving data. The application currently supports concurrent creation and editing of patient record and immunization data, notifications for patients with overdue vaccine appointments, data aggregation and export for use with the Honduran SINOVA 1 and 2 forms, multiple language support, and basic user account management. Future plans include support for macro visualization of immunization progress and goals along with full functionality when establishing a connection to the Firebase server is not possible.
Currently, this repository is configured to point to the Firebase instance for Clínica Esperanza. Follow the instructions in SETUP.md for configuring mVax with a new database.
Minimum SDK: Android 7.0 Nougat, Android API Level 24
Target and Compile SDK: Android 8.0 Oreo, Android API Level 27
mVax can run on any Android device running at least Android 7.0 Nougat with Android API Level 24 or greater. However, mVax has only been extensively tested on the 9.7-inch Samsung Galaxy Tab S3 running Android 8.0 Nougat with Android API level 26, since this is the device with which it will be deployed at Clínica Esperanza.
- First, clone the repository:
git clone git@coursework.cs.duke.edu:CompSci408_2017Fall/app_vaccination.git
- Open the project in Android Studio
Note: mVax is optimized for an 9.7 inch screen, and was developed specifically for the Galaxy Tab S3.
- In the menu bar, click
Tools→Android→AVD Manager - Click
Create Virtual Device...and thenImport Hardware Profiles - Navigate to the
hardware_profilesfolder in the root directory and importGalaxy Tab S3.xml - Select
Galaxy Tab S3in the device definition list and clickNext - Select
Oreowith API level 26; download the API if necessary and clickNext - Click
Next - Run the application. Select
Galaxy Tab S3 API 26underAvailable Virtual Devicesand clickOK
Note: The Android device API minimum is 24.
- Enable developer mode and USB Debugging on the device and connect via USB
- Run the application and select the device under
Connected Devices
You should create your own release key and key store. See this page for more information. Store your generated keystore in a safe location outside of the project repo.
- In the menu bar, click
Build→Generate Signed APK - Click
Nextand thenCreate new... - Fill in the necessary information and create the key store.
- Choose the export destination under
APK Destination Folder. Selectreleaseas the build type and choose which flavor should be used by the APK; selectV2as the signature version - Click
Finish
The signed .apk file can now be downloaded to any Android device (i.e. via email) and run as an application. It may be necessary to enable "Unknown sources" in the device's security settings so that apps can be installed from sources other than the Play Store.
mVax is dependent on the following external libraries:
- Hamcrest (JUnit testing utilities)
- Firebase (database)
- Joda-Time (enhanced data structure for dates)
- Algolia (search engine)
- GmailBackground (sending auth-related background emails)
- MaterialDateTimePicker (date picker modals)
- MaterialCalendarView (alerts page calendar)
- KeyboardVisibilityEvent (scrolling auth page on input focus events)