128 Classroom
Assignment distribution platform replacing GitHub Classroom
The Problem
At the time of this writing, GitHub Classroom has a bug that invalidates student repository invitations shortly after they are created. Students accept an assignment and a repository is created, but the invitation expires before they can access it. Resending invitations does not always fix the problem, and when it fails, the only workaround is deleting the repository and having the student re-accept the assignment. The second attempt usually works, but sometimes it does not. Instructors across institutions have reported the bug.
For a course serving hundreds of students each semester, this bug turned assignment distribution into a constant source of support requests. Course staff spent time troubleshooting repository access instead of helping students with programming.
Solution
Rather than wait for GitHub to fix the problem, I built 128 Classroom to replace GitHub Classroom with a platform we control. Students authenticate through our existing course identity service, accept an assignment, and receive immediate access to a private repository. The platform creates repositories from instructor-defined templates and adds students as collaborators directly through the GitHub API.
How It Works
Instructors create assignments by specifying a template repository, a category, and optional release and due dates. Categories organize assignments by type, such as MPs, lesson activities, and recitation exercises. Assignments can be prepared in advance and published automatically when the release date arrives.
When a student accepts an assignment, the platform creates a private repository from the template and adds the student as a collaborator directly through the GitHub API. Instructors can track which students have accepted each assignment, look up any student’s repository, and filter by category.
The platform supports multiple semesters, scoping assignments and student records to the active semester while preserving historical data. A CLI tool supports bulk administrative operations, and an impersonation feature lets administrators view the platform as a specific student to troubleshoot issues without requiring the student to be present.
Educational Impact
As of Fall 2025, the platform has served over 500 students and created thousands of repositories without a single invitation failure. Students accept assignments and begin coding immediately.
Administrative overhead has dropped considerably. What once required manual troubleshooting of failed invitations and repository deletions now works automatically.