classroom
classroom copied to clipboard
Classroom After-life Project
Related to #602, #1976, and #438
Many teachers have requested the ability to archive/hide old classrooms. Currently their only option is to delete the classroom and all of its repos entirely, or leave the dead classroom in their dashboard which makes it difficult to find their active classrooms.
There's many ways we can handle the after-life of a classroom.
Teachers may want to archive the classroom and the repositories with it. Teachers may want to archive the classroom and transfer the ownership of the repos to the students. Teachers might want to publicize the assignment repos after the class is completed.
Steps:
- [x] Add ability to archive classroom (hide or distinguish archives classrooms in list) #602
- [ ] Add ability to transfer ownership of assignment repos to the students (would only work for individual assignments) #1976
- [ ] Add ability to publicize all assignment repos #2031
- [ ] Add ability to archive all assignment repos through github API (prevents any further commits/changes to repo)
Quick note:
- We can archive repos through the api however we cannot un-archive them through the github api. If teachers archive all of the student repos it cannot be undone through classroom.
I'm going to start on the first step (adding ability to hide/archive classroom in list). @d12 what do you think about the rest of these goals?
This is great! Thanks for writing this up. The main thing I'd like to change is to move that step 2 Add ability to archive all assignment repos through github API
to the very end. I'd say it's the least important and least requested in the list.
When archiving Classrooms, let's do it in a way where we don't delete anything, we just move the classes to a different "archived classrooms" view or tab.
When doing the transfers/publicizing/archiving of repos, we need to make sure this is written in a retryable, idempotent way. Also, all 3 are essentially the same, just a different API endpoint. We could probably implement all 3 with mostly the same code.