This tool copies groups from one course to another. The course groups are copied from is referred to as the Source Course. The course the groups are copied to is referred to as the Target Course.
Assignments and Discussion Topics that are set as a group assignment in the Source Course are located by the tool. It will attempt to find the same assignments/discussions in the Target Course and if found, will associate them automatically with the newly copied groups, mirroring how they are associated in the Source Course.
To install execute:
# Clone repository
$ git clone https://github.com/byuitechops/canvas-copy-groups.git
# Step into created folder
$ cd ./canvas-copy-groups
# Install dependencies
$ npm i
# If you would like to use bins as global tools
$ cd ..
$ npm i -g ./canvas-copy-groups
While in the install directory in your commandline, run:
$ npm start
You will be prompted to answer four questions:
- Source Course ID (copying from) - <Canvas Course ID for Parent Course>
- Target Course ID (copying to) - <Canvas Course ID for Child Course>
- Delete the default "Project Groups" category? - <Yes or No> (default is yes)
- If there are students currently in this category, generally refrain from deleting this. Teacher preference often takes precedence.
- Delete existing matches in target course? - <Yes or No> (default is yes)
- If there are students currently in these groups you should NOT delete existing matches in the target course.
- Log report to console? - <Yes or No>
While in the install directory in your commandline, run:
$ npm run-script wrap
You will be prompted to answer three questions:
- File path to CSV list location - <File path from current directory to CSV> (default is ./test.csv which only works from the canvas-copy-groups directory) Your CSV needs to include at the very least the following:
source,target
11111,11112
22222,22223
33333,33334
44444,44445
- Delete the default "Project Groups" category? - <Yes or No> (default is yes)
- Log report to console? - <Yes or No>
If you installed the tool globally you will be able to use the following bin commands instead of running npm start
or npm run-script wrap
:
# Single Use
$ CopyGroups
# Multi Use
$ WrapCopyGroups