Skip to content

Web app inspired by Quora, allowing users ask question and get answers

Notifications You must be signed in to change notification settings

naumov78/Questions

Repository files navigation

Questions

"Questions" is a web application inspired by "Quora" built using Ruby on Rails and React/Redux. It allows users to ask questions and get answers as well as answer the questions of others.

I used React.JS and Redux to build responsive App. Used Rails because it has friendly convention that make it easier to build an App. It supports full CRUD operations

Ask your question here (Live application)

Welcome page - RegEx is used for email validation during sign up.

Welcome page

The second step of sign up process is subscription. User has to choose the topics from the list.

Subscribe

User index page - renders recent questions from user's subscribed topics

User Index

Header - has Ask Question form, Message (with indicating number of unread messages), user picture/name and dropdow menu with Profile and Logout links.

Header

Add More Topics feature allows users to add additional topic to their subscribed topic list.

Add Topic

Topic index page - renders questions from a particular topic sorted by creation date/time in descending order. Each question has upvote/downvote functionality and Quick Answer button for rendering Quick Answer form.

Topic Index

In case the topic has no questions yet a user will be offered to ask first question which will be posted to the current topic by default or any other topic through drop down list of topics.

Empty Index

Also question may be asked using Ask Question form in the header.

Ask Form

Question page displays the question with the following features:

  • add answer
  • upvote/downvote
  • follow/unfollow author - user starts to follow the question's author and would see new questions from the author in the upper right block - "Recent questions from your favorite authors".
  • watch/unwatch question - user starts to watch the question and would see updates on the answers in the lower right block - "Updates on your watched questions".

Question

Answer form

Answer

Under the question there is a list of answers sorted by answer date/time in descending order. Each answer can be upvoted/downvoted and has comments functionality.

Comments

Each question, answer, comment, message has author information and link to author profile page. Profile page renders detailed user information and has compose private message functionality.

User Profile

Compose Message

Also user page allows to check user's public statistics - user's asked questions and user's answers.

User Statistics

Each user has access to personal profile page which has much more options than other profile pages. It has Edit user functionality, extended statistics and rendering messages functionality.

personal_profile

Users can update their information.

Update User

In addition to regular user profile page's statistics (lists of questions and answers) personal profile has also lists of followed authors and watched questions.

Personal Statistics

Show Messages button renders Inbox tab with the list of received messages sorted by date/time in descending order. Unread messages are bold.

Inbox

After click on the message in the list message content with message details will be rendered. Any message may be deleted by receiver or sender. If it's deleted by receiver it won't be rendered in receiver's inbox anymore, but still be rendered in sender's outbox. The same happens when sender deletes the message - it will be deleted from outbox only, not from receiver's inbox.

Message

Each message can be replied.

Message

Features

  • Sign up/in with email
  • Upload user image
  • Update user information
  • Create subscription for specific topics
  • Update subscription
  • View questions for subscribed topics
  • Add question to any topic
  • View particular question
  • View answers for the question
  • Add answer to question
  • Upvote/downvote question
  • Follow/unfollow author
  • Watch/unwatch question
  • Upvote/downvote answer
  • Comments on answer
  • Upvote/downvote comment
  • User statistics - questions, answers, followees, watched questions
  • Private messaging

To-Do

  • Add question search
  • Rendering question/answers views and rating
  • Ability to unsubscribe from a topic