GSoC 2023 - Android SDK v1.1.1 - Final Presentation

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.

Video Presentation

Contributions

  • Initial Bug Fixes

  • New Feature Additions

  • AddOn APIs for existing features

  • Unit Testing

  • Java to Kotlin Migration

  • CI/CD Pipeline

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

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 Android SDK of OpenMRS.

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.

@rishabh997 Can’t Thank you enough for all the support and guidance you provided me. Without a second thought you are a great person and best mentor one can ask for :heart:

@jwnasambu @dkayiwa @jayasanka @kdaud @abertnamanya Thanks for all the help!

2 Likes

@elonshubham I consent with you :100: on the above. Otherwise, congratulation on the milestone.

1 Like