DEV Community

Cover image for 'Ananya' in 'Open Source Wonderland'πŸ™
Ananya Nayak
Ananya Nayak

Posted on • Originally published at ananyacodes.hashnode.dev on

'Ananya' in 'Open Source Wonderland'πŸ™

Very catchy, huh? Well, it does summarize my journey into open-source till now. I feel open-source is this big ocean of opportunities in which every developer must dive once at least. It can teach you new skills, get you a job, make connections with people around the world and whatnot. With this article, I want to give you a glimpse of what was like for me as a beginner in open-source and how I fell in love with this place called "GitHub". (Tbh I am still a rookieπŸ˜…)


How did I get to know about open source and GitHub?

I learned about GitHub before knowing what open source was exactly. In my freshman year of college, we were told to create an account on GitHub and that's it! Seriously nothing else was told to us as to what it was, why do we need it in the first place and what can I do with it. Maybe they assumed that since we are computer science students we must have some knowledge about it but they forgot that some of us were from non-CS backgrounds like me who just knew some lines of HTML code thanks to extracurricular classes back in middle school.

After doing some research myself I finally got the gist of GitHub:

  1. It has a cute mascot.

  2. You can store your code publicly or privately.

  3. It has a lot of people using it.

At this point, I still had no idea about open source and the only thing I used GitHub for was to just store code for my projects. But I did hear some random phrases here and there like "contribute to open-source", "collaborate", "code review", "issues", etc. This got me a bit curious and I decided to dig deeper.

gif

When I saw some tutorials on introduction to GitHub from YouTube, I learned about 3 new things:

  1. Many repositories on GitHub were open-source meaning anyone can contribute code to them. This is the point I understood the meaning of the word open source.

  2. You can contribute to a repository even if you are a noncoder meaning the contributions can be as small as fixing a typo. It's not necessary to understand the whole code base.

  3. For contributing you need to raise issues and if the issue is approved by the maintainers of the project you must raise a PR(Pull Request) to fix that particular issue. Once that PR is reviewed and approved it will be merged with the original code meaning your contribution has been acknowledged.

That was a lot to digest. Though I understood the importance of open-source and GitHub, I still couldn't decide whether it was something I can do. So I decided to give it a shot!


My first open-source contribution

I started looking at many tutorials to understand how to make contributions as a beginner. After looking at a bunch of them I realized that there were many friendly repositories for first-timers. Also, there were many ways in which you can find a repository of your choice to contribute to depending on what language or tech stack you are looking for. Some helpful sites that can help you find such repositories are:

GitHub Explore (Search by Topics)

First Contributions

Up for Grabs

Code Triage

Open Source Friday

First timers only

Good First Issue

OSWC

Good First Issue Finder (by EddieHub)

Now that I knew how to search for good first contributor repositories, I decided to go with one.

gif

At first, I was a bit greedy to find one such repository where I could do some significant code contributions but to be honest this is not a good mindset for a beginner. It's not easy to find something where you can make some major code change and even if you do you still need to be a lot patient for the issue to get approved by the project maintainers before you can raise a PR. As a beginner, this might break your motivation to continue being an open-source contributor and that's something one must avoid.

So my suggestion would be that you should try and look for projects that you are familiar with or if you feel it's something that interests you. Once you find something engaging you will automatically get ideas to fix something or maybe add additional features. Even if you find something wrong with the documentation or there are some grammatical errors, those are still very good ways of contributing to projects as a beginner. Since these changes get approved very quickly this will boost your confidence and motivate you further to find ways of contributing. Remember to have fun in the process!

My first contribution was something similar. I found a project which was a blog theme for Hugo(a website builder). I noticed that in their i18n directory, they were missing a translation for Hindi. Though I didn't know the whole code base or what this i18n folder was exactly it was still obvious to me that creating a file by looking at the other files and just referring those to add Hindi translation wasn't that big of a job. So these were the steps I took to merge my contribution to the master branch of the repository:

  1. Forked the repository.

  2. Cloned the fork on my local machine to work in VS Code.

  3. Created a new branch called "Added-Hindi-Translation" to which I will push all my commits.

  4. Created the new file with Hindi translation and committed these changes on the newly created branch. Be sure to checkout to the branch to which you want to add changes to. Pushed changes to the remote repository.

  5. Finally, raised a PR to the master branch of the upstream repository using GitHub UI.

  6. The maintainer approved the changes and merged the commit into the master branch.

Yayyy! That was pretty simple, right? I just did my first open-source contribution.

gif


Now, what???

This first contribution motivated me and removed this doubt in my head that open source is not for everyone. Though it was a small addition still was important. Once you get the taste of something you become more hungry. That was my case. Now I was even more pumped up for looking for more such projects where I can be useful. Though this time I didn't want to take up some random project but something that interests me and I wanted to make some good contributions to it. I also wanted it to be a place where I could make good connections and collaborate with other developers to develop my communication skills as well.

I found one such community just recently. The EddieHubCommunity. If you haven't heard of it you are missing a great opportunity to grow in Open Source.

What I loved about this community was the engagement and the quick feedback from the maintainers regarding any query you have. They have some amazing projects that suited my interests and finally, I found one such project of which I could say that I love being a part. It is called LinkFree. It's an open-source alternative to the LinkTree project and has over 2.7k stars on GitHub. So how I became a contributor to this big project? Continue reading...


Contributing to EddieHubCommunity

To become a member of this community you have to simply raise an issue and in some moments you will be in. Even if you are not a member you can still contribute but it's better to be part of organizations as it's displayed on your GitHub profile.

Now the simplest contribution you can make to this community or in particular the LinkFree project is by adding your LinkFree profile. Not only you are creating your website but are also contributing to this awesome project!! Moreover, it has much better features than LinkTree in my opinion since you can also add your milestones, testimonials, events and of course all your social links.

I followed the Quickstart guide provided for the LinkFree project to add my profile and in a few moments my PR was merged. You can view my LinkFree profile here: linkfree profile

data:Ananya2001-an #3836

Changes proposed

Check List (Check all the applicable boxes)

  • [x] My code follows the code style of this project.
  • [ ] My change requires changes to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [ ] All new and existing tests passed.
  • [x] This PR does not contain plagiarized content.
  • [x] The title of my pull request is a short description of the requested changes.

linkfree profile

There will be more than 1 reviewer for your PR and most of them are fellow contributors meaning you can also review someone else's PR and give them suggestions on any changes. This is a great way to learn how to behave as a maintainer for some projects.

After that was done I started taking more interest in the project and looked for ways where I could help. Since the project was around my tech stack I knew that this time I could understand the code base and maybe find some flaws or improvements. After using the LinkFree site for a while an idea popped up in my head. I noticed that on the search page, there were no tags available to filter out results. I raised an issue for the same suggesting that this is a useful feature that must be added.

Some contributors did give their feedback on it and later Eddie Jaoude (the maintainer of the project) approved the discussion and assigned me this work. It was my first interaction with him and getting approval on my idea was something that boosted my morale.

[FEATURE] Add filter tags on Search page as well #3849

Description

Right now we are allowing users to click on tags in the discover page and then it redirects them to the search page with the found results but this introduces a bit of time lag which is kind of annoying. Why not add these tags on the search page as well so that it's convenient for users to search profiles with the help of it rather than just making them type it out in the search bar?

Screenshots

image

Additional information

I would like to get assigned for this issue.

I started working on the issue and raised a PR after finding a simple solution. Of course, it had many flaws in the beginning but that didn't demotivate me. Getting feedback is a good thing since now you are learning how to collaborate with others and making those fixes will ultimately improve the feature you are working on so you should be ready for criticism.

Eddie too did guide me regarding certain things he wanted with the multi-tag search feature and after meeting those requirements we were finally able to get the desired outcome. Not only my code was reviewed but I also suggested changes to the commits that were made by Eddie. It helped me grow as not only a contributor but a reviewer as well.

Updated Search page UI #4030

Fixes Issue

closes #3849

Changes proposed

Added filtering option with tags on Search page as well. Users can select and deselect tags to get the desired results based on the combination chosen. For example: if I select tags open source and DevOps then only those users that have both of these tags will be shown. You can click on the tag again to remove the selection. You can also manually type out in the search bar to get the results otherwise use tags directly. When the user selects a tag from the discover page or their LinkFree profile, it will redirect them to the search page showing the results along with the highlighted tag.

Check List (Check all the applicable boxes)

  • [x] My code follows the code style of this project.
  • [x] My change requires changes to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [ ] All new and existing tests passed.
  • [x] This PR does not contain plagiarized content.
  • [x] The title of my pull request is a short description of the requested changes.

Screenshots

image

image

Note to reviewers

Multi tag search #4375

Fixes Issue

Minor tweaks from the great work by @Ananya2001-an on https://github.com/EddieHubCommunity/LinkFree/pull/4030

Changes proposed

Check List (Check all the applicable boxes)

  • [ ] My code follows the code style of this project.
  • [ ] My change requires changes to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [ ] All new and existing tests passed.
  • [ ] This PR does not contain plagiarized content.
  • [ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

This was the final addition(Multi tag search feature) that was made to LinkFree after doing a great collaboration with Eddie Jaoude.

multi tag search feature

Through this contribution not only did I do some code changes but also made connections with some amazing people like Eddie. Maybe this was the kind of contribution I was looking for where I could learn how to collaborate and solve problems together.

tweets

This was a great lesson for me in my open-source journey and I am still trying to be an active member of this community. I have also contributed to another famous project of the EddieHubCommunity called the Good first issue finder which you can see below.

Fixed issue of filter when no results are found #287

Fixes Issue

closes #286

Changes proposed

Labels will not disappear when we don't get any results.

Check List (Check all the applicable boxes)

  • [ ] My code follows the code style of this project.
  • [ ] My change requires changes to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [ ] All new and existing tests passed.
  • [ ] This PR does not contain plagiarized content.
  • [ ] The title of my pull request is a short description of the requested changes.

Screenshots

image

Note to reviewers

Moreover, I try to do reviews of other PRs in my free time since that's also a good way to contribute to your favorite project. I would also recommend some other repositories of this community that are very friendly for first-time contributors:

Hacktoberfest practice

Awesome GitHub profiles


How to connect with the maintainers?

Always try to be curious and ask queries because sometimes that's the best way to show that you are interested in the project and thus will help you establish good connections with the maintainers. You can join the public channels or also open a discussion in that community to get answers to your queries. You can also get on a 1:1 call with some maintainers who will personally answer your questions and I feel that's a nice way to make yourself more active in the community.

Sometimes it's also best to DM them personally since they do appreciate your effort to learn and clear doubts. I generally use Twitter for that purpose because it has a lot of opportunities and most of my favorite projects and their maintainers are more active on Twitter than on any other platform. I had one such call with Tapas Adhikary where I got to learn about his views on Open source and his project ReactPlay on GitHub. It was a nice talk and gave me the motivation to contribute to his project.

facetime


Other communities you can be a part of

React Play

AnitaB.org

WeMakeDevs

FossAsia

Naomi's Novas


Some famous open-source programs

Below is the list of open-source programs in which you can take part throughout the year. Some of them have stipends as well and can help you grow in more communities. Try to keep yourself updated with the timeline.

GSOC

Hacktoberfest

GSSOC

Season of KDE

Outreachy

LFX Mentorship

GDOC

24 PR's

Open source hack


Final thoughts

Open source is a wonderland and I am still journeying it. It's meant for everyone and you should at least give it a try. It is the best way in which you can apply your skills as soon as you learn them. Continuous feedback will be a great motivator and make you industry ready. I hope with this article you got some motivation that open source is not a complete alien and you can find your passion in it if you are ready to be dedicated and persistent.

Thanks for reading till the end...πŸ€—

Top comments (2)

Collapse
 
neilblaze profile image
Pratyay Banerjee

Nice content @ananyacodes! Curious, what's Naomi's Nova?

Collapse
 
ananyacodes profile image
Ananya Nayak

Thanks Pratyay! That's a github org where you can do open source contributions. The community is super friendly :)