My Google Code-In 2k18 Experience

Aditya Bisht
7 min readDec 12, 2018

--

Google Code-In at OpenMRS

What is Google Code-In?

It is a contest to introduce pre-university students (ages 13–17) to open source software development. This is the official statement provided by Google. According to me, in addition to this the contest brings together a huge diversity of people, shared by common interests such as, programming, graphic designing, content writing, research and they work upon such task in order to contribute to open source organizations who sign up with Google Code-In. The competition thus enables school students to get a good outlook of how professional software development takes place and how can they find their place in the industry if they wish to. And this blog post aims to summarize my experience throughout the competition.

On my exploration, I came across this one organisation whom I found to be innovative, ahead of its time and trying to make a difference to the society. It was none other than OpenMRS. I feel lucky to work with OpenMRS not just because of its ambition but also the community members and their heart warming nature. Throughout the competition, I came to know some of the members of the community personally and worked on some projects where I felt I made some significant contributions.

OpenMRS Organisation

OpenMRS — Write Code, Save Lives

In this year’s Google Code-In I worked for OpenMRS which is a collaborative open-source project to develop software to support the delivery of health care in developing countries. I worked in several fields during GCI like the main OpenMRS repository, the Android Client, Sysadmin Open Web Application and Location Based Access Control Module. This not only gave me a ton of exposure but also an experience to work with real people on real projects.

OpenMRS Community provided the participants with a number of varied tasks, which required skills in programming, graphic designing, outreach and many more. Mentors were utmost helpful throughout the contest. Each and every mentor from OpenMRS was actively indulged and enthusiastic in helping and guiding us, which made this learning experience even more fantastic.

The mentors openly encouraged me to contribute as much as I could and led me to find, highlight and fix more problems and work outside GCI too. They introduced me to the contributing guidelines set-up by the OpenMRS team, and got me familiar with their ways and several coding conventions being followed by them. I aim to keep contributing to OpenMRS, especially the android client and LBAC module, after GCI because with every problem I solve, I get to learn something new, which constantly elevates my level of thinking and programming.

Tasks Performed and Learning Experience

GitHub

I majorly performed coding task so my work was usually around GitHub. From making unit tests for android client and LBAC module to handling NullPointerException,working with AngularJS and fixing bad coding practices, I learned a lot throughout the competition. Before this year’s GCI, I knew about how to perform some very basic functions but as I progressed through my GCI, I learned about a lot of other features it provides and the true reason for it being so popular among developers. Thanks to OpenMRS, I learned how to generate a Pull Request, squashing our commits, markdown language and creating issues.

Hypertext Markup Language (HTML)

Coming on to designing task, I wasn’t really compatible with Photoshop but did learn quite a few things by designing UIs and Facebook/Twitter Cover Photos. The one thing I loved doing was making Thank You templates for GCI and GSoC participants. This came as a fusion of web development and designing. I was so engrossed throughout the task adding and removing things to get that perfect web page I desired that the satisfaction at the end of the task was incomparable!

Video Making

There were few tasks I took between my tough tasks to break the monotony, some of them being video making ones. Having previous experience in this field, I loved making video on muzima Android App and Open Source. These task were my stress-busters as well as a window to take some rest during the competition. I hope to create more videos and user manuals to help new people get familiarize with OpenMRS.

Bugs

The most exciting job I felt throughout the competition was trying to find bugs here and there. Be it the main repository, Android Client or the Open Web Applications and Modules, it was great fun if one could find something wrong. It almost felt like treasure hunting which we as participants loved doing.

Contributions Outside GCI

Finding More Bugs

My favorite job of finding bugs was not limited to GCI. As OpenMRS is ever evolving, I thought, surely there would be something wrong or not working as intended somewhere or the other. I tried to inspect the main repository, android client, OWA and module as much as I could. I found some bugs and created several issues on JIRA related to the bugs and created talk thread too referring to the same.

Translation

Being a native speaker of Hindi, I thought I could be an asset to the community through my fluency in both Hindi and English. It was then that I decided to contribute to Transifex translating ~200 strings from English to Hindi. I was quickly eligible for Reviewer which was granted to me soon after. I further contributed by reviewing ~150 translated strings from other contributors. It gave me a feeling of having some authority over something.

Adding PR templates

I was quite delighted to see a PR template for openmrs-core repository. It felt so formal and professional to me. This helped the reviewer avoid messy PRs. I looked over other repository to find this feature absent there. I felt it would only help everyone if there was a PR template designated to every repository. Thus I created PR templates for all major repositories (except for openmrs-core and openmrs-contrib-android-client).

Post GCI

It was a really heart touching moment when my last task got approved. It was October 20th when I had registered for GCI, I never knew that the journey would be this beautiful. But part of the journey is the end. I would continue contributing to OpenMRS post GCI. Right now, Android Client and Location Based Access Control are the first things where I’d like to work.

Conclusively, I thank Google Code-In for giving me this medium to be part of an amazing professional experience, this is something I’m lucky to have had at a school stage. Thanking OpenMRS for letting me constantly learn and contribute in their projects. I would also like to specially mention Suthagar Kailayapathy, Daniel Kayiwa, Sanatt Abrol, Yusuf Karim, Fawwaz Yusran and Reuben Varghese for their constant guidance and appreciation for my work. Thanking Reuben for increasing a task instance so that I could submit a survey as well as picking up my calls whenever there was any emergency.

Lastly I would also like to thank all my mentors for always being a motivating force, my fellow participants who provided awesome support and a great sense of belonging while I was executing my tasks, especially thanking Satvik Shrivastava, Jyothsna Ashok, Svitlana Honcharuk, Hrishikesh Patil and Aleksander for making their presence felt. Hoping that we continue being an asset to the organisation :)

Message To Future Participants

Hey there everyone to whoever is reading this and participating in any of the future GCIs irrespective of the organisation or planning to do so. I would like to guide you and instruct you about some basic mistakes that I did earlier in the competition and wished someone could have informed me this earlier.

  1. Never hesitate from asking mentors about anything. It can be anything, literally anything (keep it to the competition). If you have a silly doubt about something that others can do easily, don’t feel bad about it, ask it.
  2. DO NOT and I mean it do not ask mentors for reviewing your task over and over again. They are volunteers too just like you and the reason for the delay can be anything from personal life to the number of task submission. You can just bring it to there notice after 24hr of submission.
  3. Don’t comment on the GCI dashboard after submission. This messes up the time of submission causing it to be the most recent comment instead of the original submission. If you have any doubt, ask mentors through IRC or other mediums depending on your organisation (Telegram for OpenMRS).
  4. Interaction and Community Participation is key to success. Don’t be introvert and keep this to yourself, if you have any idea share it on the organisation’s page. Help the ones in need if you can, these things add up to your portfolio.
  5. ENJOY ! After all, it’s only a competition :D

--

--