My Hacktoberfest Journey: From First Pull Request to the Hall of Fame

Thalles Augusto(ThesllaDev) - Nov 4 - - Dev Community

This is a submission for the 2024 Hacktoberfest Writing challenge: Contributor Experience

Overview

This article is about sharing my experience as an open source contributor during Hacktoberfest and is also part of the writing challenge proposed by dev.to: Contributor Experience.

Hacktoberfest is an annual event organized by GitHub, DigitalOcean, and other partners to celebrate open source, aiming to attract and encourage people around the world from various skill levels to collaborate with the open source community, showcasing the potential we have when we join forces. It’s worth noting that it’s not just about code or for developers; writers, translators, testers, and designers can also contribute.

Open source software makes its source code available, providing transparency and the right to study, modify, and use it freely and openly according to the license. The use of open source software has seen significant growth among individuals, organizations, and companies in recent years. Here are some examples of open source software:

Brief Description About Me

I am Brazilian (and my English level is still not very good, but I am constantly trying to improve it; I apologize for any mistakes), a front-end developer fascinated by technology and games, and an enthusiast of gamification and open source. You can find more information on my GitHub.

Why I Decided to Participate and Recommend You Do Too

I have participated in Hacktoberfest since 2020 because I am an enthusiast and want to support the open source community by giving back and collaborating with open source software and content that has helped me throughout my self-taught learning process with free and accessible resources. These resources are often created by the community, for the community.

Through participation and challenges, I have gained a lot of knowledge and evolved in many ways. For these reasons, I recommend that you also participate.

Skill Development

  • Hard Skills: From technologies such as HTML, CSS/SASS, JavaScript, Git/GitHub, Elixir, and other tools to clean code techniques and understanding other codebases.
  • Soft Skills: Problem-solving, teamwork, commitment, communication, writing, and practicing English (for non-native speakers).

Participating also opens doors for networking, learning about tools, libraries, and projects. Other advantages include enhancing your resume/portfolio, demonstrating your skills to employers or others, and receiving exclusive rewards from the event, such as: t-shirts, stickers, badges, partner reward kits, and trees planted (in 2023, Hacktoberfest offered a tree in a planting project in partnership with Tree-Nation, which planted a tree in honor of each of the first 50,000 contributors to the event who opted in, and I was one of them; I recently received an email from Tree-Nation saying my tree celebrated its first birthday! 🥳🎋 You can see more information at the tree view and information link). Each year, they offer different types of rewards.
Images of the rewards I've earned over the past few years:

Hacktoberfest T Shirts

Hacktoberfest Sponsors Stickers

Holopin Badges

Hacktoberfest 2023 Reward Kit

Experience and Evolution from Previous Years

In my first participation in 2020, some of the main challenges and questions I faced were about how to participate and what to do. However, the event provides resources about this, and you can see more at this participation and resources link on the event's website. In 2021, I write my first article, which was a guide and resources for participating in Hacktoberfest 2021 (content in Portuguese).

In the early years, I was learning to use Git and GitHub while making my first contributions to open source projects. I experienced some ups and downs that helped me grow. During this phase, I focused on understanding the concept of open source and version control systems. Since I didn't have much technical knowledge, I made simple contributions such as “solving algorithm exercises and submitting my pull requests,” sharing content, JSON and Markdown changes, correcting typos, and/or broken links. Even though they were simple collaborations, all are welcome, significant, and benefit the community. Remember that there are multiple ways to contribute that do not involve coding skills. To learn more, visit the official Hacktoberfest site that discusses this topic.

In 2023, I completed the Hacktoberfest challenges and had the honor of appearing in the Hacktoberfest 2023: Hall of Fame 🤩✨😎🏆

Hacktoberfest 2023: Hall of Fame Celebrating

This year, I did a recap and noticed a good evolution and faced fewer problems, thanks to my participation and challenges from previous years. With a “life-long learning” mindset, this year was no different; I continued to develop my skills and made contributions by sharing my knowledge and accessibility improvements described below in the contributions section.

As the years went by, and with improvements in GitHub/Codespace, it became easier and better to work with open source projects directly on the platform, without needing to download and run the project locally, which is also beneficial for those who do not have much experience or do not like using the terminal.

Contributions

Project 1 - Filosofunk

Description of the Project

It is a Brazilian project aimed at gathering funny, entertaining, philosophical, or creative phrases from funk songs. You simply add a new song lyric by editing the poesias.json file with the necessary information as explained in the README.

My Contribution

This is a project I enjoy contributing to every year since 2020 (my first participation in Hacktoberfest) because it is simple and fun. It’s a great project I recommend for beginners; you don’t need extensive technical knowledge, just read the README for instructions on how to contribute. My contribution was adding a new song lyric.

Project 2 - Simple Icons

Description of the Project

“Simple Icons” is a collection of SVG icons for popular brands, technology projects, software tools, and online services. It offers a vast library of free, standardized, and simplified icons, ideal for use in web projects, applications, and interfaces. Each icon is carefully designed to follow the brand’s visual identity and maintain a simple, consistent aesthetic. The repository is community-maintained and regularly updated to include new brands and improvements, making it easier to incorporate these icons into projects via SVG or NPM packages.

My Contribution

This repository is not participating in Hacktoberfest, but I decided to spend some time making a contribution because I frequently use it. My contribution was updating the data of a JSON file as described and requested in one of the issues.

Update Aiqfome icon #12063

Issue: #10282

Checklist

  • [x] I updated the JSON data in _data/simple-icons.json

Description

Update the source to match the new source as mentioned in issue #10282

Project 3 - You Don’t Need JavaScript

Description of the Project

"You-Don’t-Need-JavaScript" is a collection of resources and examples demonstrating how certain functionalities commonly implemented using JavaScript can be achieved exclusively with HTML and CSS. Its goal is to show that in some cases, it is possible to avoid using JavaScript, simplifying development and improving performance and accessibility of web pages. The project provides practical examples for interactions, animations, and features like dropdown menus, sliders, and tabs that can be built using only HTML and CSS.

My Contribution

While browsing the issues in the repository, I found a discussion about the accordion examples not being true accordions. So I added the code for an accordion-type interface component, which is commonly used for developing FAQs (Frequently Asked Questions). In this example, I explain and use the HTML “details” and “summary” elements to construct the component, presenting a simple, semantic, and accessible solution using only HTML and its attributes, and CSS (just for styling), without needing to use JavaScript.

Add modern accordion and FAQs component #660

Modern Accordion and FAQs component only using HTML Resolves #16

AccordionAndFAQ

Project 4 - Home-Assistant.io

Description of the Project

The "home-assistant.io" repository houses the source code for the website and official documentation for Home Assistant, an open source home automation platform. Home Assistant allows users to monitor and control smart devices centrally, integrating various automation services and devices such as lights, sensors, cameras, and voice assistants.

My Contribution

I proposed accessibility improvements for the website through semantics and SEO, following HTML best practices for semantics to enhance user experience, including for screen reader users.

Semantic Accessibility and SEO Improvements: Correct List Parent Tags and Heading Levels #35339

Proposed change

This PR focuses on improving the semantic structure for accessibility and SEO by addressing two key issues:

  1. Added an appropriate <ol> container around <li> elements that were missing a parent <ul>, <ol>, or <menu>. This ensures correct semantic structure and improves screen reader navigation.
  2. Adjusted heading levels by changing <h4> to <h3> to maintain proper descending order in the heading hierarchy, enhancing both accessibility and SEO.

These changes follow best practices for semantic HTML, contributing to a better user experience for all users, including those using assistive technologies.

Type of change

  • [x] Spelling, grammar or other readability improvements (current branch).
  • [ ] Adjusted missing or incorrect information in the current documentation (current branch).
  • [ ] Added documentation for a new integration I'm adding to Home Assistant (next branch).
  • [ ] Added documentation for a new feature I'm adding to Home Assistant (next branch).
  • [ ] Removed stale or deprecated documentation.

Additional information

  • Link to parent pull request in the codebase:
  • Link to parent pull request in the Brands repository:
  • This PR fixes or closes issue: fixes #

Checklist

  • [ ] This PR uses the correct branch, based on one of the following:
    • I made a change to the existing documentation and used the current branch.
    • I made a change that is related to an upcoming version of Home Assistant and used the next branch.
  • [ ] The documentation follows the Home Assistant documentation standards.

Summary by CodeRabbit

  • New Features

    • Enhanced styling for various components, improving visual presentation and responsiveness.
    • Updated footer structure with improved semantic hierarchy.
    • Recent blog posts now displayed in an ordered list for better semantic HTML.
  • Bug Fixes

    • Adjusted styles for better handling of text and layout across different screen sizes.
  • Documentation

    • Improved clarity in the documentation index with refined styles for list items.

Project 5 - Tech Guide

Description of the Project

TechGuide is a collaborative platform aimed at mapping the skills and knowledge necessary for technology professionals in various areas, such as front-end, back-end, data science, and other specialties. The project offers guides that help users understand which skills are relevant for each area and which learning paths to follow beyond their chosen specialization. It is inspired by the open source project at roadmap.sh.

My Contribution

I added a new accessibility resource to the cards for three languages (Portuguese, English, and Spanish). The resource is a course from web.dev (Chrome developers) that provides valuable insights and best practices for improving web accessibility development.

Adicionando curso de acessibilidade do web.dev(desenvolvedores do Chrome) #338

Adiciona um novo recurso de acessibilidade aos cards para os 3 idiomas (português, inglês e espanhol). O recurso é um curso do web.dev (desenvolvedores do Chrome) que oferece valiosos insights e boas práticas para melhorar o desenvolvimento de acessibilidade na web.

Project 6 - freeCodeCamp Developer Quiz

Description of the Project

This is a collaborative project to create a quiz platform aimed at developers. The site offers over 1,500 interactive questions across various categories such as programming, security, databases, and other tech areas. The platform helps users test and deepen their knowledge in a practical and engaging way.

My Contribution

I contributed by adding two questions, one about entity representation in an ERD (Entity-Relationship Diagram) in the SQL category and another question about hash definition in the security category.

Add ERD question on entity representation in SQL category #1196

Summary of changes

This PR adds a new question to the SQL category, focusing on the representation of entities in an ERD (Entity Relationship Diagram). The question asks about the common shape used to represent entities and tables in an ERD, with an explanation that highlights the use of rectangles to contain the entity name.

Checklist

  • [x] I have read and followed the contribution guidelines.
  • [x] I have read through the Code of Conduct and agree to abide by the rules.
  • [x] This PR is for one of the available issues and is not a PR for an issue already assigned to someone else.
  • [x] My PR title has a short descriptive name so the maintainers can get an idea of what the PR is about.
  • [x] I have provided a summary of my changes.

Add question on hash definition to Security category #1207

Summary of changes

This pull request adds a new question about the concept of "hash" to the Security category. The question defines a hash as a unique digital fingerprint generated by an algorithm, helping learners understand this fundamental concept in information security.

Checklist

  • [x] I have read and followed the contribution guidelines.
  • [x] I have read through the Code of Conduct and agree to abide by the rules.
  • [x] This PR is for one of the available issues and is not a PR for an issue already assigned to someone else.
  • [x] My PR title has a short descriptive name so the maintainers can get an idea of what the PR is about.
  • [x] I have provided a summary of my changes.

Useful Resources for the Event

Tips for Participation

  • Start with the basics, such as text contributions in documentation or simple code changes; look for “good first issue” labels in repositories, and ensure the repository also has the event label “hacktoberfest” to validate your participation.
  • Look for projects that align with your profile, interests, and skills.
  • Always read the README and the contribution guide to ensure alignment with the project’s standards and quality, making it easier for your pull request to be accepted.
  • When making a pull request, remember to write clear and explanatory titles, commits, and descriptions about the changes. This helps the maintainer understand and can expedite the process of having your contribution accepted.
  • Observe the project’s activity; for example, if it has been a while since the last commit, pull request merge, updates, etc. This can save you time, frustration, and effort.
  • Besides pull requests, you can also contribute with issues by suggesting features, reporting bugs, participating in discussions, and code reviews.
  • As a maintainer of projects, you can:
    • Manage issues by creating, organizing, and closing them, setting priorities, and labeling them (for example, “good first issue” for beginners).
    • Review pull requests to ensure quality and provide clear, constructive feedback to help and encourage the contributor.
    • Communicate, engage, and motivate the community, promoting a welcoming environment. This includes participating in planning and discussions, answering questions, thanking contributors, and explaining the impact of their contributions on the project.

What Not to Do

  • Pull request spam: Don’t send too many pull requests in an attempt to increase your pull request count, such as removing whitespace; one pull request to fix a typo is fine, but five pull requests to remove whitespace is not good.
  • Pressuring maintainers for quick acceptance: Avoid sending frequent messages or “pings” to pressure the maintainer to accept or review your contribution quickly. Maintainers have many responsibilities, and Hacktoberfest is a busy time for them.
  • Fear of asking questions: If you have doubts, ask. Open source communities are generally welcoming and seek to help new contributors.
  • Neglecting feedback and not respecting maintainers: If the maintainer asks for changes or suggests improvements, do not ignore the feedback. Contributing with quality means being open to revisions and enhancements in your proposal.

For the coming years, I hope that open source continues to grow, that I can meet more people and projects, contribute more and better, and not only as a contributor but also as a maintainer.

Thank you very much, and I hope you enjoyed the content! Explore more about open source, participate in the community, and in upcoming events! If you have any questions, feel free to leave a comment and provide your feedback.

. .
Terabox Video Player