Weekly exercise topics with hidden replies

We run a math-olympiad training program where we meet with interested students every six weeks, and would like them to do homework assignments in the meantime. Traditionally we do this by mail but I’m planning to try out Discourse. This could allow us to have many smaller deadlines instead of a few big ones, give more immediate feedback for the students, and have a forum for interaction between the students.

Here’s how I imagine it would work: we post a weekly problem as a new topic, which we immediately lock so that the students cannot reply to it publicly. We ask them to send their solutions as private replies, either using mathjax formatting with discourse-math or as an attached file. After the deadline we unlock the topic and send feedback to everyone who sent in a solution, and possibly post an official solution (or encourage the students to post their solutions as public replies).

The only thing that seems to be missing is a “reply by private message” button. You can click on the username that started the topic and send a private message, which I suppose is easy enough if we include some instructions with each problem. But how hard would it be to build a plugin to add a direct “reply privately” button for locked topics? I like to think I’m a reasonably competent programmer but have no experience with the Discourse code base so far. If there is any vaguely similar plugin that modifies the message actions, that would likely be a good starting point.

Another nice feature would be a countdown to the deadline, and automatic unlocking of the topic so we don’t have to do that manually.

Does this seem like a reasonable use of Discourse or am I going to run into unexpected problems? Does anyone have experience with gathering homework using Discourse?

1 Like

The workflow as I see it cries out for a plugin. It seems like it would be a bit much to educate users.

  1. Create an assignment topic, then immediately Close it
  2. Users click Reply to open the composer
  3. Users click the curved reply arrow icon to open the drop down
  4. Users click New message and post their answer

Then comes “work” that I’m not sure a plugin could automate with more finesse, but maybe.

  1. Topic creator reads / replies to individual messages
  2. When done, reopens assignment topic
  3. Moves messages into the assignment topic

I think CSS could be used so that only the New message option displays. But I’m thinking better would be JavaScript so that when the Reply is clicked the composer automatically opens as a New message. i.e. step 2 goes directly to step 4


Instructions on how to

  1. click / tap your avatar
  2. click / tap “message”

posted as the last reply in the topic, and then closing the topic, should probably suffice, I would think?

@techapj is there a way to formulate a link that triggers a PM? That could also be posted in the last reply in the topic if it exists.


Yes, we have this: