Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use cases

Asking for input on a shared analysis project

...

Tom has a set of data he wants to public and have people take a look at. However, no one is interested to know his data because no one know who Tom is. Tom would love for people to find his impressive work, but does not want to copy it from his linkedin profile to his post. He would love for his work to be shown in every posts somehow so that it gives more credits to what he says.

Approach

UI Mockup

The images below were generated using Moqus, and can be viewed here: https://app.moqups.com/Kimyen0816/AnHoFYQWUL/view/page/a56a2940b

Empty Discussion - Can Read

Image Removed

Users who have Read permission to a project will see this if the project does not have any discussion yet.

Empty Discussion - Can Comment

Image Removed

Users with Comment permission will be able to create a new topic or a new question in the discussion tab. The difference between a topic and a Q&A is that users can vote for an answer in a Q&A. Answers will be ordered by number of votes. 

 

Discussion - Can Read

Image Removed

Users with Read permission will see something similar to this. They are not able to write comments yet but can request Comment permission. 

When they click on the expand icon on the bottom right of the topic, they can read more about the comments. 

Image Removed

 

Discussion - Can Comment

Image Removed

This is Kim's view. Since she is the owner of the topic, she will be able to edit her comment.

For users with Comment permission, the expand view will give them the choice to write their comment to the topic they are viewing.

Image Removed

 

Discussion - Admin View

Image Removed

Admin can enter Admin Mode. In the Admin Mode, the admin can choose topic(s) and comment(s) to perform actions to.

Image Removed

For a topic, the admin can add/remove tags, delete topic, and pin/unpin topic. When a topic is pinned, it appears on top of the discussion board. When it is unpinned, it will be order chronologically. 

For a comment, the admin can delete it.

When the admin finishes moderating, he/she can exit the Admin Mode to see how the discussion look with the changes that he/she made.

Image Removed

 

Topic with answers - Can Read

Image Removed

For a topic, comments will be paginated and appear in the order they are written. The UI shows the last few comments. Users can click Load more to read older comments.

 

Q&A with answers - Can Read

Image Removed

For Q&A, comments will be paginated and ordered by number of votes it received.

Users with Read permission cannot vote. Users with Comment permission can vote. 

Image Removed

 

New Topic Editor

Image Removed

When user clicks on New Topic or New Q&A, this widget will pop up. 

To add a tag to the topic, author can simply write #<tag> in the comment body, or use the look up tool to look for existing tags in the project.

Image Removed

Users can press Enter or click Add to add a tag from the look up tool to their topic.

Image Removed

 

New Comment

Image Removed

 

Comments & Suggestions

  1. Provide an Order By button so that users can view Q&A answers either by the votes or by chronological order.
  2. Users should be able to vote on all topics given the above feature.
  3. Users should be able to choose certain topics to follow. Have three panels with paginated content:
    1. Topics pinned by Admin
    2. Topics I follow
    3. Others (order chronologically)
  4. Allow private discussions (like how it works with entity).
  5. Use notation @username, and notify users when their names are mentioned.
  6. In File/Table tab view, if a file or a table has a discussion, give users the link to go to the discussion about that file/table.
  7. As soon as the the feature is out, people will want to search for the content of the comment.
  8. Use case: allowing users to vote on a row in a table. 
    Suggestion: provide a way for user to upload a table, then auto-generate a topic about that table, each row in the table is a vote-able comment. 
  9. How many layers of nesting comments is good?
    1. The advantage of having only one layer of comments/ response is that everything in a topic must be relevant to the topic.
    2. The advantage of having two layer of comments is that user can comment on a specific comment.
  10. Answers by admin should be highlighted and appears first.
  11. Tags should appear separated from the body of the comment in the New Topic window.
  12. Users who have Read permission should be able to vote.

 

 Image Added

Each project has a Forum. A Forum has one or many Moderators, and many Threads. A Thread is created by a user (Author) and has many Replies. A Reply is created by a user (Author). 

In the second phase, we could add new features so that a user could help the community by marking a Thread is helpful, and by marking a Reply is helpful or unhelpful. 

Mockups

Phase 1

Summary View

Image Added 

Paginated Threads

Image Added

Thread View

Image Added

Paginated Replies

Image Added

Author View

Image Added

Moderator View

Image Added

Removed (Hidden) Replies

Image Added

New Thread

Image Added

New Reply

Image Added

Models

Image Added

API



ActionIntended UserURIMethodRequest ParametersRequest BodyResponse BodyNotification Sent to (P2)
1Get Forum Metadata for a Projectauthorized user/forum/{projectId}GET

Forum
2Get Threads of a Forumauthorized user/forum/{forumId}/threadsGETorder, limit, offset
PaginatedThreads
3Create a Threadauthorized user/threadPOST
CreateThreadThread
4Get a Thread by its IDauthorized user/thread/{threadId}GET

Thread
5Create a Replyauthorized user/replyPOST
CreateReplyReplyThread’s Author 
6Get a Reply by its IDauthorized user/reply/{replyId}GET

Reply
7Remove a ThreadModerator/thread/{threadId}DELETE



8Remove a ReplyModerator/reply/{replyId}DELETE



9Get Replies for a Threadauthorized user/thread/{threadId}/repliesGETorder, limit, offset
PaginatedReplies
10Update a Thread’s MessageAuthor/thread/{threadId}/messagePUT
String

11Update a Reply’s MessageAuthor/reply/{replyId}/messagePUT
String

12Update a Thread's titleAuthor/thread/{threadId}/titlePUT
String

13Restore a deleted threadModerator/thread/{threadId}/restorePUT



14Retrieve a paginated list of moderator for a given forumauthorized user/forum/{forumId}/moderatorsGETlimit, offset
PaginatedModerators

Future Potential Extensions

 

  • Search

    • Look for all discussions about an entity - DONE

    • Search for content

    • Tag / Category

  • Notification

    • Moderator gets notification when new thread is created - DONE

    • Author gets notification when someone responds to their post - DONE

    • Following - DONE

  • Vote (up and down) on responses

  • Flag a thread/ response as inappropriate  

  • Mark a thread as helpful

  • Be able to see that there are discussions on a file / table* - DONE

  • Be able to link to a thread - DONE

  • Moderator would be able to close a thread and link to another thread