Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-76136

Messaging Phase 1.1 - Integrate chat services with Moodle LMS

XMLWordPrintable

      Background

      This is the first phase of reviewing and improving the messaging, notifications and chat in functionality in Moodle LMS

      This first step is to integrate Moodle with the Matrix (https://matrix.org/) open standard to allow teachers and students to more easily communicate while using Moodle for teaching and learning.

      Phase 2 will consist of a complete review of messaging, notifications and chat in Moodle.

      Research

      The parent IDEA-2 issue for this epic contains al large amount of the initial research and investigation. A good place to start is the summary below (see IDEA-2) for more.

      External Research Summary

      User Stories

      The following are high level user stories for this phase:

      • As a student I want to be able to join the matrix chat for my course from the main course page in Moodle. So I can communicate with the peers in my course and ask my teacher questions.
      • As a student I want to be able to join the matrix chat for my course from any Moodle activity main page. So I can communicate with the peers in my course and ask my teacher questions.
      • As a student I want to be able to contact one of my peers using matrix from their user profile page in Moodle. So I can chat directly to them.
      • As a Student I want the Moodle course short name included in Matrix chat room name and description so I know which chat in Matrix relates to which of my courses. 

       

      • As a teacher I want to be able to join the matrix chat for my course from the main course page in Moodle. So I can communicate with my students.
      • As a teacher I want to be able to join the matrix chat for my course from any Moodle activity main page. So I can communicate with my students.
      • As a teacher I want to be able to contact one of my peers using matrix from their user profile page in Moodle. So I can chat directly to them.
      • As a teacher I want to be able to enable or disable Matrix integration for my course from the general course settings. When enabled I expect a “room” in matrix to be created asynchronously in the “background” for my course and students in my course with active enrolments to be invited to that room. So I can control how my students communicate in my course.
      • As a teacher I want to be able to set the Matrix room name for my course in the general course settings in Moodle. With a sensible name set by default. So I can customise the experience for my students.
      • As a teacher I want students invited and removed from my courses room in Matrix based on their enrolment status in my Moodle course. Where an active enrollment means they are in the room, and a suspended or not enrolled status meaning they are not in the room. So that only students with active enrolments can participate.
      • As a teacher when my course has been configured to create a matrix room for my course, I understand that there may be a delay in the room being created on the Matrix server. So I want a visual indication that allows me to check the creation status of the chat room for my course
      • As a teacher when I explicitly configure a matrix chat room from my Moodle course, I don’t want to be blocked from other actions while the chat room is being created for me in the background.

       

      • As an admin I expect that matrix chat rooms for existing courses are not enabled by default when I upgrade to Moodle 4.2. So not to confuse the teachers at my organisation.
      • As an admin I expect that matrix chat rooms for new courses are enabled by default when I upgrade to Moodle 4.2 (providing I have configured my Moodle to connect to a Matrix homeserver).  So that going forward new courses have a better communication experience.
      • As an admin I want to be able to set a default for new courses to either have Matrix rooms created or not. To assist my teachers.
      • As an admin I want to be able to enter the details of my organisation's homeserver, including the administration user details. So my Moodle can connect to my organisation's Matrix server.
      • As an admin I want to be able to configure Moodle to create users in Matrix for my users in Moodle. So my Moodle users can connect to my organisation’s Matrix instance,
      • As an admin when configuring Moodle to create users in Matrix I want to define the users login type in matrix (SSO or password). So my users can log in correctly to my organisation's Matrix instance.
      • As an admin I want to be able to map an existing user profile field to a Matrix unique identifier. So that when a user in Moodle performs a matrix related action they are correctly identified in Matrix
      • As an admin I want to be able to enable or disable the Matrix chat functionality via the Moodle LMS settings (subsystem). So I can control and evaluate how my organisation has access to this functionality.

       

      • As a Moodle developer I want a Moodle subsystem that supports plugins with a suitable API so that I can write plugins that integrate with various chat systems like Matrix.

      Development environment

      A development environment with all the things to setup Moodle and Matrix (Element and Synapse)with SSO by Keycloak (including HTTPS).
      It's available here: https://github.com/mattporritt/moodle-docker use the "omnibus" branch.

      The Readme in the branch should contain all the steps to get everything setup (it does assume a Mac OS based environment)
      It's a pretty aggressive fork of the standard Moodle HQ docker repo, so it may not be worth upstreaming it. But it will take out a lot of the work in setting up a dev env for the project

       

            matt.porritt@moodle.com Matt Porritt
            matt.porritt@moodle.com Matt Porritt
            Votes:
            12 Vote for this issue
            Watchers:
            26 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day, 2 hours, 10 minutes
                1d 2h 10m

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.