Use cases
...
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
Thread View
...
Removed (Hidden) Replies
New Thread
New Reply
Models
Image RemovedImage Added
API
...
| Action | Intended User | URI | Method | Request Parameters | Request Body | Response Body | Notification Sent to (P2) |
1 | Get Forum Metadata for a Project | authorized user | /forum/{projectId} | GET |
| | | 3 | Update Forum Description | Moderator | /forum/{forumId}/description | POST | | Description | | | Get Threads of a Forum | authorized user | /forum/{forumId}/threads | GET | order, limit, offset |
| PaginatedThreads | | 4 | Add Moderator | Admin | /moderator | POST | | CreateModerator | Moderator | |
5 | Remove Moderator | Admin | /moderator/{moderatorId} | DELETE | | | | |
6 |
| PaginatedThreads |
|
3 | Create a Thread | authorized user | /thread | POST |
7 | 4 | Get a Thread by its ID | authorized user | /thread/{threadId} | GET |
| 8 | Create a Reply | authorized user | /reply | POST |
|
| CreateReply | Reply | Thread’s Author |
96 | Get a Reply by its ID | authorized user | /reply/{replyId} | GET |
| 10 | Flag authorized userModerator | /thread/{threadId} |
/flagPUTFlag | | | Moderator | 11 | authorized userModerator | /reply/{replyId} |
/flagPUT | | | Moderator | 12 | Pin
|
|
|
|
9 | Get Replies for a Thread |
Moderatorauthorized user | /thread/{threadId}/ |
pin13 | Unpin a Thread | ModeratorPUT | | | | | GET | order, limit, offset |
| PaginatedReplies |
|
10 | Update a Thread’s Message | Author | /thread/{threadId}/ |
unpin 14 | Remove a Flag on a Thread | Moderator | /thread/{threadId}/flag | PUT | | | | |
15 | Remove a Flag on a Reply | Moderator | /reply/{replyId}/flag | PUT | | | | |
16 | Remove a Thread | | | 11 | Update a Reply’s Message | Author | /reply/{replyId}/message | PUT |
| String |
|
|
12 | Update a Thread's title | Author | /thread/{threadId}/title | PUT |
| String |
|
|
13 | Restore a deleted thread | Moderator | /thread/{threadId}/restore |
DELETEGet Replies for a Thread | | | | 17 | Remove a Reply | Moderator | /reply/{replyId} | DELETE | | | | |
18 | 14 | Retrieve a paginated list of moderator for a given forum | authorized user | / |
threadthreadIdrepliesorder, PaginatedRepliesFuture Potential Extensions
...
Search
Notification
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