Skip to content

Instantly share code, notes, and snippets.

@shubhamsgit
Last active August 27, 2023 13:39
Show Gist options
  • Save shubhamsgit/fa5e778aa06f77440373fe15208f6ee5 to your computer and use it in GitHub Desktop.
Save shubhamsgit/fa5e778aa06f77440373fe15208f6ee5 to your computer and use it in GitHub Desktop.

Google Summer of Code 2023 Final Work Submission Report

Project Information

Overview

The Project aims to develop and enhance the OpenMRS Android SDK. The OpenMRS Android SDK was developed with an idea to modularize and encapsulate certain tasks, features, or behaviors, making it easier for developers and implementers who are integrating OpenMRS functionalities into their apps without having to start from scratch.

Add OpenMRS as a dependency to your Android project Getting Started with OpenMRS Android SDK

Objectives

  • ☐ Fix existing bugs to prevent crashes in the App
  • ☐ Fix CI/CD Pipeline on GitHub
  • ☐ Add/Enhance Encounter functionality
  • ☐ Add/Enhance Observation functionality
  • ☐ Add/Enhance Visit functionality
  • ☐ Add Appointment Scheduling Feature
  • ☐ Add Orders Feature
  • ☐ Add Drugs Feature
  • ☐ Add Programs Feature
  • ☐ Add Unit tests for Encounter Repository
  • ☐ Add Unit tests for Observation Repository
  • ☐ Add Unit tests for Visit Repository
  • ☐ Add Unit tests for Orders Respository
  • ☐ Add Unit tests for Drugs Repository
  • ☐ Add Unit tests for Programs Repository
  • ☐ Migrate Java files to Kotlin

The initiative began with a thorough investigation and subsequent resolution of existing bugs that were causing the application to crash. This led to a notable enhancement in the stability and reliability of the application.

Building upon the bug-fixing phase, A robust CI/CD pipeline was established on the GitHub platform to facilitate automated testing and deployment for upcoming Pull Requests.

Recognizing the importance of comprehensive access to all the functionalities of a feature, more functionalities are added for improving the Observations, Encounters & Visits Repository. Any previously missing APIs were incorporated, thus enriching the developer experience.

A very important part of the project was the addition of four important features/functionalities to the SDK namely Appointment Scheduling, Orders, Drugs, and Programs. Planned, built, and added these features to the SDK. This made the application more useful and flexible for everyone who uses it.

Since there was a requirement to test the newly added functionalites and features of the SDK and to test every feature in the demo application is not feasible, Unit tests were added for all the major repositories. Each newly integrated component and feature underwent meticulous testing to validate its functionality and behavior. This approach ensured that the code additions were robust and met the expected standards.

Contributions

  • Initial Bug Fixes

JIRA Issue Raised PR Link
AC-1068 openmrs/openmrs-contrib-android-client#986
AC-1070 openmrs/openmrs-contrib-android-client#988
  • New Feature Additions

JIRA Issue Raised PR Link
AC-1080 openmrs/openmrs-contrib-android-client#1000
AC-1082 openmrs/openmrs-contrib-android-client#1002
AC-1093 openmrs/openmrs-contrib-android-client#1011
AC-1094 openmrs/openmrs-contrib-android-client#1012
  • AddOn APIs for existing features

JIRA Issue Raised PR Link
AC-1072 openmrs/openmrs-contrib-android-client#987
AC-1077 openmrs/openmrs-contrib-android-client#997
AC-1079 openmrs/openmrs-contrib-android-client#999
  • Unit Testing

JIRA Issue Raised PR Link
AC-1089 openmrs/openmrs-contrib-android-client#1005
AC-1090 openmrs/openmrs-contrib-android-client#1008
AC-1091 openmrs/openmrs-contrib-android-client#1009
AC-1092 openmrs/openmrs-contrib-android-client#1010
AC-1107 openmrs/openmrs-contrib-android-client#1026
AC-1108 openmrs/openmrs-contrib-android-client#1027
  • Java to Kotlin Migration

JIRA Issue Raised PR Link
AC-1073 openmrs/openmrs-contrib-android-client#989
AC-1074 openmrs/openmrs-contrib-android-client#990
AC-1078 openmrs/openmrs-contrib-android-client#998
AC-1081 openmrs/openmrs-contrib-android-client#1001
AC-1073 openmrs/openmrs-contrib-android-client#1014
AC-1097 openmrs/openmrs-contrib-android-client#1015
AC-1096 openmrs/openmrs-contrib-android-client#1016
AC-1098 openmrs/openmrs-contrib-android-client#1017
AC-1099 openmrs/openmrs-contrib-android-client#1018
AC-1100 openmrs/openmrs-contrib-android-client#1019
AC-1101 openmrs/openmrs-contrib-android-client#1020
AC-1102 openmrs/openmrs-contrib-android-client#1021
AC-1104 openmrs/openmrs-contrib-android-client#1023
AC-1106 openmrs/openmrs-contrib-android-client#1024
AC-1105 openmrs/openmrs-contrib-android-client#1025
AC-1107 openmrs/openmrs-contrib-android-client#1026
AC-1108 openmrs/openmrs-contrib-android-client#1027
  • CI/CD Pipeline

JIRA Issue Raised PR Link
AC-1075 openmrs/openmrs-contrib-android-client#991
AC-1095 openmrs/openmrs-contrib-android-client#1013
AC-1103 openmrs/openmrs-contrib-android-client#1022

Weekly Blog Posts

Future Works

  1. Addition of more modules to the Android SDK of OpenMRS.
  2. Migration of Whole codebase to Kotlin.
  3. Add the newly added features and APIs to the demo app
  4. Work closely with any Implementer to get the client customized and deployed.

Thoughts on GSoC

Thoughts on Google Summer of Code (GSoC)

Participating in this year's Google Summer of Code program has been an incredible experience. GSoC and OpenMRS provided me with a unique opportunity to collaborate on real-world projects, enhance my coding skills, and work within an active open-source community. It's been a journey filled with learning, challenges, and growth.

One of the things that stood out to me during GSoC was the chance to work on projects that have a tangible impact. The projects I contributed to weren't just theoretical exercises – they were meaningful solutions to actual problems. This hands-on experience allowed me to see the direct results of my efforts, which was both motivating and rewarding.

Throughout the program, I encountered various challenges that tested my skills and problem-solving abilities. These challenges sometimes felt daunting, but they were essential for my growth. Overcoming them not only improved my technical prowess but also boosted my confidence in tackling complex issues.

Looking ahead, GSoC has ignited my passion for open-source contribution. The experience has shown me the power of collaborative coding and how my work can impact a larger community. I'm eager to continue contributing to the projects I've been involved with and explore new opportunities in the world of open-source software.

In conclusion, GSoC has been an enriching and transformative experience. It has deepened my technical skills, introduced me to an amazing community, and instilled in me a sense of purpose in the world of software development. I am grateful for the chance to have been a part of this program and am excited about the journey ahead as I continue to grow as a developer.

THANKS TO MY MENTOR RISHABH AGARWAL. YOU ARE A GEM!

THANKS TO ALL THE PEOPLE OF OpenMRS.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment