Mentors:
Student: @deepak140596
Overview
This project solely targets the development of the OpenMRS Android Client. It aims to add new features, fix bugs and improve the UI and performance of the app.
One of the biggest feature that was added was the Provider module. The Provider relationships still needs to be worked upon. Material design was followed as much as it could be, Settings page has be enhanced, Privacy Policy has been added.
The app now has a Dark Mode to save us from eye strain. Test cases were added for all Presenters and also earlier failing test cases were improved.
Apart from these changes, various bugs have been fixed.
Some of the remaining tasks that still need to be done are the Forgot Password option and Provider relationship module. The Forgot Password was met with a blocker as its testing hugely depended upon one of the GSoC â19 tasks.
Objectives
The objectives of this project are as follows:
- Provider Module (CRUD Providers, Provider relationships)
- Visual Improvements (Material design, Dark mode)
- Improving Performance (Bug fixes, fixing crashes and lags etc)
- Backend Improvements (Adding Room DB, Kotlin, etc)
- Forgot Password (Security)
Presentations
Final Presentation
Mid-term Presentation
UI Enhancements
Implemented Dark Mode
AC-551: Implement Dark Mode (Experimental)
Updating UI
AC-620: Make UI more consistent
Revamp Settings Page
Added Expandable FAB
AC-621:Add Floating Action Button in patientâs Details tab
Change Tint of Dashboard Icons
AC-627: Change ImageView color depending upon theme
Using TextInputLayout with Outlined Box theme for inputs
AC-539 Added Outlined Box in Patient Info Form
Adding Material Design to Buttons
AC-592: Buttons should follow Material design guideline
Feature Addition
Provider Module
AC-402: Provider Module â Fetch Providers
AC-622: Add, Edit,Delete Providers
AC-625: Find Matching Providers
AC-626: Add Provider Dashboard
Adding Privacy Policy to the Android App
AC-579: Added Privacy Policy link to Settings page
Re-developing OpenMRSLogger
AC-544: Added AsyncTask for saving log messages to the file.
Adding Kotlin
AC-602: Added Kotlin dependency to app level build.gradle file
Updating Gradle
AC-609: Change Gradle to latest version
Updated Project Structure
AC-613: Change file structure to match play-publisherâs conventions
Making Search Primary Function
AC-611: Make Search primary function for Find Patients
Bug Fixes
Fixed the bug that showed âFailed to resolve ${project.groupId}
AC-581: Failed to resolve variable ${project.groupId}
Fixed Privacy Policy not opening on click
AC-601: Clicking on Privacy Policy in settings opens the Privacy Policy
AC-605: Add release folder to gitignore
Fixed initialisation of SQLCipher
AC-606: Cannot Initailize SQLCipher
Fixed GPP
AC-613: Job âgenerateReleasePlayResourcesâ failed
AC-607: Replace Apache HTTP API Client library
Fixed Window leakage error
AC-619: Fix window leakage error while viewing patient details
Documentation
Update Readme file
AC-629: Updated Readme.md file
Adding Release notes
TODO
Provider Dashboard
The blocker while implementing this was that the APIs havenât been documented.
Forgot Password
The Pull Request shows the implementation.
Meanwhile testing is left which can be easily done once the WebApp is configured with the Forgot Password option.
Blogs
The blogs describe the work done in detail.
Resources
The Talk posts are as follows
GSOC 2019: OpenMRS Android Client 2.8+
JIRA issue tracker shows my account as [X] Inactive
GSoC 2019 : OpenMRS Android Client v2.8+ Mid-term evalutions
Testing Password Reset on Android Client
Can anyone point me to the code for Implementation of Provider Module in the Web App
Password Reset for Android Client
GSOC 2019: Identify disease outbreaks and Alert the Providers
A second test Email and Password
Future Works
A lot of work needs to be done to improve the Android Client.
- Adding Provider relationships module
- Testing the Forgot Password
- Adding Room DB
- Appointment module
- Chart search
Many more modules needs to be added to the Android client in future so that people can freely use the Mobile platform. Currently due to limited features on the Mobile platform, many operations cannot be performed on it.
Thoughts on GSoC
GSoC was one of the best experiences that I ever had. There was an immense amount of knowledge to be gained and it taught me how great minds from different part of the world work to make a product alive.
Thanks to my mentors who always came to my rescue and guided me throughout the journey. My coding standards has greatly improved and my experience with Android has been great.
Also GSoC has helped me to grab a very good job opportunity at a Startup. Being from a Tier-3 college in India, it has definitely helped me reach heights that I couldnât had ever imagined.
I am also open to volunteer as a Mentor for GSoC 2020.