KWOC Project Report

Vinay Kumar Srivastava
4 min readJan 9, 2021
KWoC Welcome Page

Acquaintance with KWoC

It was November 2020 and the first-ever online semester was drawing to an end (a tragic one). Meanwhile, I was searching for some projects to escape out of this regular course work. It was then, one of my friends suggested me to participate in Kharagpur Winter of Code (KWoC) organized by KOSS, IIT Kharagpur and there began my open source journey. KOSS provides this unique opportunity, open to all, solely for the encouragement to Open Source and it succeeds every year.

#Init GitHub

Firstly, I began with learning the basic tools to work in Open Source environment. I attended the Open Source workshop organized by KOSS before KWOC and also, took help from YouTube. Having learnt that, it was time to enroll for KWoC.

Link to GitHub Guides

#Selecting Projects

There were hundreds of Projects available and it was really very confusing to select the first one to begin with. Having the basic knowledge of Web Development, I decided to work on Project DarkSite , which was a Chrome Extension. My mentor for this project was Rahul Gorai (github handle @sudo-rgorai ) .

Screenshot of the Chrome Extension

#My First Pull Request !!! (PR #22)

As this was just a beginning, I decided to commence with a good-first-issue. The very first issue needed me to add Quotes to the webpage, changing every time the user refreshes the page. It was a simple issue, however I found it difficult to randomly pick just one line from the Quotes file and render it on the webpage. I was quick to take help from my mentor and my first ever PR was merged on the very first day.

#Adding new Feature : Settings Panel (PR #35)

I decided to raise the bar of difficulty this time and picked up this issue. I was supposed to make Settings Panel and provide user the option to :

  1. Change the Username (displayed on the Webpage)
  2. Change the Clock format
  3. Change the Background Color
  4. Change the Font Style

In nutshell, this issue was a package of 4 issues in itself ;) .

Final Image after fixing the issue

Firstly, I created a Dropdown list for Settings Panel and provided the options to do the desired tasks.

#Cookies for the User

Changing Background Color, Username and Clock format was easy. But the unforeseen part was to remember the choices made by the user, the last time the user used this extension. My mentor suggested me to use Cookies (I had never used this before).

I used Cookies and saved user preferences but the data got shuffled, every time a new change was made. Like, if user updates the color, color name was updated and instead of being in the same place, got appended at the back. So, I had to dynamically search for the right data in the cookie for the right changes to happen.

#Changing Font Styles

This seemed to me like any other task at first. But, there was a lot more to learn for this task. To keep the size of Extension files small, my mentor asked me to use online fonts by Google API and render it on the go. Hence, I searched for Google Font APIs and found out that the list of fonts is actually a JSON file. So, now, I was searching for JSON tutorials to understand the data in the file ;) .

Google Developer API page

Having learnt about all the prerequisites, I generated Google Fonts API, and provided the list to the user. I made another function to update Greeting Message’s font according to the user choice and saved it in the Cookie.

#Overall Experience

Open Source turned out to be one of the most exciting fields to venture into and I would like to thank KOSS for their incessant efforts. In this one month, I learnt how to select one project, best for me, out of hundreds available and how to communicate with the mentors and with all those who are a part of it.

I would also like to thank my mentor, Rahul Gorai (@sudo-rgorai) for guiding me through my initial phases. I would certainly recommend everyone, to get the most out of this opportunity and build a good grasp on the essentials of Open Source.

At the end, there’s no end to my curiosity and fondness for Open Source and I’ll be learning other programming languages and web development stuffs to complement my contribution.

Till then.. Keep hustling.

Signing off,

Vinay Kumar Srivastava (Github @vinaysrivastava273)

--

--

Vinay Kumar Srivastava
0 Followers

B. Tech. student (Mechanical Engineering) at IIT Kharagpur. Love for Open Source, Content Writing and Competitive Programming.