First Attempt at Open Source Contribution: Hacktoberfest'23 Journey🚀💻
Tags: hack23contributor, hacktoberfest, opensource, hacktoberfest23
Published: 2023-11-14 07:43:53


This was the first time participating in Hacktoberfest, marking not only an initial attempt at the event but also my introduction to the world of _Open Source contribution_. This blog post will explore the path through the Hacktoberfest event 🛣️.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m5f7srqzwefc1zkulucm.png)

> *What is Hacktoberfest and Open Source Contribution?
>      Hacktoberfest is an annual worldwide event held during the month of October. The event encourages open-source developers to contribute to repositories through pull requests (PR).
>     Open source contribution is participating in the development or improvement of open-source software. This can involve anything from reporting bugs and fixing code to writing documentation*


##Discovery🔍
Unknowing where to begin, I planned to contribute to the projects that aligned with my tech stack and interests and started exploring repositories. There are various approaches to refine the search to find a suitable repository for contribution. GitHub's search function allows to filter results using hacktoberfest tags, programming languages, and recently updated etc. And some websites like [goodfirstissue.dev](goodfirstissue.dev), [finder.usmans.me](finder.usmans.me) also helped to find a suitable repository to start with. Identifying an active repo might be particularly helpful.

##Understanding the Repository and Contribution Guidelines📋
Once found a repository to contribute to, the next steps was what and how should I contribute.

Started by looking into the _contributing.md_, _code_of_conduct.md_, _Readme.md_ files to understand the procedures. Additionally traversed the issue section and pull request section to understand how the issues are reported and addressed, which gave some better idea about it.

Each repository had different guidelines. Some allowed work to be started on existing or newly reported issues only after they had been assigned to us, while others allowed solutions to be provided to any open issues, which would be accepted if they met requirements. Additionally, there were repositories where all issues were not open, only with specific tags like _ready to take_, _ready for dev_ indicates for open source contribution. So, checking the repository's guidelines is important as they provide all information from setup to how to create pull requests with proper titles. Starting with issues tagged _good first issue_, _hacktoberfest_ is also suitable for making the first contribution towards open source.

##Making Changes and Creating Pull Requests 🛠️
Initially forked the repository and created a working branch, then understood the code base and identified an issue to work on. After making the required changes and testing them, committed the changes to the working branch of forked repository and raised a pull request with base repository as original repository and head repository as forked repository-working branch according to the guidelines. The project maintainers reviewed the changes and provided some feedback or suggestions in some cases. After addressing that, the PR was merged.

###Here are some of the pull requests (PRs)
My contributions include identifying and resolving issues, as well as implementing new features and updating documentation.

1. [Calculation Error](https://github.com/DhanushNehru/calculator/pull/118)
2. [Google Sign-in Feature](https://github.com/DhanushNehru/board/pull/57)
3. [Ping Pong Animation](https://github.com/zero-to-mastery/Animation-Nation/pull/2384/files)

[For more of my contributions, check out the GitHub repository] (https://github.com/jeevaramanathan)

##Further Explorations and Challenges🤔

So, while contributing to the beginner repositories, opted to explore a few larger and real-time repositories during last week. 

As this kind of large repository includes both frontend and backend, understanding the codebase and setting it up locally was quite hard, and for some, I did not had the necessary infrastructure or software in the system by the time. But [gitpod.io](gitpod.io) was really helpful here in setting up the few projects that are integrated with it. Gitpod is a cloud-based development platform. It provided a seamless and ready-to-code environment, ease the complexities of local setup. In this process, I made contributions to the [Biodrop](https://github.com/EddieHubCommunity/BioDrop/pull/9663) and freecodecamp.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ajydl5quou3fbnrnb0k.png)Fortunately, identified an minor alignment issue in [FreeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aissues+author%3Ajeevaramanathan+alignment+issue+in+email+signup) and reported the issue with a workable solution. Following a while, the solution was also accepted as a temporary fix; However within the same issue, spotted another issue by proposing a fix. But after a loong back-and-forth discussion with the moderator involving testing on various browsers with different approaches, we came to a conclusion and the fix was also finally merged after the event. [Pull Request: Button Alignment](https://github.com/freeCodeCamp/freeCodeCamp/pull/52132#discussion_r1374672879)

✍️Writing insightful comments, creating descriptive issues, and submitting explained pull requests was really tricky.

##Progress
By exploring various repositories, had the opportunity to observe different coding standards, structures and approaches to problem-solving. 
It helped to have a better understanding of good coding structures, provided valuable insights into industry-standard coding practices. Also, it helped to improve collaboration and communication skills.


###Conclusion✅
Hacktoberfest makes a nice platform to start with open source, more than making contributions, it's also a great opportunity to learn from the open source community.

Although I may not made significant contributions, it was still a good experience for me and a great opportunity to learn something new in the initial attempt towards opensource. Contributing to open source also allows you to understand how collaborative software development works. 

_And if your interest is towards open-source, I would endorse you to start the same, it does not necessarily need to be code contributions, there can be non-code contributions as well._

Happy Contributing✨! 
<hr/>
You can hit me up on [Github](http://github.com/jeevaramanathan) | [Linkedin](https://in.linkedin.com/in/jeevaramanathan)

 Few other posts to check here.
[Decoding Why 0.6 + 0.3 = 0.8999999999999999 🤯 in JS and How to Solve?](https://dev.to/jeevaramanathan/decoding-why-06-03-08999999999999999-in-js-and-how-to-solve-640)