Community-Website icon indicating copy to clipboard operation
Community-Website copied to clipboard

[Discussion] Implementation of Q&A Section in Website

Open Kajol-Kumari opened this issue 3 years ago • 9 comments

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-

  1. Where we should keep this feature
  2. 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 .

List of related issues- #700 #728 #729 #730

Kajol-Kumari avatar Jan 09 '22 07:01 Kajol-Kumari

@Kajol-Kumari Shall we add a JWOC label as well?

Mobasherah12 avatar Feb 02 '22 13:02 Mobasherah12

I think I can work on this issue. Can you assign it to me? @Kajol-Kumari

ikavyajain avatar Feb 05 '22 11:02 ikavyajain

Hello If the issue is still not fixed I would love to work on it

AnweshaRoses avatar Feb 28 '22 03:02 AnweshaRoses

I’ll also like to work on it!

ikavyajain avatar Feb 28 '22 04:02 ikavyajain

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

  1. Post question - so that user can post his/her question.
  2. Get all questions asked by me - so that user can get a list of all the questions he/she has answered.
  3. Approve question - so that admin can approve question. (after approval no edits can be made by the user on question)
  4. answer question - so that any user can answer a particular question.
  5. Approve answer - so that admin can approve answer.
  6. upvote answer - so that user can upvote.
  7. downvote answer - so that user can downvote answer
  8. 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.

himanshusanecha avatar Mar 04 '22 06:03 himanshusanecha

Hello can you assign me this issue under GSSOC 22

sulogna2001 avatar Apr 01 '22 20:04 sulogna2001

@himanshu1221 i want to work in this issue under JWOC

deepbeatz avatar Feb 19 '23 12:02 deepbeatz

@Kajol-Kumari will get back to u asap

deepbeatz avatar Feb 20 '23 06:02 deepbeatz

I want to work for on this issue under jwoc , please assign me

Hritik1503 avatar Feb 25 '23 12:02 Hritik1503