Motivation

We all love the MLH Fellowship and as MLH Fellows from every track (explorer, open source and externship), we spend most of our time collaborating through Discord & GitHub. However, with so many fellows contributing across multiple repositories, it becomes difficult for mentors to track the progress. That's where GitHub Projects come into play, allowing MLH Fellows to track, collaborate and update their contributions at one place. Currently, GitHub Projects does not have any notification system, so it is easy to overlook:

  1. For fellows to know if a new issue is added by a mentor.
  2. For mentors to keep up-to date with fellows progress, especially if multiple fellows are contributing to a single project.
  3. For maintainers to track which issues are being worked on.

GitHub Project Notifier is a Discord 🤖 aiming to fill the gap by bridging the GitHub Projects with Discord Project channels, so all the fellows, mentors & maintainers get their GitHub Project card updates right on Discord!

Category

GitHub Project Notifier is submitted for categories:

  1. Remote Work/Tooling: GitHub Project Notifier can be used as a project management tool to track progress from your GitHub Projects right on Discord Project channels.
  2. Navigating the Fellowship: A major activity in MLH Fellowship is tackling issues and Open Source Fellows (AKA Issue Hunters 🎯) do an awesome job at closing them! GitHub Project Notifier lets the fellows know immediately of their next delicious prey 😋

What it does

The complete documentation is available at README.md. A list of documented commands are:

  • list: Lists all subscribed GitHub Project boards
    • !github-project list
  • sub: Subscribe to a GitHub Project board
    • !github-project sub https://github.com/[owner]/[repo]/projects/[0-9]+
  • unsub: Unsubscribe from a GitHub Project board
    • !github-project unsub https://github.com/[owner]/[repo]/projects/[0-9]+

How we built it

We started off by a zoom meeting where we explored the somewhat vague idea into concrete functional and non-functional requirements and make sure all the team members were on the same page.

Then, we split off the work based on our interests and skill set. At its core, GitHub Project Notifier acts as a bridge between two APIs, GitHub API and Discord API, built with NodeJS. To easily integrate our bot with repositories and organizations, we built a companion GitHub App. We rigorously applied best open source practices mentioned on the fellow handbook and more:

A complete documentation of our workflow is available at CONTRIBUTING.md.

Accomplishments that we're proud of

Usually hackathon projects are very taxing and involve somewhat late pair programming sessions. This was the first hackathon project where we fully utilized the GitHub Flow. Fortunately, our expertise and issues were not coupled at all, that is why we were able to work asynchronously.

We are very proud of how we were able to work together like an experienced team in such a short period of time. As one of our team members always says:

Talent wins games, but teamwork wins championships hackathons.

What we learned

We explored:

  • GitHub API & GitHub Apps
  • Discord API & Discord Bots
  • Google Cloud Platform
  • GitHub Flow & Conventional Commit
  • Asynchronous workflow

The most successful achievement we had: we completed what we had in mind for the hackathon which happens quite rarely in a hackathon project.

What's next for GitHub Project Notifier

We already have a roadmap outlined for the GitHub Project Notifier where we will support GitHub Projects under GitHub Organizations. A documented issue is available here.

Built With

Share this project:

Updates