Markdown Madness - Game for Contributor
Tags: githubhack23, markdown, githubactions
Published: 2023-05-19 12:58:17

## What I built 
Markdown Madness is an interactive game where contributors can add jokes, memes, posts, or any content in a markdown file. By creating a pull request against the `master` branch, their account and the contents of their markdown files are added to the game.

Players can react to the content, earn points from their own contributions, steal points from other contributors, complete challenges, and even purchase in-game items like thieves and police from the store. The goal is to become one of the top players in the game.

### Category Submission:
Wacky Wildcards

### App Link
https://markdown-madness.vercel.app/

### Screenshots 

React to the content, steal points and complete challenges.
![Markdown Madness Feeds](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j3j0er8aon3kkrp8jk3b.jpeg)


Buy in-game items like thieves and police from store.
![Markdown Madness Store](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1e3qyz14wbgd1l87okgz.jpeg)
---

Find how well you are doing in Profile Stats
![Player Profile Stats](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/weyclrgz1urli94l7goy.jpeg)

### Description 
This game aims to provide contributors some time to enjoy contributing code while playing games competing with other contributors to become the top players.

### Link to Source Code 
https://github.com/rwlanup/markdown-madness

### Permissive License 
MIT License

## Background (What made you decide to build this particular app? What inspired you?) 
Open-source contributors have made our life easy as a developer and we don't have to build everything from scratch handling every single small details. The purpose of the app is to allow these contributors to unwind and have some fun while still making valuable contributions to the project.

My idea is simple, we want contributors to our project to feel enjoyable. Adding feature, debugging codes etc. can be tiresome so let's just make an app that would help them to enjoy while contributing to our project. I would like apps like these to be added to open-source project so that every contributor can enjoy some time gaming.

### How I built it (How did you utilize GitHub Actions or GitHub Codespaces? Did you learn something new along the way? Pick up a new skill?) 
I am new to GitHub Actions, but I always wanted to learn what's possible with this technology. Besides that, I also wanted to learn about Firestore database.

How this application works?
- [Rowy](https://www.rowy.io/) is used as a low-code backend for the game to manage items on store. Everything contributor can buy from store is managed using [Rowy](https://www.rowy.io/).
- [Github actions](https://github.com/features/actions) is used for 2 things:
  - to check for pull request sent to `master` branch, add markdown content, and create account on Firestore database.
  - to create challenges every 4 hours if previous challenge has been completed.

While building this app, I learned how to work with Github Actions, it's features, integrating with existing actions and Firestore database.

### Additional Resources/Info
- [Github actions documentation](https://docs.github.com/en/actions)
- [Firestore documentation](https://firebase.google.com/docs/firestore)
- [Rowy documentation](https://docs.rowy.io/)
- [Next.js documentation](https://nextjs.org/docs)

**HOW TO PLAY**
- Create a markdown file in the `public/madness` folder with random names. Add your madness content. Content can be anything like memes, jokes, feelings, ideas, etc. Just make it fun guys.
- Then create a pull request against `master` branch and wait for the checks(github actions) to complete.
- Once github action completes, your account will be created in firestore database and your markdown contents will be added to the game.
- You can login to your account using credentials:
  - username: `your github username`
  - password: `your github username`. Make sure to change your password or else other can login with your account using username.
- Add reaction to madness contents and this will update their contents score.
- You can collect points from your contents or steal points from other contributor's contents.
- You can buy police(to protect your content points) and thief(to rob other's content points) from store.