Skip to content
David Rogers edited this page Jun 29, 2015 · 1 revision

User Stories

Anyone can view all the Questions that have been asked so that he can read about problems people are having.

  • What order should the list appear in? Most recently asked?
  • Can the list be filtered or sorted differently?
  • How many Questions should appear on a page? What if there are more Questions than that?
  • Should a Question be displayed differently if it...
    • has been answered? answered recently?
    • is still unanswered after a certain amount of time?
    • has a recently accepted answer?
  • What does the list look like on a mobile or tablet device?
  • What information about the Question is displayed in the "list item" view?
  • What does the link (URL) look like for each Question?

Anyone can view a single Question that has been asked so that she can see if it has Answers and if it has an Accepted Answer.

  • What information about the Question is displayed in the "detail" view?
  • What additional interfaces (other stories) are displayed?

Anyone can login so that they can be identified as a Member of the application.

  • Login with OAuth via Github, but what requirements for access: member of a certain organization, on a specific team within an organization, "push" access to a specific repository, etc.
  • Use Firebase for 3rd party authentication with Github

A Member can ask a Question so that she can solicit Answers from other Members.

  • What form fields are provided for asking a Question?
  • What text formatting options are provided? Full Markdown support or limited? Code highlighting? Markdown additions, e.g. "spoilers" (>!)?
  • What data for a new Question is...
    • collected? required? optional?
    • provided automatically?
  • Is there a minimum amount of text required for any field? Other validation rules?
  • Can the Member asking the Question also provide an Answer?
  • How will the data be stored? What should the Controller and Model be called? The View?

A Member can add an Answer to a Question so that he can share his experience.

  • What form fields are provided for answering a Question?
  • What text formatting options are provided? Full Markdown support or limited? Code highlighting? Markdown additions, e.g. "spoilers" (>!)?
  • What data for a new Answer is...
    • collected? required? optional?
    • provided automatically?
  • Is there a minimum amount of text required for any field? Other validation rules?
  • How will the data be stored? What should the Controller and Model be called? The View?

A Member can vote on a Question so that she can register her interest.

  • What effect does voting have on the Question? How can I see which Questions have the most votes?
  • Can a Member vote more than once? Can she retract her vote later? Can she add it back again or change it?
  • What interface is provided to register a vote? How does that work?
  • What data is recorded about a vote? Where does that go?
  • How can I prevent others from messing with the votes?

A Member can vote on an Answer so that he can register his agreement.

  • What effect does voting have on an Answer? How can I see which Answers have the most votes?
  • Can a Member vote more than once? Can he retract his vote later? Can he add it back again or change it?
  • What interface is provided to register a vote? How does that work?
  • What data is recorded about a vote? Where does that go?
  • How can I prevent others from messing with the votes?

A Member who asked a Question can select an Answer as "accepted" so that she can confirm a solution.

  • What interface is provided to accept an Answer? How does it work?
  • What data is recorded about an accepted Answer? Where does it go?
  • How do we ensure that only the "asked by" Member can accept an Answer?

A Member can comment on a Question or an Answer so that he can provide or request additional clarifications.

  • What interface is provided for commenting? How does it work?
  • What data for a comment is...
    • collected? required? optional?
    • provided automatically?
  • Is there a minimum or maximum amount of text that can be provided? Other validations?
  • How will the data be stored? What should the Controller be called? The Model? The View?