coauthor icon indicating copy to clipboard operation
coauthor copied to clipboard

Class Q&A mega-issue

Open edemaine opened this issue 4 years ago • 2 comments

Adam H and I discussed what it would take for Coauthor to be useful as a replacement for Piazza-style class Q&A. We came up with the following list of features, which will split into separate issues as needed:

  • [ ] *Scalability to 100s of students, especially lots of readers. (speed)
    • [ ] Faster ACL (#149)
    • [ ] Pagination of group view to handle lots of threads
    • [ ] Minimize subscriptions, e.g., don't fetch body of all root posts
    • [ ] Load testing (#233), especially on real hardware and high-reader low-writer load
  • [ ] *Private root messages in threads (easy to add, mainly a question of where the setting is)
  • [ ] *Private response ACL inheritance (related to faster ACL)
  • [ ] *Posts that are anonymous to students, ideally using pseudonyms so can tell who is the same
  • [ ] MIT authentication via OIDC, ideally arbitrary SSO to support e.g. Catsoop authentication
  • [ ] Group joining automation (anyone who visits group gets added to group, provided e.g. MIT-authenticated), or invitation mechanism (#42)
  • [ ] Create-post links: Link from another system that starts a message with some seed/template content
  • [ ] Pinned posts (sorting mechanism that puts some posts on top) (#599)
  • [ ] API access to e.g. pinned posts for embedding in another system (Catsoop)
  • [ ] Notification control by staff: force sending notifications to students about certain posts, for example
  • [ ] Notification control by students: default subscribe to own threads but not others, for example
  • [ ] Read tracking (#12)
  • [ ] Resolved tracking (is a question answered?), ideally by marking one part as solution (ideally linked from root of thread)
  • [ ] Clear labeling of staff vs. students in "by" section (maybe faculty vs. TAs or other roles, arbitrary text for that user in that group?)
  • [ ] Mobile editor buggy (for some Android keyboards) (#437)
  • [ ] Idea: Embed a thread into external pages, e.g., feedback on lecture video pages, related discussion on lab pages
  • [ ] Ability to turn off features like Minimize, to keep interface simpler when it's not needed?

edemaine avatar Jan 21 '20 19:01 edemaine

What's wrong with existing class Q&A systems? This seems like a lot of work to recreate something that already exists and works reasonably well.

image

diomidov avatar Jan 21 '20 20:01 diomidov

Good question. Partly, this was an exercise to see how hard it would be, as Coauthor seemed "close" to what's needed. (Only the four marked with stars seemed mission-critical. Rest are nice-to-haves.) The resulting list is also useful because most of the issues above (though not all of them) would be good features for Coauthor's originally intended use, so it was a useful comparison that raised new ideas for Coauthor's development.

Piazza is the main system I'm aware of that was designed specifically for class Q&A. (There's also Canvas and other nonfree options, and Stellar/Learning Modules which I've not heard good things about. I think there's a reason that Piazza is used in almost all classes; it's still the best out there.) Piazza is undesirable for a few reasons: it has some usability issues (writing/formatting messages is inconvenient, as is the way answers and discussion are separated), it's closed-source so can't be improved, and it sells students' data. Adam has been looking at Discourse as an open-source alternative, and it's also close to what's needed, but needs some hacking to make it more suitable for the class setting; that may well end up being a better approach. Relatedly, Coauthor was created out of a frustration from trying to use existing tools that didn't quite match the use-case.

edemaine avatar Jan 21 '20 20:01 edemaine