Teams (capability)
For detailed product information on Teams, see the relevant section of the Building and Running an Open edX Course guide.
Summary
This document specifically describes the current architecture of Teams, including the data model, features, and permissions.
The source code for teams primarily lives in the edx-platform repository in GitHub. For more details, see the feature landing page: /wiki/spaces/LEARNER/pages/19006021.
Model
ENABLE_TEAMS setting in edx-platform
Requires Discussions capability (coupled to Discussions permissions, and requires a linked Discussion topic)
Topics (API: /api/team/v0/topics)
have an ID, name, description
belong to a course
stored in course structure (mongo)
Teams (API: /api/team/v0/teams)
have members
have instructor-defined limits for capacity (set once, globally, at a top level)
have user-defined name, description, language, and geography settings
have system-managed ID, date created, and last activity metadata
belong to a course
optionally belong to a team topic (but if they don’t, they aren’t discoverable)
have an associated discussion topic (auto-generated at team creation time with GUID)
stored in RDBMS (mysql)
Members (API: /api/team/v0/team_membership)
belong to a team (limit one team per learner)
have system-managed date joined and last activity metadata
stored in RDBMS (mysql)
Discovery
Teams are grouped into topics for search purposes
The Teams tab automatically appears if the course team sets a non-empty dictionary in Studio's advanced settings
Teams have activity, which right now is just related discussion forum posts (but is extensible based on Django signals)
Thread and comment activity automatically updates team metadata
Learners can search for teams (but only within a selected topic, there’s no top-level search except via API)
Rules
Learners can view any team’s forum posts, but can only add posts to those linked to their teams
Learners can join or leave a team at any time, provided they’re enrolled in the course
Learners can create teams
The LMS does not let learners modify these settings after team creation (except staff)
Staff here means: admin, discussion moderator, discussion admin, community TA
Learner is automatically added to a team they create
Learners can only be part of one team at a time, except for course staff
Instructors can create topics in Studio via Advanced Settings
Course staff can delete teams and remove members from teams