fromthepage icon indicating copy to clipboard operation
fromthepage copied to clipboard

Discussion Forum

Open benwbrum opened this issue 3 years ago • 5 comments

Here's our original notes code:

https://github.com/benwbrum/fromthepage/commit/128ae8cb90d9414ca5eecdbbae329817df74dbb0

benwbrum avatar Oct 19 '21 13:10 benwbrum

See also #2520

benwbrum avatar Oct 19 '21 13:10 benwbrum

This looks like a good gem to use: https://github.com/thredded/thredded

May also want to see what Zooniverse has struggled with: https://github.com/zooniverse/talk-api/issues?q=is%3Aissue https://github.com/zooniverse/Talk/issues?q=is%3Aissue

For instance, we may choose not to turn on DMs within the messaging system.

benwbrum avatar Oct 19 '21 13:10 benwbrum

Conversation with Jenna on this:

Sara:

We're intrigued by the idea of building a discussion forum in FromThePage. We love Zooniverse's 'talk ' feature as well, although we haven't played with it for a while. We also love our page specific notes that show the context and the discussion in the same place. We'd want both to be combined. If we kept page level notes, but rolled them up to a higher level as well, what levels do you think would be useful? Work level? Collection level? Project owner level? What else is desirable in a discussion forum? Threading? Email notifications? Locking? Admin-delete? We're fans of keeping things as simple as possible, but it's hard to know where to draw the line.

Jenna:

I agree that it should be something as simple as possible! From the experiences we had from our Talk forum for the Miles Franklin collection, as well as using the comments at the page level about specific transcriptions, the volunteers were very active in a general discussion thread. It allowed them to ask questions and advice about the transcription process, troubleshoot issues they were having and also connect with other volunteers. They loved to share interesting finds they stumbled across in the transcripts and they also have been great at sharing resources with each other that help with transcription.

I think at Collection level would make the most sense – or maybe a forum feature is at the project owner level, with the ability to have a threaded area for each collection that project owner has. Certainly we would have some people who might just have general questions about transcription, but it would be more likely that volunteers will want to discuss a particular collection they are working on with other people transcribing the same collection.

Threading, email notifications and administrative moderation options all sound very sensible. To give you an idea of how we’ve been using Talk for Miles Franklin, here is the link - https://www.zooniverse.org/projects/statelibrarynsw/miles-franklins-diaries-1952-54/talk. The ‘notes’ section is for comments on individual pages. Then we also created a simple ‘General’ area that you can see has been used to troubleshoot issues and ask advice. There’s also lots of lovely commentary from volunteers about how much they’re enjoying the transcription process.

saracarl avatar Oct 21 '21 14:10 saracarl

From a transcriber:

Even though transcribers are called “collaborators” there is no way for us to collaborate with each other. I suggest that each collection have a “message board” where we could post lessons-learned, tips & tricks for this collection, resources, etc. This would help transcribers learn and improve instead of making the same mistake page-after-page. One problem is that a good number of the transcribers don’t read the Help tab information posted by the institution. For example, the “Logbooks of the CSS Alabama” specifically requested we not hyphenate words across lines, but to put the whole word on the second line. I did so, and another transcriber followed behind me and re-instated such unwanted hyphenation. That could be corrected if there was a message board where transcribers could be informed of such errors. It would be optimum if the message board allowed both public messages and private messages, so as not to embarrass anyone. A transcriber would get a notice at the top of his Dashboard notifying him of his private message, which he could then click on to see it. Private messages would probably require a moderator to approve posts (to prevent abuse), but these moderators could also be volunteer collaborators. Other useful public messages could include handwriting quirks found in this collection, common abbreviations found in this collection & their meaning, commonly used industry terms found in this collection (ex: maritime), names of persons or places often referred to in this collection, etc. These are all things that lead to wildly varying interpretation page-to-page that could be remedied, and that leads to a faster, more accurate, more consistent transcription.

saracarl avatar Jan 11 '22 00:01 saracarl

Implementation Approach:

  • [x] Determine how this fits into our data model. Use "Permissions Section" and think about customers with both private and public collections.
  • [x] Decide if users can do private messages (lean towards no) Maybe only owners/staff can private message?
  • [x] Moderation -- what are our options? Make sure staff & owners can moderate. How do we make this as easy as Slack? See "moderation" section. I'm leaning towards "reactive moderation". Or we disable moderation completely until spam starts showing up. Or we can have FtP staff approving users in the "reactive moderation" mode; approve 1st user post and the rest of their posts are auto-approved.
  • [x] install following the steps here: https://www.rubydoc.info/gems/thredded up to "customizing views"
  • [x] create a messageboard from a collection
    • [x] Add messageboard id/slug to collection model
    • [x] Add methods "forums enabled" to check off messageboard id.nil?
    • [x] Add UI to enable forums
    • [x] Create messageboard when forums are enabled
    • [x] Add new collection tab for forums
    • [x] Display messageboard within new collection tab
  • [x] attempt to mount Threaded within user/collection routes scope
  • [x] turn off messageboard for a collection
    • [x] hide tab
    • [x] make sure URL hacking doesn't work -- render "forums have been disabled" at the forum tab if someone gets to it via an old link
  • [x] Remove navigation breadcrumb to "All Messageboards" within thredded
  • [x] Make sure we require authentication to post "Requiring authentication to access Thredded")
  • [x] Update layout to make the forums look more embedded
  • [x] Update theming
  • [x] Add forum activity to user profile ("user profile page")
  • [x] Test other languages; do work from the i18n sections if needed.
  • [x] Decide how forum activity plays with deeds
  • [x] Connect forums and page notes
  • [x] support private collections
  • [x] style forums to look better within our views
  • [x] project owners can create message boards (i.e. "events" "handwriting help") in addition to our preset "pages"
  • [x] how to filter & display message boards by collection/project. Maybe thredded's messageboard groups?
  • [x] links in posts? supported. URLs, HTML and markdown.
  • [x] hashtags in posts? -- not supported by thredded and I don't think we need.
  • [x] seed collections with specific message boards: general, help
  • [x] support multi-tenant architecture
    • [x] enable more than one collection to have a forum with the same name (general/help)
    • [x] forum navigation takes user to messageboard group instead of all messageboard listing
    • [x] new messageboard form hard-wires messageboard group to one associated with current collection
    • [x] search results don't search across messageboard groups
  • [x] Customize views to include the page image (use "customizing views") Here's how a user would include an image in a post: ![This is fine](https://storage.googleapis.com/glebm-stuff/this-is-fine.jpg){:width="359px" height="170px"}
  • [x] breadcrumbs for topic list (maybe we hid and need to fix so it work the way we want)
  • [x] Testing: after creating a new message board as a project admin, I am redirected to a page that lists all messagesboards (http://localhost:3000/josie/ann-smith-letters/forum/?collection_id=ann-smith-letters&user_slug=josie)
  • [x] Decide about email notifications; do we like the default? Include it in our emails?
  • [x] Decide about auto-follow (maybe when you join a collection you auto-follow the main forum?)
  • [x] verify moderation
    • [x] Testing: moderation link (http://localhost:3000/nil/nil/forum/admin/moderation) runs into a nil for collection -- see comment in PR
  • [x] test masquerade
    • [x] Masquerade works fine in production, but breaks with this code. When I try to log in as Laura M, I get a undefined method ``back_masquerade_path' for #<ActionDispatch::Routing::RoutesProxy:0x00007f71a99ae800>
  • [x] Paginate notes
  • [x] breadcrumbs from page to page note list

Punting:

  • [ ] figure out document sets (see #3411 )

saracarl avatar Oct 06 '22 14:10 saracarl