View all projects
Side Project

Minesweeper

Aug 2018 - Nov 2024
*Email me to request access to private repos

About the project

I originally built this Minesweeper game with pure JavaScript, HTML, and CSS as a fund side-project that allowed me to perform direct DOM manipulation.

After building the base game, I decided to make the project available to other developers for collaboration over Hacktoberfest. I have since rewritten the game in TypeScript.

Reflection on the Hacktoberfest experience

Hacketoberfest is a yearly event where all participating developers on the GitHub platform are encouraged to make a certain number of contribution to open-source projects in return for a reward consisting of a free t-shirt and a few other items. As one of the open-source projects, the game attracted a fair amount of interest with 11 developers adding to the code base. All code changes by other developers had to be approved by myself before they could become part of the main code base. However, many developers were trying to make rushed, poor-quality contributions to obtain the Hacktoberfest goals. This meant I needed to carefully screen contributions to avoid problematic code entering the repository.

To better manage the process, I created documentation with contribution guidelines. The process required creating a GitHub "issue", explaining the purpose of each contribution. Additionally, I tested incoming code changes before accepting them. Invalid changes were declined, and any bugs or issues that were detected had to be fixed before changes were approved.

Contribution guidelines screenshot
Image: Contribution guidelines screenshot

Although the approach was reasonably effective at ensuring quality contributions, some issues still made their into the code base, resulting in unexpected game behaviour in certain cases. Regardless, the project achieved its goal of fostering community collaboration.

GitHub collaborators screenshot
Image: GitHub collaborators screenshot

This experience demonstrated that successful collaboration requires clear communication. The contirbution guidelines set expectations and resulted in a smoother process. Additionally, I learned the importance of reviewing others' work as a means of quality control. Engaging with the developer community on a also exposed me to some of the challenges of teamwork and how to approach them to ensure smooth collaboration.


  • JavaScript
  • TypeScript
  • HTML
  • CSS
  • Web Development
  • Teamwork
  • Side Project