Skip to content

Project

Sushant Mimani edited this page Aug 14, 2017 · 4 revisions

Project Description:

This project aims to create a question-and-answer site where questions are asked and answered by its community of users. While the number of resources available on the internet today is huge, this project aims to add a human touch to the answers by allowing other users to answer questions someone else has. This means, any user can put forward his own opinion about something without having to be worry about unintentionally leaning towards a side or not being neutral. User can speak out of experience and other users can in turn gain valuable insight from someone else's experience. A user can register using his email, or can use Facebook or Google to login to the platform. Once logged in, the user can view and answer questions, or post questions. A questioner can also delete his question at any point. Anonymous user can browse through questions and read the posted answers, but they must log in to the platform to be able to comment on any question or post a question.

Problem Statement:

Provide a way for internet users to ask questions to one another and answer questions asked by other users.

High Level Solution:

A user can register using his email, or can use Facebook or Google to login to the platform. Once logged in, the user can view and answer questions, or post questions. A questioner can also delete his question at any point. Anonymous user can browse through questions and read the posted answers, but they must log in to the platform to be able to comment on any question or post a question.

Potential Domain Objects

  • User
  • Questions (These are the questions posted by a user)
  • Comments / Posts (These are responses posted by a user on questions)
  • Question Categories

Human Users

  • Admin
  • Anonymous
  • Questioner (User)
  • Answerer (User)
  • Expert User

Admin will be able to

  • CRUD on user
  • CRUD on questions
  • CRUD on comments / answers

Anonymous will be able to

  • View a users profile
  • View questions and answers

Questioner can

  • Perform a CRUD on his user data
  • Perform a CRUD on his posts
  • Perform a CRUD on his answers on another user's posts

Answerer can

  • Perform a CRUD on his user data
  • Perform a CRUD on his posts
  • Perform a CRUD on his answers on another user's posts

Expert User can

  • Perform a CRUD on his user data
  • Perform a CRUD on his posts
  • Perform a CRUD on answers on another user's posts

Relation between Users

A questioner can ask a questions and any logged in user can comment on that question with an answer

Proposed APIs in decreasing order of preference

  • Facebook login
  • Google login
  • Google Search