Summer of Code 2025

Summer of Code 2025

Write Code. Save Lives.

OpenMRS is hoping to be a mentoring organization for Google Summer of Code™ 2025! 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 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. If you’re new to OpenMRS or wondering how to get started with your GSoC application, this video should help answer a lot of your questions:

On this page ....

Google Summer of Code at OpenMRS 
om.rs/gsoc

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

 

Helpful Links

GSoC 2025 Program Administrators

@beryl @Jayasanka Weerasinghe  

Please see GSoC Admin Guidelines for more information, or Org Admin Tips and Program Rules.

Project Ideas for GSoC 2025

Project Name & Expected Outcome

Rating and Size

 

Project Description

Skills (Required / Preferred)

Selected Contributor

Primary Mentor

Secondary Mentor

Project Name & Expected Outcome

Rating and Size

 

Project Description

Skills (Required / Preferred)

Selected Contributor

Primary Mentor

Secondary Mentor

Improved Audit Logging

Medium

We added Hibernate Envers for audit logging in OpenMRS 2.7.0, but right now, admin users cannot easily view or manage these logs.

This project aims to build a backend module that can

  • Show Audit Logs: Pull and display audits for database tables.

  • Filters: Let users filter logs by things like who made the changes, when, and what they changed.

  • REST Endpoints: Add APIs so other systems can access the audit data.

Java, Spring, Hibernate

@Njidda Salifu

@Wikum Weerakutti

@Manoj Rathnapriya

OpenMRS Standalone

Large

Replace the Standalone with something else. Very old, can’t even build in our latest releases - we disable it as the technology no longer works and is no longer supported. We now just ship the .war file and README. Suggestion to leverage Docker - something that works by double clicking and then just runs.

We never intended to use the OpenMRS Standalone version in production. But it turned out to be used in a number of places because they found it easier to use for sites that did not have support staff with advanced IT skills. We are also seeing an increasing number of people in our community who do not have lots of computer skills and just want something to download, click and run for their hospitals.

Java

@Mutagubya Jonathan

@Daniel Kayiwa

@Wikum Weerakutti

Performance Testing Enhancement Project

Medium

The current load tests cover only two scenarios, limiting performance insights. This project aims to:

  • Identify key scenarios that should be tested for better system performance evaluation.

  • Implement additional performance tests to ensure comprehensive coverage.

  • Enhance the existing test framework for scalability and reliability.

This will improve OpenMRS’s ability to handle high-load conditions and optimize system performance.

Java, Gatling

@jayg

@Jayasanka Weerasinghe

@Bawantha Rathnayaka

Interactive Builder for Form Translations within the Form Builder

Large

Right now, in order to add translations to a form, the way to do this to add it to a configuration folder that can be picked up by Iniz. This is annoying because

  1. You’d need a developer’s help to know what to do and where to do it

  2. The JSON file format is quite different from that of a form, so its not very intuitive for a non-techy person to do

  3. There’s no a dynamic and user-friendly way to do it

The ideas is to create a UI that would enable users to add the translations for a form for any language.

React, CSS

@bharath kumar

@nethmi

@Anjula Samarasinghe

Fix the Fast Data Entry feature

Medium

  • The Bulk Data Entry feature (BDE) is broken and unusable in the OpenMRS community’s main product (the O3 RefApp). No community organization or contributor has had the time or ability to fix this, and yet it is an important foundational feature for OpenMRS users.

  • The goal of this project is to fix the BDE feature and get it useable again in the O3 RefApp, primarily by engineering the feature to leverage the React Form Engine instead of the Angular Form Engine.

React

@twiine

@Samuel Male

@Ian Bacher

Immunization & Vaccination Schedule app for O3

Medium

  • Immunization Schedules (timings) are a key feature to make sure people (especially children) get the right vaccinations, at the right times, and enough of them, so that they are safely covered from diseases.

  • This visual project will make it easier for clinicians to see how many doses a child/person has had, and what immunizations they are due for.

React

@chintu

@Dennis Kigen

@Cosmin Ioan

https://openmrs.atlassian.net/wiki/x/EACyDw

 

Medium

Errors related to the Swagger documentation have been under review, with efforts made to upgrade it to the latest versions of OpenAPI (or a similar version). The necessary pull requests have already been submitted.

For this GSoC, it is suggested that, in addition to the ongoing work, efforts should be directed towards developing tooling or a mechanism that would enable the automatic generation of Swagger documentation by analyzing Javadocs, return types, and other relevant elements. Some work has already been undertaken to achieve this, utilizing reflection to scan OpenMRS resource handlers. It is proposed that further developments be made on top of this existing foundation to enhance the envisioned tooling.

The ultimate objective is for the OpenAPI specification to be generated at compile time rather than at runtime, as is currently the case. This shift would ensure that errors are identified at compile time rather than being detected during runtime.

For reference,

Improving Our Swagger Documentation Process

Upgrade swagger from 2.0 to swagger/openapi 3.0

Enhancing OpenAPI Documentation Generation

Java, OpenAPI

Marvin Sukumar

@Chi Bong Ho

@herman muhereza

Improved Implementer Tools

Medium

The Implementor Tools in OpenMRS can be enhanced for better usability and functionality.

Proposed Improvements:

  • Color Picker & Preview: Currently, only the hex code is shown. Or at least adding a color picker and visual preview would improve user experience.

  • Better Nested Object Handling: The UI editor struggles with nested objects, making it harder to edit complex structures.

  • Font Visibility Fixes: Some font colors blend into the background, affecting readability. Improved contrast would enhance accessibility.

Other potential improvements include better validation, UI optimizations, and enhancements to streamline configuration. These changes will make the tool more intuitive and user-friendly.

React

@harshthkkr

@Vineet Sharma

@Joshua Nsereko

Good Ideas We Had to Leave Behind This Year

These ideas didn’t make it into this year’s GSoC list, but that doesn’t mean they should be forgotten. If you’re passionate about any of them, you’re more than welcome to start working on them with the community.

 



Program Timeline

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

  • DONE GSoC 2025 preparations: Community Brainstorming

  • Done January 27: Mentoring organizations can begin submitting applications to Google

  • Done February 11: Mentoring organization application deadline

  • done February 27: List of accepted mentoring organizations announced

  • February 27 - March 24: Prospective GSoC Contributors reach out to Accepted Mentoring Orgs, discuss application ideas

  • March 24:  GSoC contributor application period begins

  • Done April 8: GSoC contributor application deadline: Prospective GSoC Contributors Submit their 2025 Applications (includes proposals)

  • Done DEADLINE April 29: GSoC contributor proposal rankings due from Org Admins

  • Done May 8: Accepted GSoC contributor projects announced

  • ONGOING May 8 - June 1: Community Bonding Period. Students get to know mentors, read documentation, prepare for work on their projects

  • June 2:  Coding officially begins

  • July 14: Mentors and GSoC contributors can begin submitting midterm evaluations (for standard 12 week coding projects)

  • DEADLINE July 18: Midterm evaluation deadline (standard coding period)

  • July 14 - August 25: Work Period | GSoC contributors work on their project with guidance from Mentors

  • August 25 - September 1: Final week: GSoC contributors submit their final work product and their final mentor evaluation (standard coding period)

  • DEADLINE September 1 - 8th: Mentors submit final GSoC contributor evaluations (standard coding period)

  • September 1 - November 9: GSoC contributors with extended timelines continue coding

  • DEADLINE November 10: Final date for all GSoC contributors to submit their final work product and final evaluation

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

Guidelines

OpenMRS resources to know