Streams and Alerts Message Output for Moodle

Streams and Alerts Message Output for Moodle

by Jason Hardin -
Number of replies: 21

Moodlerooms is proposing the inclusion of two new message output into Moodle. These outputs are Steams and alerts. The specification can be found at http://docs.moodle.org/dev/Streams_and_alerts.

We would welcome any comments on the specificaiton and will be adding a technical specification as well. We have already developed streams and alerts and it has been in use by our clients for a year and a half.  We beleive that these message outputs will bring a less invasive notificaiton system to Moodle than popups, but more invasive than email messages. below is a video of the current working version of the message output.

Average of ratings: Useful (2)
In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Why not just stick them in the plugins database and let people try them? If enough people vote with their feet, and install them, then we have a strong case for adding them to core.

(I have to say, anything that gets rid of the current ugly grey online message notification is a good thing. Then again, there are many good things in the plugins DB, and the pace of getting them into core is glacial. Cough, ForumNG, cough.)

In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Rex Lorenzo -

Would this be available as a plugin? Or does it need to be included into core Moodle, because core edits are needed? 

If it is possible as a standalone plugin, I would like to try it on our system and use it. Seems like a great idea.

In reply to Rex Lorenzo

Re: Streams and Alerts Message Output for Moodle

by Jason Hardin -

The core Moodle requirements would be including the alerts within a theme. 

If alerts were not to be included into Moodle and instead added to the plugin database any site using the Moodle core themes would need to modify the themes to display the alerts. Alerts are not a block, but are instead theme code as they are designed to be integrated into the interface where the theme wants them to show up.

We currently have 3 different themes that each place the alerts in different locations.

Our other reason for wanting this in core is that we beleive that it provides value to Moodle as a whole. It brings Moodle inline with other LMS's notification systems.  It is also a step towards another project we plan to propose in the next 6 months around a centralization of all Moodle communications. 

While I like the community voting with their feet it is unclear to me at what volume the vote is an approval of the plugin and the plugin is considered for inclusion by Moodle HQ. We have roughly 600 sites using alerts currently and loving it (probably increase to 7-800 over this summer). Because they are Moodlerooms clients they would never download the plugin or vote with their feet.

Average of ratings: Useful (2)
In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Stuart Lamour -
Picture of Plugin developers

We added activity streams for users to our moodle back in 2011 and they love it - needed quite a bit of db work for speed & to scale though (we have over 2000 sites for 2012-13 with over 15,000 users).

blog post and video here - 

http://blogs.sussex.ac.uk/elearningteam/2011/08/10/recent-activity-in-moodle/

Average of ratings: Useful (1)
In reply to Stuart Lamour

Re: Streams and Alerts Message Output for Moodle

by Dan Poltawski -

Are you able to share the code?

Average of ratings: Useful (1)
In reply to Dan Poltawski

Re: Streams and Alerts Message Output for Moodle

by Stuart Lamour -
Picture of Plugin developers

@dan sure - its for 1.9 and not using yui - is that still useful?

In reply to Stuart Lamour

Re: Streams and Alerts Message Output for Moodle

by Dan Poltawski -

Sure, if you've worked out problems and generic structures for Moodle its useful. A lot of code has changed between 1.9 and 2.0 but a lot of the underlying ideas are also the same. smile

In reply to Dan Poltawski

Re: Streams and Alerts Message Output for Moodle

by Stuart Lamour -
Picture of Plugin developers

the front end is based on the http://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript which as you can see is pretty simple, but the difficult bit was mangling moodle to scale in its responce times.

Luckly Paolo at sussex has been working on moodle since 1422bc(approx) and can generally get it to to whatever we need.

Amanda from City University London is going to be having a chat with us about implimenting this pattern in moodle next week, would you be able to join us Dan?

In reply to Stuart Lamour

Re: Streams and Alerts Message Output for Moodle

by Amanda Doughty -
Picture of Core developers Picture of Plugin developers

As Stuart has said, I am implementing this atm. I thought about writing a message output plugin, but decided against this for these reasons:

1. We want separation of data and presentation.

2. We want to build an activity stream web service for other applications, such as our student portal, to consume.

3. We want more event notifications than are currently sent as messages.

I have not written a technical specification, but the general idea is:

1. Build a local plugin that listens for events and populates a notification table.

2. Write a block that displays the notifications and incorporates a YUI infinite scroll (sorry Stu - need to be Moodleish. Though if I get stuck I may consider wrapping the Paul Irish jQuery plugin in YUI)

3. Adapt our theme to also display the notifications a la Moodlerooms.

I'll put the work so far in github and post a link this weekend. I only decided on this approach today, so please view it as a work in progress that is very happy to receive critique.

Not sure how close I am to the Joule spec but we don't have time to wait for it. :/

Ta

In reply to Amanda Doughty

Re: Streams and Alerts Message Output for Moodle

by Jason Hardin -

What other notificaitons are you looking to add? We added several events to provide more robust notificatiosn for streams and alerts. These were contributed back to core as well. 

Currently the feedback we get from clients is the message output screen is overwhelming to understand, even with the 2.5 changes to it. As I stated in my main post Moodlerooms really wants to create a centralized message location and look to revamp the user interface for Message outputs to make it better. 

I still think events is a solid way to manage notifications to the user. As such if the new notificaitons you are looking for could be added as events that can go to the message center all message types can support them.

The reason we did alerts and streams as message output types is because we were looking at support for thinkgs like twitter and facebook private messages and separating notifications out of the message center would not allow users to select these message output types as well.

I like the idea for web services, although this seems like a message output type to me as well, something that should be generically built into  the message center or the event system for all event types.

In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Amanda Doughty -
Picture of Core developers Picture of Plugin developers

The ones that I noticed were course updates, so mod_created, mod_updated etc. We also want the main stream icon to be a course image (we will be using Bas Brands Course Image block and maybe fallback to gravatars). It appeared difficult to extract the course id (without manipulating the context url) from the event object that is passed to message outputs. If the data passed to message outputs included a few more fields then it would work better for us.

I am new to this, but I am not sure why messages are events themselves rather than being driven by events?

At City, we need to get something up and running quickly, but it would be fantastic to have some influence over what gets into core, so that we could swap over from our in house plugin relatively seamlessly.

In reply to Amanda Doughty

Re: Streams and Alerts Message Output for Moodle

by Amanda Doughty -
Picture of Core developers Picture of Plugin developers

Yes, thinking about it more, if the course object was included in the eventdata, then this would be perfect. Our users also want to include a course specific actvity feed block in the course pages.

In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Amanda Doughty -
Picture of Core developers Picture of Plugin developers

In light of your suggestions Jason, I have started writing a message output plugin. I am also writing a local plugin to listen for other events and send additional messages. (eg mod_created)

As we really need course info for our block, I have raised an issue: https://tracker.moodle.org/browse/MDL-38405. Could you include this requirement in your spec?

In reply to Amanda Doughty

Re: Streams and Alerts Message Output for Moodle

by Jason Hardin -

Course id associated with a message seems reasonable to me. We didn't really have any plans to make messaging center api changes however in our specification.  

If I were looking to make a change like that though I would probably consider some sort of taging capability for messages. Your idea brought a concept to mind of me around filtering Moodle communications within a central location. Allowing a user to select specific tags and only see a stream of those communication types that have been sent to them. So filters would be around activity type, grade, course, from user and message output. 

So I wouldn't want to limit it to just course id if there is other meta data that could be useful longer term for determining what communications a user wants to see in an interface.

I will add the idea of more meta data to messages to my conversation, it seems valuable to me long term.

In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Paolo Oprandi -

Justin,

I see where you are going but we haven't associated course id with messages.

Nor are our updates in the header specific to the course you are viewing, although we do have course-specific updates based in the course footer.

moodle footer

This is an image of a course footer with course-specific updates.

 

In reply to Dan Poltawski

Re: Streams and Alerts Message Output for Moodle

by Amanda Doughty -
Picture of Core developers Picture of Plugin developers

Work in progress so far:

https://github.com/frogprincess/culactivity_stream

There is a message output plugin, a block and a local plugin that handles some extra events and creates messages from them.

It's lacking error checking and documentation and I have no intention of competing with the Moodlerooms contribution. It is a City Uni plugin but I am happy to share the code and receive feedback. I'll update github regularly until it is finished.

In reply to Amanda Doughty

Re: Streams and Alerts Message Output for Moodle

by Paolo Oprandi -

When we put our "recent updates" system live our users requested a method to mark all as read. I haven't seen that documented here so you might want to add it to any plans you have.

Also the scope of our recent updates is less complicated then the one proposed by moodlerooms. It basically notifies you when an asset (resource or activity module instance) has been added or modified by another user and when a forum post has been added to a forum you are subscribed.

Moodle messages are handled in a different custom alert system (see image below).

messages and updates

And we haven't attempted to add tutor administrative notifications such as assignments and grades, although notifications of this type are included on the users' front page

In reply to Paolo Oprandi

Re: Streams and Alerts Message Output for Moodle

by Jason Hardin -

Do you have specifications around your resolution for Moodle messages. I am going to be working on another specification for a communication hub, and your screen shot speaks to me as to how I could see accessing the communication hub for communications (not sure just messages would do). I am curious how you did the UI for this.

I like the mark all as read. I will add that to the specification.

 

In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Paolo Oprandi -

Hi Jason

We don't have a specification for how our messages work, and not even a blog post!

I am not sure if designing again we would do it exactly the same, but its a bit like facebook whilst keeping the underlying database structure and functionality of Moodle messages.

You see up to five messages in the dropdown- latest first.

message dropdown

if you select "see all messages" you get a page like this:

all messages

You can reply, go to contacts or choose to compose a new message. In which case you search for the message recepient:

compose a message

Then compose:

compose messsage

The only message settings you have is whether to forward messages to you email account:

message settings

Is that what you wanted? 

In reply to Jason Hardin

Re: Streams and Alerts Message Output for Moodle

by Randy Thornton -

While I was at Moodlerooms last year, I did 40-50 site configurations using the Alerts and Streams, and many clients really liked them.

They provide some greatly needed diversity in appearance of messaging, helping to reduce the amount of emails that need to go out (which almost no one ever wants more of). Since their placement is part of the theme, there's a lot of flexibility in where and how they appear.

From the admin side, they're simply additional output options in Messaging Outputs, so it is easy to configure the defaults. If you don't want them, just turn them off (like Jabber, for instance.)

Users can set these in their profiles (if you allow it) like other Messaging outputs, so you will need to provide some end user documentation/training or whatever so they know how to set them.

The only consistent complaint I got about them is that changed administrative level settings can not be pushed out to users en masse. But that is limitation of Messaging outputs and user profiles in general.