How to clean up all students work?

I use the Github classroom to create individual assignments. All students’ work were added to my Github account. At the end of the semester, I want to remove all students forked projects from my Github account (but keep my master template). I don’t need to create a new classroom again and all assignments can keep the same link. Is there any way can easily clean the classroom?

1 Like

Prof Zhang,

I did the same thing that you did the first time I taught with GitHub Classroom. I ended up deleting them one at a time.

This is what I do now:

  1. Create an organization that has all the master repos
  2. Apply for the Educational Discount for the “Pro” account on the organization
    This organization exists from the beginning and I add/modify repos in it every semester.

This next part should be done at least a month before the class:

  1. Create an organization for each class (i.e., “UA GIST 604B Fall 2019”). If I were teaching multiple sections I might use the same organization for both sections, but I would probably make a new organization for a new semester since class material changes.
  2. Try to apply for the Educational Discount for each new organization but it doesn’t let me since I already have an outstanding request
  3. Email GitHub support and ask to apply the discount to the other organizations
  4. Wait some amount of time (weeks) before they are approved.

Starting the class:

  1. I add all the students to a new Team and give the Team Access to a private repository that I call “syllabus”. I like to keep it private because I use GitHub Classroom URLs to accept the assignments and I don’t want just anybody cluttering the repo.
  2. I create a new ClassRoom in GitHub Classroom with the newly created organization. I tried adding the students to classroom, too, but not everybody joined so I don’t worry about Classroom membership.
  3. Each new assignment is a “template” assignment from the master repo. I haven’t made students admins of their own repos but I think I will next time so they have more control over its future.
  4. Students make branches and submit a PR indicating that it needs to be graded.

Finishing a class

  1. All the student repos are in a single organization so it won’t clutter your personal github.
  2. I wish I could transfer ownership of the repos to the students. Maybe it would be easier if I I made them admins through GitHub Classroom.

I’ve thought alternatively of skipping GitHub Classroom altogether and just having them make forks of the master repo; I think that workflow is more like real life and it would give them full permissions on it. Then they could submit PRs to merge with master and I would just grade them and close them without merging…

1 Like

Hello Aaryn Olsson,
Thank you so much for those suggestions.
I am thinking to manually delete all the assignments in my classroom. By this way, all students’ forked projects will be removed from my github account. I need to add all assignments back at each new semster.

Or I can delete the organization to remove all project all at once. But I need to re-apply the free organization again (may take 1 weeks).

I think that recently the education program does a single verification of your status and its good for a while. I have been able to upgrade organizations for use with classroom very quickly since this change (less than a min… just reload page and it says its done). This change in verification has allowed me to use a new org each semester. I use to use one org per course and run scripts to create/delete repos within the org when necessary. However, with the recent verification change, I’m just making a new organization for each semester.

I keep my organizations around for at least 1 year due to school policy of keeping student work for a year. I haven’t deleted anything since the verification changes it really doesn’t bother me to have an old organization around. Pretty sure that if you delete the org, the repos in it will be deleted.

Once you have your org set up, you can create a repo with your starter code then use github classroom to create an “assignment” using your code within your starter code repo as the base. The students can then just use the assignment link to create a private repo within your organization.