A rather unusual way of using GitHub Classroom

I work for a small coding school that helps underrepresented groups to start a career into tech. I want to share how we streamlined our classroom setup with bots, integrations, and our API.

How we use Classroom

We’ve been using Classroom to manage and distribute coding challenges. Our coding challenges provide a project-based learning experience in which our students explore a real-world problem, learn Git and GitHub early on, and receive personalized feedback from tutors. Completing a challenge is also a stepping stone to receive a full scholarship backed by our partners.

Challenge Bot

We adopted a PR-based workflow to review challenge submissions. However, many students had troubles to understand the review process via PRs. Inspired by GitHub Learning Labs, we’ve built our own friendly bot that guides them through the review process. Depending on specific events, the bot posts helpful comments and creates status labels (awaiting review, in review, rework needed and more). It also interacts with our API to store the progress in a database.

Challenge API
Again inspired by GitHub, we’ve built a GraphQL API, which is used to match other use cases and technical needs. For example:

  • notify a district manager via Slack that his/her student completed a challenge
  • send classroom link via email with a given deadline
  • keep track of student’s progress

3rd GitHub Integrations
We use other GitHub integrations to auto assign reviews to our tutors and notify them via Slack.

I hope this will give you some ideas about how you could enhance your classroom setup. I suggest taking a closer look into GitHub’s publicly available APIs and its ecosystem of GitHub Apps and integrations. Let me know if you have any questions.


That’s a great example of how these tools (Classroom , API, bots) may be employed beyond their intended use within standard school or academic courses.

Actually, we use GitHub Classroom to support the audition projects (very similar to your challenges) to evaluate candidates throughout our hiring process.

1 Like