Community-Website
Community-Website copied to clipboard
[Discussion] Implementation of Q&A Section in Website
Feature Request -
- [ ] To have a Q&A section where our students can ask questions and relevant people can reply to that.
- [ ] The question entered must be approved by admins in order to appear on the page
- [ ] The answers given must be approved by admins in order to appear on the page
- [ ] This section should be public on the website.
- [ ] admins should only have the option to upvote and downvote answers.
- [ ] Have tags in the question [ we can later-on use it for filtering purpose]
- [ ] Admins should have flexibility to improve the question&answers [Extension]
Need Ideas on-
- Where we should keep this feature
- How we should Implement it
Flow:
Question asked => sent for approval[show proper message to user] => approved => comes on the Q&A page => Someone gives answer to it => sent for approval [show proper message to user]=> approved => comes under Q&A Page
Note - After we get a good enough proposal of it's implementation , the related issue will be assigned to the respective person for its implementation .
@Kajol-Kumari Shall we add a JWOC label as well?
I think I can work on this issue. Can you assign it to me? @Kajol-Kumari
Hello If the issue is still not fixed I would love to work on it
I’ll also like to work on it!
Some insights on how it can be implemented from the perspective of backend - Question model in mongoose -
{
question: "some example question?",
answer: "initially empty",
status: 0, 1, 2 - 0 means question approval pending, 1 means question approved by admin.
tags: ['maths','computer science'] - array of tags,
owner: email of the user that posted this question
}
Answer model in mongoose -
{
answer: "answer of the question",
questionID: id of the question to which we have answered,
upvotes: 10,
downvotes: 5,
status: 0 or 1 - 0 means answer approval pending, 1 means answer approved by admin,
owner: email of the user that posted this answer.
}
With respect to the above schema various methods can be defined as mentioned below
- Post question - so that user can post his/her question.
- Get all questions asked by me - so that user can get a list of all the questions he/she has answered.
- Approve question - so that admin can approve question. (after approval no edits can be made by the user on question)
- answer question - so that any user can answer a particular question.
- Approve answer - so that admin can approve answer.
- upvote answer - so that user can upvote.
- downvote answer - so that user can downvote answer
- Filter question - so that filtering can be done.
Reason behind not using parent or child referencing in answer and question because there can be multiple answers to a question and it can exceed the size of document in mongodb.
I am interested to work upon this issue.
Hello can you assign me this issue under GSSOC 22
@himanshu1221 i want to work in this issue under JWOC
@Kajol-Kumari will get back to u asap
I want to work for on this issue under jwoc , please assign me