Summer of Code with OpenMRS ❤️
This article essentially serves as a guide to the following questions — What is GSoC? How does it help you? How did you apply? How to chose an organization? What is OpenMRS and what will *you* be working on?
It was the night of 6th May 2019. The results were supposed to be out by 11:30 PM. It was now 11:31 PM and I was about to hit refresh on the GSoC page for one last time and seal my fate.ate. I’ve always wanted to participate in GSoC, but every year I’ve been so overwhelmed and intimidated by it, that I finally decided to take the plunge in my final year of college. So this was the last GSoC I could participate in before I graduate. Furthermore, I had submitted a single proposal to a single organization. Nervous and anxious, I refreshed the ‘Projects’ page for the moment of truth and …
… Yay! My proposal had been accepted into Google Summer of Code 2019 and I would be working with the amazing organization — ‘OpenMRS’ which believes in the motif — ‘Write Code, Save Lives’.
This article essentially serves as a guide to the following questions — What is GSoC? How does it help you? How did you apply? How to chose an organization*? What is OpenMRS and what will *you* be working on? Let’s get started and debug (😝) these questions one by one.
What is GSoC?
Google Summer of Code, often abbreviated as GSoC, is a program funded by Google that encourages students from across to globe to contribute to open source projects. During GSoC, students work with an open source organization on a 3 month programming project during their summer break.
GSoC often serves as a gateway for many students into the open source community and into production grade software development in general.
A Bit about Open Source -
This part is necessary. Before starting out to do something — it is quite necessary for us to understand why we are doing it in the first place. Open source preaches the crowdsourcing of software development — allowing the source code to be readable by the public at large. Open source has several benefits and prominent code bases have come off it — no wonder why even the closed-source behemoth, Microsoft is now in ❤️ with open source [GitHub page].
How does GSoC help you?
For budding developers, GSoC really helps you understand the full software development process — from issue tracking to performing bug fixes, writing production grade code, learning about design pattern and finally deployment. Completing GSoC often indicates that you don’t get intimidated by large code bases anymore.
😃 Tip: The stipend, career and chances for a Google interview may be alluring prospects but growing yourself as a developer is what you should really focus on! Helps in the long term :)
How to apply and choosing an organization?
Applications for GSoC usually start in February (although you are advised to start earlier) once the participating organizations are announced. You are expected to chose project(s) in a desired organization(s), be well connected with your project’s mentor(s) and finally submit a proposal on how you plan to work on the selected project. Google allows you to submit at most 3 project proposals from the same or different organizations.
Selecting an Organization:
This section is quite subjective in nature and various from person to person. This year, over 200 organizations participated in GSoC and navigating projects in such a large option pool can be quite challenging.
When selecting my organization and project, I personally had set myself 3 clear cut directives:
- The technology stack of the project/organization should be similar to what I already know (*cough* Angular *cough*) 😜. This leads to a flatter learning curve and helps you contribute faster to the code base.
- The organization should have clear-cut directives for candidates — it should clearly lay the guidelines according to which one can become a successful GSoC candidate. I feel that this is where OpenMRS really shined through.
- As a personal goal, I really wanted to work for a healthcare organization as it is a cause I really connect with ❤️.
😃 Tip: Please do realize that these directives evolved over time as I explored the organizations in GSoC and were not something I started out with on Day 1. Finding a correct fit for you should be your ultimate goal.
Crushing on OpenMRS ❤️
In one of my extensive organization searches I discovered OpenMRS. OpenMRS is an open source medical records system (MRS) platform that was conceived by Regenstrief Institute and Partners In Health, way back in 2004. Today, it is the grand daddy of platforms such as LibreHealth and Bahmni, which started out as forks of OpenMRS.
The OpenMRS community seemed spectacular — it not only welcomed GSoC participants with open arms but also had mechanisms in place such as a proper WIKI, weekly scrum meetings, JIRA for issue tracking and a strong community which was taking the platform forward. Of late, OpenMRS Talk, their online forum, has become my most visited site on the internet! 😝
I initially started out with setting up the platform and the reference application and having them both running successfully on my local machine. This surprisingly took me a good deal of effort. I next went on to setting up my dev environment, inspecting the code base and finally claiming issues on the JIRA which I felt I could really deliver on. OpenMRS had clear cut requirements — only upon fulfilling these requirements would your proposal be even considered by them.
😃 Tip: Don’t directly jump into fixing bugs or the code base. First learn the ecosystem and how things work at a higher level of abstraction. Then get into the nitty-gritty!
What am I working on?
I discovered this amazing project called the Patient Flags Module. It is one of the modules that integrates with the base platform and allows healthcare personnel to see vital indicators such as patient blood sugar dropping below a certain level, or patient having high BP etc. I shall be developing an open web application or OWA — essentially a front end in React for this module!
Here is me wishing all my GSoC peers a great summer of code and I hope some of these tips were helping for future 2020 GSoCers! ❤️