Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

manage group assignments #396

Open
kcranston opened this issue Apr 8, 2021 · 4 comments
Open

manage group assignments #396

kcranston opened this issue Apr 8, 2021 · 4 comments
Labels
enhancement New feature or request

Comments

@kcranston
Copy link
Collaborator

kcranston commented Apr 8, 2021

In some of the EarthLab courses, there are group assignments. Each group is a GitHub Team. We won't use nbgrader for these assignments. How can we modify abc-classroom to clone group repos and push feedback?

@lwasser
Copy link

lwasser commented Apr 8, 2021

Issues related to group vs. individual repos which use gh usernames vs. team names

If the assignment is called final-project - you will have repos called final-project-*

  • final-project-group-zz

Issues Associated with Not using Nbgrader

  • abc-clone - we don't need to copy files over to /nbgrader/submitted - what happens when abc-clone can't find the submitted directory or if we don't need it?
  • Create feedback -- doesn't exist - we won't use nbgrader to create html files. html files don't render well
  • How do we push feedback - does abc-feedback just do the push to github part?
  • don't have a feedback directory if we aren't using nbgrader
  • i kind of want a abc-push at the end just to update the student repos

Maybe we have a flag on abc-clone that skips moving files over to submitted?
maybe we have a flag abc-feedback that skips moving files and just does abc-push??

@kcranston
Copy link
Collaborator Author

The students create the group names, and they can use spaces. GitHub replaces spaces in the UI with '-', so "group xx" becomes "group-xx" in the team name, repo name, etc.

@kcranston
Copy link
Collaborator Author

Steps for group assignments (and how they differ from non-group assignments):

Create assignment (abc-new-template, abc-update-template)

  • DIFF? currently assumes source files in course_materials/release/assignment_name dir (which might not exist if you aren't using nbgrader). Allow user to specify different source directory?
  • OK: template location at template_dir/assignment-template
  • OK: name of repo, assignment-template

Clone repos (abc-clone)

  • DIFF: can't use existing student roster; need to provide list of teams / groups
  • DIFF: repo name will be assignment_name-team_name (not assignment_name/student)
  • OK: cloning into clone_dir/assignment_name
  • DIFF: do not need to copy files from cloned_dir into course_materials/submitted

Feedback (abc-feedback)

  • DIFF: can't use existing student roster; need to provide list of teams / groups
  • DIFF: the feedback files won't be in course_materials/student/assignment_name (instead in clone_dir/assignment_name/repo_name/feedback?
  • DIFF: the feedback files might not be html

@kcranston
Copy link
Collaborator Author

kcranston commented Apr 15, 2021

Implementation thoughts:

  • I am tempted to create a separate set of scripts, abc-group-template, abc-group-clone, abc-group-feedback (or team instead of group?) to avoid having a huge number of command line arguments on the existing scripts
  • we can re-used much of the existing implementation as long as we allow for roster, directory locations as parameters to functions
  • for abc-classroom as a library, we might have python classes for assignments with different constructors for individual vs group:
assignment1 = abc.assignment(roster, assignment-name, other parameters)
assignment1.create_template()
assignment1.clone_repos()
assignment2 = abc.group_assignment(different-roster, assignment-name, other parameters)

@kcranston kcranston added the enhancement New feature or request label Feb 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants