WoC’20 - My journey with Canvasbird 🚀

Abhinab Roy
6 min readFeb 1, 2021
Canvasbird Banner
Canvasbird

I am Abhinab Roy, an undergraduate student from Netaji Subhash Engineering College, Kolkata.

During April and May, when all of us were in self-isolation in our own homes, I took up a course in full-stack development using MEAN stack. I had an amazing time learning the new concepts and building those small projects that were quite pleasing to me.

After some time I learned git and GitHub and started to push my codes to Github. Learning from these, I started to look into the codebases of other organizations to get the knack of understanding large codebases and solving their bugs and issues. I directly jumped to bigger organizations. However, intimidated by their huge codebases, I started asking tips and suggestions from my seniors about how to approach the issues and then solve them.

During this time, one of my seniors told me to apply to Winter of Code, where I can start contributing. The student application form was about to open after 10 days, so I started looking for organizations and stumbled upon Canvasbird. This was a great feeling as the project structure was similar to my tech stack and that gave me the assurance that I can start contributing to open source from here.

I immediately started learning and getting familiar with their codebase. On the following day, I claimed an issue of buttons being overlapped on the sidebar. I was kind of anxious about my first PR (#202), but the support and welcome I got from the members was very overwhelming.

When the PR got merged, I was thrilled and delighted, and they even added me as a contributor. My code was being reflected on the official site which boosted my confidence and that’s how my open source journey started. Following that day, I claimed many small issues and submitted their PRs(#208, 216, #224, #225). I was now enjoying the process and learning at the same time.

Finally, when 2 days were left to submit the student application form, I started writing the proposal. For this, my seniors have helped me a lot in giving inspirations and suggestions about the proposal. I started filling the application form and uploaded the completed proposal with all the work I had done up till now. I just kept my fingers crossed and waited for the results that were going to be declared the next day.

The next day, I woke up and enthusiastically searched for my phone to check the mail but found out that the results are not yet declared. I kept on waiting and rubbing my nails out of nervousness, but then in the evening, I received the mail that I have been selected as a student in Winter of Code ’20 in Canvasbird for the project Canvasboard. I was very delighted and excited about the coming days.

There was a community bonding period for three days during which I got to know about my mentors Kajol Kumari and Akash Madduru. Goli Akshay Sujith, who reviewed all my PRs before my selection along with my mentors really eased my way to the program.

After that, I was assigned 5 tasks to be completed in two phases. For phase 1, I was assigned 3 tasks and the remaining for phase 2. There will be an evaluation done after the first phase, so I started working on the tasks on the same day.

The first task I got was to add a Daily Quote feature on the dashboard page. This task was really interesting to me as it helped me to get more familiar with how to get a response from an API, how to deal with CORS headers, and other such stuff. I immediately started working on the task and made a PR for code review. After this, I was facing some issues on the CSS part to which Kajol and Akshay patiently helped and guided me. After getting a pass from them, my PR(#228) got merged. Finishing up my first task was a bit of a relief for me and I then jumped to my next task — To make the toolbar responsive.

This was rather a shorter task and I opened the PR on the same day for the code review. My mentors found my solution pretty convincing and with some more add-ons, the PR(#270) was ready to be merged.

Then I moved to my last task for phase 1 which was filtering workspaces or folders using their initials. For this, I had to study a bit about the different things that were required to solve the issue. I always went to my mentor Kajol to discuss if a particular add-on to this feature would be ok or not. After about three days, I opened the PR for code review and with some CSS improvements, it got merged(#267).

Before I got my phase 1 completion mail, I moved on to the next task and started studying it. It was about adding a password strength classifier to the password field in the signup form. This was a very interesting task as initially, I was thinking of different approaches of guards or custom validators, but later found out an npm package that serves the purpose. I learned to implement it in the project, so after discussing the number of validators and look of the classifier with my mentor, I opened the PR for code review. During this time, I received my mail of the passing phase 1 which was quite motivating to me. The PR looked good to the reviewers and after some minor code cleanups, it got merged(#306).

Finally, I moved to my final task which was about displaying a watermark when there are no workspaces present. For this, I had to learn about how the workspaces are being displayed and how to check their number every time without hampering the performance. My mentor helped me solve those critical doubts and then finally I opened my last PR and it got merged successfully(#313).

Also, there was a bug that was noticed after the PR of the third task was merged. For this, I had to open another PR(#301) which solved the issue and got merged successfully.

Along with the tasks I completed I also opened some issues — #207, #215, #303, and #308.

On 12th January, the result date, I received a certificate of completion for passing both phase 1 and phase 2. Few days after that, I received a mail from Winter of Code saying I have been selected as a top contributor 🥳. That was the happiest day ever and that really encouraged me to work more.

Top-contributor mail

During this program, I learned many new things that would have not been possible if I had still been doing my own projects. Firstly, I learned how to break down an already existing codebase into parts from which I can get the necessary information. I also learned some new concepts when I was solving my tasks. My mentors were always there to guide me and help me pick the best approach in bug fix implementations. They patiently heard and cleared my doubts which eased the process of merging the PRs. They also cleared a few of my git concepts and how organizations work with GitHub.

Even after the program has ended, I still like to contribute to the organization. The org saw a stream of new contributors coming in as it had also participated in other programs. Being a little more comfortable with the codebase, I created some first-timer issues and also helped them solve some build-time errors while opening PRs. I would like to add and suggest some more features and remove existing bugs to help the project become more user-friendly and fruitful to the users.

The one month of work in Canvasbird helped me learn and grow to a great extent. I was so lucky to be mentored by Kajol (Thanks for reviewing all my PRs) and Akash whose constant guidance helped me complete my tasks easily. I would further extend my gratitude towards Akshay, who was the person I always reached when I faced any issues regarding the understanding of the tasks. This winter was truly one of the most productive and amazing months for me!

--

--

Abhinab Roy
0 Followers

I am an undergrad student studying C.S.E. from Netaji Subhash Engineering College. My interest and work include Web Development and ML.