Summer of Code 2023
Write Code. Save Lives.
OpenMRS is hoping to be a mentoring organization for Google Summer of Code™ 2023! 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.
Google Summer of Code at OpenMRS
om.rs/gsoc
Learn more about Google Summer of Code 2023:
Google Summer of Code website
GSoC 2023 Program Administrators
@Jennifer Antilla
@Kakumirizi Daud
@Jayasanka Weerasinghe
Please see GSoC Admin Guidelines for more information.
Selected Projects for GSoC 2023
Project Name & Outcome | Project Rating and Length | About the project | Required skills | Selected Contributor | Primary Mentor | Backup Mentor |
---|---|---|---|---|---|---|
O3: Print feature O3 ESM | Medium 175 hours | "Print this" component in O3 that can be used/configured depending on what the user wants to print. E.g. med list, recent labs, etc. Will need to do review of what people are printing / where in EMR they need/have the print button these days. Some implementers need specific areas of the chart to have a print option; others use general record printouts, e.g. a summary the patient can take with them to other locations in lieu of a digital medical record integration. | React | @deborah Kalungi | @Hadijah Kyampeire | @Dennis Kigen |
Responsiveness & Tablet-based Needs for OpenMRS 3 Priority frontend UX changes to improve responsiveness. O3 ESM | 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 | @JESSIE SSEBULIBA | @Vineet Sharma | @Kumuditha Karunarathna |
Improving the OpenMRS Developer Experience: Updating the SDK SDK | Advanced 350 hours | It's time to clean up our SDK and improve the developer experience. | Java | @Wikum Weerakutti | @Daniel Kayiwa | @Joshua Nsereko |
O3: Migrate vanilla React forms to RHF O3 ESM | Medium 175 hours | We currently have a bunch of forms written in O3 in vanilla React. These forms, though functional, are not the most performant or extensible and for the most part, lack validation. React Hook Form offers easy-to-use validation out of the box, performance and tiny bundle size. The task is to refactor existing forms to use the React Hook Form library as well as Zod for schema validations. | React | @Christopher Lumu | @Dennis Kigen | @Hadijah Kyampeire |
O3: Extending E2E Automated Tests for the OpenMRS 3.0 RefApp QA | Medium 175 hours | At present, there are already a few E2E tests running for the openmrs-esm-patient-management repository and more coverage is expected. The goal of the project is for someone to extend the E2E tests for openrms-esm-patient-chart and openmrs-esm-core using the playwright framework. The tests will be set up to automatically validate the user interface based on specific workflows. | Playwright | @Randila Premarathne | @Anjula Samarasinghe | @Piumal Rathnayake |
O3: Draw on a Body Diagram O3 ESM | Medium 175 hours | OpenMRS is a medical record system that has previously allowed the uploading and visualisation of patient conditions through diagrams. This feature has been critical in helping doctors better explain patient conditions to their patients. However, the module lacked certain essential functionalities that could improve the user experience. Therefore, this project aims to improve the diagramming feature in OpenMRS by allowing the upload of any diagram as an image, annotation of certain areas of the diagram with different shapes, saving and retrieving these diagrams. | React, | @thembo jonathan | @Heshan Andrews | @Jayasanka Weerasinghe |
OpenMRS Android Client: Add more features from the web app Android | Advanced 350 hours | The potential goals for this year could be (but are not limited to):
2. Increase the test coverage of the app (due from previous GSoc Project) 3. Migrate remaining Java classes of the code to Kotlin |
| @Shubham Sharma | @Rishabh Agarwal | @Namanya Abert |
FHIR: Add support for FHIR PATCH operations FHIR | Medium 175 hours | OpenMRS is using the FHIR API more and more in place of the REST API. However, the FHIR API is, by default, quite verbose. Supporting PATCH operations would allow us to support partial updates to FHIR resources without needing to send the whole resource from the client to the server. | Java | @herman muhereza | @Ian Bacher | @Namanya Abert |
O3: Enhancing Component Test Coverage and Quality for OpenMRS3 QA | Medium 175 hours | OpenMRS consists of several micro frontend modules and repositories, most of which have unit and integration tests written by individual developers. However, these tests exhibit inconsistencies due to the diverse testing strategies used by different developers. To address this issue, there is a need for a consistent and comprehensive test strategy or framework for the unit and integration tests of OpenMRS3, aimed at achieving a high level of test coverage. | React | @Ayush Mishra | @Piumal Rathnayake | @Anjula Samarasinghe |
Program Timeline
Look at here for more info on the full GSoC 2023 program timeline.
finished GSoC 2023 preparations
FINISHED January 23: Mentoring organizations can begin submitting applications to Google
finished February 7: Mentoring organization application deadline
FINISHED February 22: List of accepted mentoring organizations announced
FINISHED February 22 - March 19: Potential GSoC contributors discuss application ideas with mentoring organizations
FINISHED March 20: GSoC contributor application period begins
FINISHED April 4: GSoC contributor application deadline
FINISHED April 27: GSoC contributor proposal rankings due from Org Admins
FINISHED May 4: Accepted GSoC contributor projects announced
FINISHED May 4 - 28: Community Bonding Period. Students get to know mentors, read documentation, prepare for work on their projects
FINISHED May 29: Coding officially begins
FINSHED May 29 - August 21: Coding Period for Medium project
FINISHED May 29 - November 6: Coding Period for Advanced project
FINISHED July 10: Mentors and GSoC contributors can begin submitting midterm evaluations
FINISHED July 14: Midterm evaluation deadline (standard coding period)
FINISHED July 14 - August 21: Work Period | GSoC contributors work on their project with guidance from Mentors
FINISHED August 21 - 28: Final week | GSoC contributors submit their final work product and their final mentor evaluation (coding period)
FINISHED August 28 - September 4: Mentors submit final GSoC contributor evaluations (standard coding period) for medium size project.
FINISHED September 5: Initial results of Google Summer of Code 2023 announced
FINISHED September 4 - November 6: GSoC contributors with extended timelines continue coding
FINISHED November 6: Final date for all GSoC contributors to submit their final work product and final evaluation
FINISHED November 13: Final date for mentors to submit evaluations for GSoC contributor projects with extended deadlines
Guidelines
Student's guidelines
Mentor's guidelines
OpenMRS resources to know
GitHub: https://github.com/openmrs
Talk Forum: https://talk.openmrs.org
Help Desk: https://help.openmrs.org
Issue Tracker (JIRA): https://issues.openmrs.org