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?