Note: You are currently viewing documentation for Moodle 3.11. Up-to-date documentation for the latest stable version of Moodle may be available here: Group Choice.

Group Choice

From MoodleDocs
Revision as of 13:23, 14 July 2021 by David Mudrak (talk | contribs) (Text replacement - "class="nicetable"" to "class="wikitable"")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Note: New to Group choice? Try our Group choice quick guide.


This block has been developed originally for the teachers of the university Polytechnic of Montreal (as a summer internship). The needs that the teachers had is to let the students being able to form their groups, with groups already created by the teachers the standard way.

Social Student Group Formation

Since the students are the ones that form the groups, it means that there is a social interaction that has to be considered.

There are two ways to join a group:

  1. A Student sends an invitation to a group's teamleader teamcreator.
  2. A TeamCreator sends an invitation to a student to join its group.

There are some more few things that are important to know for the teamcreator:

  • if the group is originally empty, the first student that try to send an invitation become the teamcreator.
  • the teamCreator of a group is defined by the timestamp of the mdl_groups_members "timeadded" field.
    • If a teamCreator quits the group, the next student that has the min(timeadded timestamp) become the next teamCreator (or the group is empty).

Why There is a TeamCreator?

The reason why we added the concept of a teamleader is because we were at the problem where if a student has sent an invitation to a group's members:

  • All the members should accept the student's invitation for him/her to join the group (which increase the complexity!)
  • It is not fun for the students if they HAVE to login to send an invitation to a group in which they know they will be part.
  In fact this is the major reason why a teamcreator has been used has a main concept for the block. 
  Because how the groups are formed is normally someone in the group that write the names of the other students of the group and give the paper to the teacher for the group formation.

Note: invitation will be changed for request in the future.

Use Cases

title The teacher sets the block's preferences
Scenario The system display the page "Preferences". The teacher sets the data he/she wants the block to have, then click "Save changes". The system checks if the input received is valid and save in the DB the new preferences of the block's instance for the course.
Alternative 1. The input is not valid:

The page show a box indicating that the data has not been saved.

title The teacher checks the course's groups and groupings
Scenario The System shows the page "Group List". The Teacher can see the groups and groupings used for the course's. The Teacher can also see which student is alone and is not part of a group (todo: by groupings too).
Alternative N/A

title The teacher export the course's groups
Scenario The System shows the page "Export Groups". The Teacher choose the data that the export file should contains, choose the format of the file and append the email address of the people that should receive the file. Then clicks on "Export". The System create the file with the input's data and sends it to the emails written.
Alternative 1. No email has been written:

The System create the file with the input's data and force the download to the local machine.

2. Try to uncheck the student's Email option: The system show a message indicating that indicates that this data must be present in the file.

title the student visuzalize his/her groups
Scenario The System show the page "Summary". The Student can now vizualize the groups and groupings in which he/she is part of.
Alternative The student is not part of any group:

The system show a message indicating that the student is not part of any group.

title the student sends a resquest to a group
Scenario The System show the page "Join a Group". The Student click the checkbox of the group he/she wants to join, then clicks on "Join Group". The System appends the student's request in the DB. Then show a message indicating that the request has been sent.
Alternative 1. The student is already part of the group/grouping:

A green tick replaced the checkbox.

2. The Student can't join a group/grouping:

A red mark replaced the checkbox.

3. A request between the student and the group is present in the DB:

A clock replaced the checkbox meaning the request is in pending.

title the teamcreator sends a request to a student
Scenario The System show the page "Add Student to Group" and select the first group found for the teamcreator. The teamcreator clicks on the group he/she wants to modify. The System refresh the list of the student that can be selected by the teamcreator. The teamcreator checks the checkbox on the row of the student he want to invite into his/her group, then clicks "Add To My Group". The System add the Request into the DB.
Alternative 1. The user is not a teamcreator:

The system show a message indicating that the user is not a teamcreator for any group.

2. a request for a student (for the teamcreator's group selected) is already existing in the DB:

A clock replaced the checkbox indicating the request is pending in the DB.

title The student quits one of its groups
Scenario use-case(the student visuzalize his/her groups) --> The student clicks on the link "Leave this group" on the same row representing the group. The System remove the student from the group in the DB, then refresh the page "Summary".
Alternative N/A

title Accept/Refuse an invitation
Scenario The System show the page "Summary". The student/teamcreator can see the requests for joinning a group. The student clicks on "Accept" on one request. The System append the student in the group into the DB. The Student clicks "Refuse" on another request. The System removes the request from the DB.
Alternative N/A

Understand the invitation Request system

The most complex part of the block, is the request system between the students to join a specified group.

little icones signification

The student/teamcreator can encounter 4 type of relation with the group.

  1. tick: meaning you're already part of the group.
  2. Cross.png: meaning you can join the group.
    1. You are already part of the group that has this icone.
    2. You are part of another group that has the same grouping that the group having this icone.
  3. clock: meaning the request is in pending.
    1. The student has sent a request to the teamcreator of the group and wait to be accepted.
    2. The teamcreator has sent the request to the student and wait for him to accept it.
  4. checkbox: you can select the group to send a request to join. (all clear to send the request)

student sends a request to the teamcreator

In this context, the student is seeking for a group that he/she wants to join. When the student is in the "join a group" tab, he can see the different groups he can send a request to join.

teamcreator sends a request to a student to join his group

The teamcreator has to select the group in which he wants to add student(s).
A Green Dot indicates the current group that will send the request(s) to the student(s).
A Red Dot indicates that the group is not currently selected to send requests.

DataBase model for the request system

The information that is kept in the DB for the request system is composed of 4 important elements.

  1. group_id: the id of the group to join.
  2. user_id: the id of the user that will be added to the group.
  3. course_id: the id of the course in which the group formation takes place.
  4. action_from: from who the request has been sent? (student or teamleader)

with those informations, and equipped of the course_id, when a student or a teamcreator accepts a request. the mapping can be done between the member and the group.

TODO list

Here is the todo list of things that would improve the block. <info gathering>

This page is under construction

See also