Opening up my Open Source Projects for Hacktoberfest
Tags: hacktoberfest, beginners, opensource
Published: 2022-10-09 15:34:16

Calling all beginners!  

Are you interested in participating with [Hacktoberfest](https://hacktoberfest.com/), but find many of the projects a little complex to participate in?  I have a couple opportunities for you!  

## NPM:  Card-dealer
The [card-dealer](https://github.com/theaccordance/card-dealer) package was a simple package I created several years ago based on a coding test I had to take for a mid-level software engineering role.  The runtime boasts no dependencies (only devDependencies!), but does with a curveball of a **strict 100% test coverage requirement**, but it could also be an opportunity to learn unit testing in a simple scenario!  
Card Dealer is written in **TypeScript** and **Markdown**.

### Participation Ideas
- **Add new decks to the package:**  My OSS package includes a standard 52-card deck and an Uno deck, but there are many other types of card decks out there!  MGT, Pokemon, CAH, the list goes on.  Lots of opportunity to be creative if you desire!  
- **Add new dealer methods:**  So far I have implemented a core set of methods related to Dealer actions involving a deck of cards, but there may be more use cases with other decks.  
- **Game Management**:  Currently, the scope of this package is exclusive to the actions around dealing cards, but I've contemplated adding more game management aspects to the package.  
- **Add a feature that exits in a [fork](https://github.com/theaccordance/card-dealer/network/members):**  Many forks exist because they required a slight variation to my implementation, which presents an easy opportunity to port those changes back!  
- **Update documentation**

![giphy](https://media.giphy.com/media/yUtYMPgFwXjhwzJ0aY/giphy.gif)


## Github Actions: Balena Push
[Balena push](https://github.com/theaccordance/balena-push) is an open-source package that was born out of both need and opportunity with the introduction of Github Actions. At the time, I was using the IoT platform [Balena.io](https://www.balena.io/) to manage a fleet of Digital Signage (TVs with Raspberry Pis) within my company's office.  The Github action enables you to continuously deliver your project to Balena by pushing changes to the platform.  

Balena Push is written in Docker and Shell.  

### Participation Ideas
- **[Pass Flags](https://github.com/theaccordance/balena-push/issues/6):**  Looking over the forks of my OSS package, I found that someone had forked purely to pass flags I didn't need when I authored the package.  The linked ticket should help you get started.  
- **Integrate further with the CLI:** The Github Action itself just uses the Balena CLI to execute a push command.  Take a look at [Balena's CLI docs](https://www.balena.io/docs/reference/balena-cli/#push-fleetordevice) and if you see a way to extend, feel free to take a stab at it!  
- **Add a feature that exits in a [fork](https://github.com/theaccordance/balena-push/network/members):**  Many forks exist because they required a slight variation to my implementation, which presents an easy opportunity to port those changes back!  
- **Update Documentation**

![giphy](https://media.giphy.com/media/DpNOlWx7F77IG9stWa/giphy.gif)


## IoT:  Digital Signage
[Digital Signage](https://github.com/theaccordance/digital-signage) is an open-source service that I put together to turn the Televisions around my company's office into useful displays for things like Activity Feeds (our own product) and Operational Dashboards (Datadog).  

### Participation Ideas
- **Update documentation:**  So I have a confession to make - I didn't write any docs for this project.  I usually overlook this one when I talk OSS, but it is public and the project can be forked and reused by others.  While the lack of a README is typically a barrier for participation, the project was born based on tutorials.  Google `balena-wpe` to find numerous guides around the actual service driving the project.  
- **Update the subpackage dependency:**  As mentioned above, my digital signage uses `balena-wpe` as a sub module, but hasn't been updated in ages.  This is a good opportunity if you want to sharpen git skills.  
- **Enhance the github project:**  Since I have overlooked this as OSS in the past, it doesn't have a lot of the enhancements I've made to other projects.  I discuss many of these in my post [How I maintain OSS](https://dev.to/theaccordance/how-i-maintain-oss-projects-2oeo), and several of these can be direct copies from the files I've added to my other OSS packages listed above.  

![giphy](https://media.giphy.com/media/Q8DQRJ7X3ps5y4TRnh/giphy.gif)


## Need Help?
Do you want to participate but not sure how to get something across the finish line?  Open a Pull Request and we'll begin a discussion to help get your PR in an acceptable state to be merged.  You may also DM me on Hacktober's [Discord Server](https://discord.gg/hacktoberfest) under the name `mainwaring`

Got an idea I didn't mention above?  Start a conversation as an Issue.