Behavior Replication Proposal
This proposal involves building a new user grouping system that internally replicates the behavior of legacy mechanisms (such as cohorts, teams, or enrollment track groups), but without maintaining a direct synchronization with them. Instead of integrating with the existing systems, the new system is designed independently, incorporating the necessary logic, possibly based on the current one, to reproduce the existing functionalities within its domain. This would eventually allow the legacy mechanisms to be phased out once all necessary functionalities are implemented.
Phase 1: Adding the New Model (MVP)
This phase is planned to be completed during the Ulmo Release.
Objective
Implement the foundational user grouping system at the course level to allow course delivery teams to create, view, and manage static user groups. This MVP provides the minimal functionality needed to start grouping users manually, without replacing or affecting the legacy grouping mechanisms (Cohorts, Teams, Enrollment Tracks).
This phase includes only the creation and management of static user groups defined explicitly by username or email. No dynamic or criteria-based grouping is supported yet. More details in the https://docs.google.com/document/d/1P8_6yDgtap4GHJQp-88mUaW9rXQ9TXebHYSlxO4WjM4/edit?tab=t.0
Specific Actions
1. Data Model, Core Logic, and Static Group Management
Implement the initial data models:
UserGrouping,Membership, etc.Include metadata for each group: name, creation method, last modified date, and number of users.
Enforce validation logic, including uniqueness of group names at the course level.
Enable creation of static user groups by:
Entering usernames or emails manually.
Uploading a CSV file.
Allow instructors to:
View group membership and metadata.
Edit group names and membership.
More technical details in the Unified User Group Model Technical Approach
2. Controlled Activation
The new user grouping system will be disabled by default. It will support activation at different levels (course, organization, or platform) through a configurable flag by operators. This enables controlled testing without affecting full production instances.
UI Available
A new tab will be added within the instructor panel to manage the new user grouping system.
The legacy interfaces for the current user grouping mechanisms will remain unchanged.
Completion Criteria
Phase 1 is complete when:
The user grouping system is implemented and integrated into the platform, with controlled activation via a feature flag.
Course teams can create and manage static user groups by username or email.
A tab in the instructor dashboard is available for managing user groups.
The user grouping system operates independently without affecting legacy systems like Cohorts, Teams, or Enrollment Tracks.
Phase 2: Replication of Legacy Group Behavior
This phase is planned to be completed during 2 releases (Verawood & W Release).
Objective
Extend the unified user grouping system to support dynamic groups based on criteria and replicate the key functionalities of legacy mechanisms (Enrollment Tracks, Cohorts, Teams). During this phase, both systems will coexist without interference. Functionality will be implemented incrementally, focusing on one category at a time.
Specific Actions
1. Mutual Exclusivity
Ensure that users belong to only one group within a Group Collection. More details in the Mutual Exclusivity in User Groups document.
Applies across:
Enrollment Track Groups
Cohorts
Teams
2. Content Gating
Enforce content gating based on group membership.
Learners only access units or components that match their group.
Applies across:
Enrollment Track Groups
Cohorts
Teams
3. Divided Discussions
Support divided discussions based on group membership.
Validate that learners only see and interact with discussions appropriate to their group.
Applies across:
Cohorts
4. Nested Group Support
Replicate team structure: team sets and teams.
Enable group hierarchies within a course.
Applies across:
Teams
5. Custom ORA Assignments
Support group-targeted ORA (Open Response Assessments).
Ensure instructors can assign different ORA blocks to different groups.
Applies across:
Teams
6. Testing and Validation
Learner experience: Verify correct content visibility, mutual exclusivity, group-based discussions, and access to custom ORAs.
Instructor experience: Validate group creation, management, and assignment through the new interface.
Performance: Run functionality and load tests in high-enrollment courses.
UI Availability
The Instructor Dashboard tab will remain the main entry point for group management.
Legacy management interfaces (Enrollment Tracks, Cohorts, Teams) will remain unchanged during this phase.
Completion Criteria
Dynamic groups are created and refreshed based on defined criteria.
All targeted functionalities are replicated in the new grouping system:
Content restriction based on group membership works as expected.
Mutual exclusivity is enforced per group type and scope.
Group-specific discussions are functioning.
Nested groups (like team sets and teams) are fully supported.
ORA assignments can be restricted to specific groups.
No regressions are introduced.
Legacy grouping systems remain functional and unaffected.
Phase 3: Legacy Groups Removal
This phase is planned to be completed during the X Release.
Objective
Complete the migration to the new system by fully removing everything related to legacy grouping mechanisms (Cohorts, Teams, Enrollment Tracks), both in the backend and frontend. By this stage, there should be no remaining technical or functional dependency on legacy models. The focus shifts to cleaning old code, updating documentation, and validating the system at scale to ensure no regression in user or instructor experience.
This phase will be executed gradually, in the following order:
Enrollment Track Groups.
Cohorts.
Teams.
Specific Actions
1. Elimination of Enrollment Track Groups
Remove old models, serializers, signals, managers, and utilities related.
Cleanup of views, endpoints, and logic in services.
Remove legacy UI and MFE (Studio and LMS), such as Group Configuration Settings.
2. Elimination of Cohorts
Remove old models (
CourseUserGroup,CohortMembership,CourseCohort,CourseCohortSettings, etc.), serializers, signals, managers, and utilities related.Cleanup of views, endpoints, and logic in services.
Remove legacy UI and MFE (Studio and LMS).
3. Elimination of Teams
Remove old models (
CourseTeam,CourseTeamMembership, etc.), serializers, signals, managers, and utilities related.Cleanup of views, endpoints, and logic in services.
Remove legacy UI and MFE (Studio and LMS).
4. Remove Flag
Remove the flag that enables/disables the new grouping model. The new user grouping system will be enabled by default.
5. Documentation
Update technical and functional documentation (for devs, operators, and course authors).
Include guides for using the new model and examples of how to apply the criteria.
Offer comparative material between the previous model and the new one.
6. Formal Closure of the Migration
Officially communicate the end of support for legacy mechanisms.
UI Available
Only the new UI for the new user grouping system will remain available. No flag will be required to display the new interface.
The legacy interfaces for the legacy systems were completely removed.
Completion Criteria
Phase 3 is complete when:
All legacy components (models, endpoints, views, and interfaces related to Cohorts, Teams, and Enrollment Tracks) have been removed from the codebase without impacting critical functionality.
Legacy grouping interfaces in both LMS and Studio have been retired. All grouping operations are now performed solely through the new tab in the instructor dashboard.
The platform has been successfully validated at scale, including courses with many users, with no performance degradation or functional regressions.
All related technical and functional documentation has been fully updated to reflect the new architecture.
Phase 4: New Admin Panel Integration
This phase is planned to be completed during the Y Release.
Objective
Migrate all user group management functionalities from the instructor tab to a new centralized admin panel. This new panel will serve as the single point of interaction for administrators and course authors, enabling broader management capabilities with greater visibility, control, and scalability.
Specific Actions
1. Migration of group management functionalities
Move all user grouping features previously available in the instructor tab to the new panel:
Creation and editing of groups.
Management of criteria (manual and automatic).
Manual user assignment or CSV-based bulk assignment.
Display of all metadata related to the group.
2. Enable organization and platform-level scope
Allow group management and configuration at the organization and platform levels.
3. Removal of the instructor tab
Remove the user grouping tab from the instructor panel.
4. Documentation and training
Provide updated guides for operators and course teams on the new workflows.
Include comparative material between the instructor tab and the new panel.
Offer optionally video tutorials, FAQs, and examples of advanced use cases.
UI Available
Only the new centralized admin panel will be used to manage user groups. It will replace the instructor tab in the LMS.
Completion Criteria
Phase 4 is complete when:
All user group management functionalities and metadata display have been successfully migrated from the instructor tab to the new centralized admin panel.
The new panel supports group management at the course, organization, and platform levels, enabling broader visibility and control.
The user grouping tab in the instructor dashboard has been fully removed, and all interactions now occur exclusively through the centralized panel.
The new admin panel is fully functional and accessible, providing a clear, scalable, and intuitive interface for administrators and course authors.
Documentation and training materials have been completed and distributed, including:
Updated guides for administrators and course teams.
Comparative materials outlining the differences between the instructor tab and the new panel.
Optional resources such as video tutorials, FAQs, and advanced use case examples.
The platform has been validated post-migration to ensure functional parity, no regressions, and improved usability.