Summer Of Code 2022

Write Code. Save Lives.

OpenMRS is excited to be a mentoring organization for Google Summer of Code™ 2022! Since 2007, we've enjoyed participating in this great program and we're extremely excited about the projects and mentorship opportunities available this year. Coding for OpenMRS is a great way to practice your coding skills and, at the same time, help benefit people in developing countries who are on the front lines of the battle against HIV/AIDS, TB, Malaria, and other public health challenges.

If you are new to OpenMRS, we recommend starting with our Guide to the New & Curious. It will introduce you to our community, the tools and spaces we use, and help you get to know the different squads and teams working on various community projects.

For a more detailed history of who we are and what we do, please see here.



On this page ....



Google Summer of Code at OpenMRS 
om.rs/gsoc

Learn more about Google Summer of Code 2022:
Google Summer of Code website

GSoC 2022 Program Administrators

@Jennifer Antilla

@Herbert Yiga

@Kakumirizi Daud 

@Grace Potma

Please see GSoC Admin Guidelines for more information.

Available Projects for GSoC 2022

This is a dynamic list of available projects for GSoC, with community members adding projects as they come up on Talk. If you have a new project idea that you'd like to explore, please share via this Talk thread and add it here.

Project Name & Outcome

Project Rating and Length

What this project is about

REQUIRED skills

Selected Student

Primary Mentor

Backup Mentor

Project Name & Outcome

Project Rating and Length

What this project is about

REQUIRED skills

Selected Student

Primary Mentor

Backup Mentor















Next Generation Implementer Tools for OpenMRS 3

Redesigned config tools for O3

Advanced

350 hours

Non-tech users can set up a 3.x EMR in a friendly, no-code UI, similar to designing a website. Empowers local team members to set up and config their EMR themselves. More detailed user stories and requirements documented here. Project plan documented here.

Scope: technical work on the redesigned config tools for O3.

*Design is done because Ampath/@jdick graciously contributed designs and user testing, sample designs, and @bistenes gave a lot of architectural and technical input but then had to set the project aside.

React

Javascript

Typescript



Brandon

Vineet

Responsiveness & Tablet-based Needs for OpenMRS 3

Priority frontend UX changes to improve responsiveness



*Cancelled due to mentor availability*

Medium

175 hours

We have a ton of designs for 3.x that show how the frontend UX should change based on screen size or device (e.g. large desktop, small laptop, or tablet). Much of this responsiveness still needs to be implemented consistently throughout the application.

Watch this video for more information.

React

Javascript

Typescript



JJ/Ampath

JJ/Ampath

Next Generation Form Builder UI for the OpenMRS Community

Ampath Form Builder replaced with a React based module

Medium

175 hours

We could continue to use existing Ampath Forms Engine but replace the Ampath Form Builder with a react based module (instead of the angular one).

The Ampath Form Builder UI is pretty easy to use and build forms quickly, but it’s buggy and could be so much better.

(Demo of the current WYSIWYG user experience of this builder here: OpenMRS WYSIWYG Form Builder Demo - YouTube 1)

React

Javascript

Typescript

@Kumuditha Karunarathna 

@Samuel Male 

@Donald Kibet 

Redo Legacy UI Cohort Builder 

Re-do  legacy ui cohort builder in 3.x

Medium

175 hours

In addition to supporting all current functionality, would also like to be able to save a search history (UI there in legacy but never implemented). Add ability to update an existing cohort based on a scheduled run of a search history.

React

Javascript

Typescript

@Anjula Samarasinghe 

@Brandon Istenes 

@Jayasanka Weerasinghe 

Improving 3.x E2E Tests

3.x E2E automated tests written and ready for use

Medium

175 hours

Current tests are less reliable because they are not very stable. Sometimes they pass, but there is still a chance that they will fail. Also, tests suddenly start to fail when there are new changes in the implementation. We need to look into ways to improve the reliability of tests.

Run tests against Pull requests

Currently, we don’t have a mechanism for running tests against Pull requests. As a result, no failures can be detected until the changes are merged and someone run the tests manually. It makes it difficult to detect root courses as well as to engage developers. We need a proper way to run these tests against the changes in pull requests.

Improve developer engagement

The contributor should collaborate closely with the O3 squad to identify new workflows, design tests, and write them.



We need to find solutions to the above while identifying other ways to make things easier for developers.

Automated software testing

CI/CD Pipelines

Containerized applications

Single-page applications and Micro-frontend architecture

@Pasindu Rupasinghe 

@Jayasanka Weerasinghe 

@Brandon Istenes 

OCL Subscription Module for OpenMRS 3

OCL module functionality available as a microfrontend

Medium

175 hours

The OCL Module is the last remaining OMOD that depends on the (effectively deprecated) OWA Module. We want to be able to remove the OWA Module from our 3.x RefApp distro, and currently it’s just the OCL Module preventing this.

@ibacher has already set the groundwork by setting up an ESM monorepo and skeleton of the work on GitHub

React

Javascript

Typescript

@Piumal Rathnayake 

@Ian Bacher 

@Hadijah Kyampeire 

Migrating from OpenMRS ID  to KeyCloak

  • Potential sustainable ID system solution identified

  • Proof of concept set up

  • Roadmap for migrating users to the recommended OpenMRS ID system. 

Medium

175 hours

Our current ID system is beyond its end of life and unstable. This leads to significant interruptions for OpenMRS projects prioritized by users. A new OpenMRS ID system will reduce service interruptions, reduce infrastructure volunteer workload, and eliminate security vulnerabilities.

We would like the user 'handle' to be shared across Jira, Confluence and Discourse. The new ID system should either be free for open source projects, or extremely cost-effective for the amount of users we have. We are open to hosting open source tools, using cloud projects, or using Atlassian ID directly as OpenID or similar. 

DevOps

Authentication and SSO

IT Strategy



Cintia

Burke

Building a Testable FHIR Implementation Guide

Medium

175 hours

In an effort to validate the capabilities of the OpenMRS FHIR2 Module using standard FHIR structures, we're proposing a project to develop the OpenMRS FHIR Implementation Guide(IG) into a testable IG that connects the contained technical specifications with the testing packages for the FHIR2 module.

FHIR Implementation Guides (IGs) provide a standard way of documenting FHIR services, and our primary goal is to align the FHIR2 module documentation with this standard, using the available best practices for IG development. This github repository currently houses the skeleton IG for the FHIR2 module, of which a compiled version is viewable at  https://fhir.openmrs.org. You can see more about the FHIR2 project on the wiki page: OpenMRS HL7 FHIR Solutions.

FHIR





Piotr

Mozzy

GSoC 2023: Improving the OpenMRS Developer Experience: Updating the SDK

Advanced

350 hours

It's time to clean up our SDK and improve the developer experience.



Java



Daniel

Ian

OpenMRS Android Client Project 3.0.x

Advanced

350 hours

OpenMRS Android Client Project 3.0.x

-Android 
- Java
-Kotlin
-MVVM Architecture
-JUnit Testing
-Architecture Components
-Android Jetpack Libraries

@Amr Salah 

Suarabh

Rohit Sharma



Program Timeline

Look at here for more info on the full GSoC 2022 program timeline.

  • finished GSoC 2022 preparations

  • finished February 7:  Organization applications open

  • finished February 21: Organization Application Deadline

  • finished March 7: Organizations Announced

  • FINISHED March 7 - April 3: Student's involvements

  • finished April 4 - April 19: Student Application Period

  • FINISHED May 12: GSoC contributor slot requests due from Org Admins

  • FINISHED May 20: Accepted GSoC contributor projects announced

  • finished May 20 - June 12: Community Bonding Period. Students get to know mentors, read documentation, prepare for work on their projects

  • finished June 13:  Coding officially begins

  • finished June 13 - September 12: Coding Period for Medium project

  • FINISHED June 13 - November 13: Coding Period for Advanced project

  • FINISHED July  25: Mentors and GSoC contributors can begin submitting Phase 1 evaluations

  • FINISHED July 29: Phase 1 Evaluation deadline (standard coding period)

  • finished July 25 - September 4: Work Period , GSoC contributors work on their project with guidance from Mentors

  • finished September 5 - September 12: Final week: GSoC contributors submit their final work product and their final mentor evaluation (standard coding period)

  • FINISHED September 12 - September 19: Mentors submit final GSoC contributor evaluations (standard coding period) for medium size project.

  • FINISHED September 20: Initial results of Google Summer of Code 2022 announced

  • FINISHED September 12 - November 13: GSoC contributors with extended timelines continue coding

  • FINISHED  November 21: Final date for all GSoC contributors to submit their final work product

  • FINISHED  November 27: Final date for mentors to submit evaluations for GSoC contributor projects with extended deadlines

Guidelines

OpenMRS Resources to Know