Versions Compared

Key

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

Use cases

...

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

Image RemovedImage Added

Each project has a Forum. A Forum has one or many ModeratorModerators, and many Threads. A Thread is created by a user (Author) and has many Replies. A Replies 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

  

Paginated Threads

Image Added

Thread View

Paginated Replies

Image Added

Author View

...

Image Removed

Moderator View

Phase 2

Summary View

Image Removed

Thread View

Image Removed

Removed (Hidden) Replies

Image Added

New Thread

Image Added

New Reply

Image Added

Models

Image RemovedImage Added

API


 Action

ActionIntended UserURIMethodRequest ParametersRequest BodyResponse BodyNotification Sent to (
Phase 2
P2)
1Get Forum Metadata for a Projectauthorized user/forum/{projectId}GET
  Forum Update Forum DescriptionModerator/forum/{forumId}/descriptionPUT String  


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
 

7
Flag
Remove a Thread
authorized user
Moderator/thread/{threadId}
/flag
PUTFlag
DELETE
   Moderator




8Remove a Reply
authorized user
Moderator/reply/{replyId}
/flag
PUT
DELETE
   ModeratorPin




9Get Replies for a Thread
Moderator
authorized user/thread/{threadId}/
pinUnpin a ThreadModerator
replies
PUT    
GETorder, limit, offset
PaginatedReplies
10Update a Thread’s MessageAuthor/thread/{threadId}/
unpin
messagePUT
 Remove a Flag on a ThreadModerator/thread/{threadId}/unflagPUT   

 

Remove a Flag on a ReplyModerator/reply/{replyId}/unflagPUT    Remove a ReplyModerator/reply/{replyId}DELETE    Remove a ThreadModerator/

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}/restore
DELETE
PUT
    Get Replies for a Thread




14Retrieve a paginated list of moderator for a given forumauthorized user/
thread
forum/{
threadId
forumId}/
replies
moderatorsGET
order,
limit, offset
 

PaginatedModerators
PaginatedReplies

Future Potential Extensions

 

...

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.

 

...

  • 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