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
...
New Thread
New Reply
Models
API
ActionAction | Intended User | URI | Method | Request Parameters | Request Body | Response Body | Notification Sent to (Phase 2P2) | ||||||||
1 | Get Forum Metadata for a Project | authorized user | /forum/{projectId} | GET | Forum | ||||||||||
2 | Update Forum Description | Moderator | /forum/{forumId}/description | PUTPOST | StringDescription | ||||||||||
3 | 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 | Create a Thread | authorized user | /thread | POST | CreateThread | Thread | |||||||||
7 | Get a Thread by its ID | authorized user | /thread/{threadId} | GET | Thread | ||||||||||
8 | Create a Reply | authorized user | /reply | POST | CreateReply | Reply | Thread’s Author | ||||||||
9 | Get a Reply by its ID | authorized user | /reply/{replyId} | GET | Reply | ||||||||||
10 | Flag a Thread | authorized user | /thread/{threadId}/flag | PUT | Moderator | ||||||||||
11 | Flag a Reply | authorized user | /reply/{replyId}/flag | PUT | Moderator | ||||||||||
12 | Pin a Thread | Moderator | /thread/{threadId}/pin | PUT | |||||||||||
13 | Unpin a Thread | Moderator | /thread/{threadId}/unpin | PUT | |||||||||||
14 | Remove a Flag on a Thread | Moderator | /thread/{threadId}/unflagflag | PUT | |||||||||||
15 | Remove a Flag on a Reply | Moderator | /reply/{replyId}/unflagflag | PUT | |||||||||||
16 | Remove a ReplyThread | Moderator | /replythread/{replyIdthreadId} | DELETE | |||||||||||
17 | Remove a ThreadReply | Moderator | /threadreply/{threadIdreplyId} | DELETE | |||||||||||
18 | Get Replies for a Thread | authorized user | /thread/{threadId}/replies | GET | order, limit, offset | PaginatedReplies | |||||||||
19 | Update a | Thread'sThread’s Message | Author | /thread/{threadId}/message | PUT | String | |||||||||
Get Threads that mentions an Entity | authorized user | /thread/entity/{entityId} | GET | order, limit, offset | PaginatedTheads | ||||||||||
Mention an Entity | authorized user | /thread/{id}/mentionEntity | POST | EntityId | MentionEntity | ||||||||||
Mention Entities | authorized user | /thread/{id}/mentionEntities | POST | List<EntityId> | List<MentionEntity> | 20 | Update a Reply’s Message | Author | /reply/{replyId}/message | PUT | String |