-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements Specifications
Imtiaz Raqib edited this page Apr 3, 2019
·
26 revisions
Provided below are given user stories. They are accompanied by a rationale which is presented through collaboration within our team.
- Books
- User profile
- Searching
- Requesting
- Accepting
- Borrowing
- Returning
- Location
- Photographs
- Reviews (WOW Factor)
| Books | User Stories and the Rationale |
|---|---|
| US 01.01.01 | As an owner, I want to add a book in my books, each denoted with a clear, suitable description (at least title, author, and ISBN). |
| Rationale | These are the real world indicators of a book and as such would help the user get accustom to the digital interface in addition to enabling searching |
| US 01.02.01 | As an owner, I want the book description by scanning it off the book (at least the ISBN). |
| Rationale | Allows for a word for word transcription of the books description, so the information found in the real world copy is persevered in the digital space |
| US 01.03.01 | As an owner or borrower, I want a book to have a status of one of: available, requested, accepted, or borrowed. |
| Rationale | As the app is based around borrowing books, it is important to give the user feedback so they know if a book is available or wants to be borrowed |
| US 01.04.01 | As an owner, I want to view a list of all my books, and their descriptions, statuses, and current borrowers. |
| Rationale | Allows the user to track their books without needing to manually look a them and thus saves them time |
| US 01.05.01 | As an owner, I want to view a list of all my books, filtered by status. |
| Rationale | Allows the user to quickly and efficiently figure out where each book is |
| US 01.06.01 | As an owner, I want to view and edit a book description in my books. |
| Rationale | Grants the user insight into the book's content, in addition to fixing it if error are present or if the description is mislead |
| US 01.07.01 | As an owner, I want to delete a book in my books. |
| Rationale | Allows the user to keep a book they want to no longer lend out without worry of getting requests |
| User Profile | User Stories and the Rationale |
|---|---|
| US 02.01.01 | As an owner or borrower, I want a profile with a unique username and my contact information. |
| Rationale | Allows for easy of identification and communication between individuals by enabling information sharing |
| US 02.02.01 | As an owner or borrower, I want to edit the contact information in my profile. |
| Rationale | Allows a user to keep their personal information up to date so that other users can still contact them without issue of miscommunication |
| US 02.03.01 | As an owner or borrower, I want to retrieve and show the profile of a presented username. |
| Rationale | Enables the user to quickly grab the information of someone they know or get the information of someone they do not know well, but wish to communicate with |
| Searching | User Stories and the Rationale |
|---|---|
| US 03.01.01 | As a borrower, I want to specify a set of keywords, and search for all books that are not currently accepted or borrowed whose description contains all the keywords. |
| Rationale | Enables the user to search based on their tastes for certain literature (genre, type of setting, non fiction vs fiction) |
| US 03.02.01 | As a borrower, I want search results to show each book not currently accepted or borrowed with its description, owner username, and status. |
| Rationale | It is not productive to show books they have or are borrowed as they cannot borrow them, thus we should not show them to the user |
| Requesting | User Stories and the Rationale |
|---|---|
| US 04.01.01 | As a borrower, I want to request a book that is not currently accepted or borrowed. |
| Rationale | It is not productive to let them request books they have or are borrowed as they cannot borrow them, thus we should not let the user request them |
| US 04.02.01 | As a borrower, I want to view a list of books I have requested, each book with its description, and owner username. |
| Rationale | This enables the user to figure out what books they want and which ones they currently still do not have |
| US 04.03.01 | As an owner, I want to be notified of a request. |
| Rationale | Enables ease of use as the user will not have to constantly check their books to see if they have any requests |
| US 04.04.01 | As an owner, I want to view all the requests on one of my books. |
| Rationale | This enables the user to select which borrower they want to give the book to rather than just picking one at random |
| Accepting | User Stories and the Rationale |
|---|---|
| US 05.01.01 | As an owner, I want to accept a request on one of my books. (Any other requests are declined.) |
| Rationale | For ease of use, this prevents the owner from needing to manually delete each request one by one while also allowing them to lend out the book. |
| US 05.02.01 | As an owner, I want to decline a request on one of my books. |
| Rationale | If for whatever reason the book is unavailable to lend out, the owner can notify the system that they cannot fulfill the request |
| US 05.03.01 | As a borrower, I want to be notified of an accepted request. |
| Rationale | For ease of use, we want to notify the borrower of an accept request so that they do not need to manually check every request to see if they are accepted |
| US 05.04.01 | As a borrower, I want to view a list of books I have requested that are accepted, each book with its description, and owner username. |
| Rationale | For ease of use, we want to show the borrower a list of accept requested so that they do not need to manually check every accepted book to collect their information |
| Borrowing | User Stories and the Rationale |
|---|---|
| US 06.01.01 | As an owner, I want to hand over a book by scanning the book ISBN code and denoting the book as borrowed. |
| Rationale | Enables the system to collect all the information of the borrowed book without the owner needing to manually input it all, in addition as the ISBN code is unique there is no chance the book is mistaken for another |
| US 06.02.01 | As a borrower, I want to receive an accepted book by scanning the book ISBN code to confirm I have borrowed it. |
| Rationale | Enables the system to collect all the information of the borrowed book without the borrower needing to manually look it up, in addition as the ISBN code is unique there is no chance the book is mistaken for another |
| US 06.03.01 | As a borrower, I want to view a list of books I am borrowing, each book with its description and owner username. |
| Rationale | For ease of use, they list shows the borrower who they need to return the book to as well as what the book is about so that they need not manually look up the information. It also enables the borrower to determine which books are not theirs and thus need returned at some point |
| Returning | User Stories and the Rationale |
|---|---|
| US 07.01.01 | As a borrower, I want to hand over a book I borrowed by scanning the book ISBN code to denote the book as available. |
| Rationale | As the ISBN code is unique there is no chance the book is mistaken for another, in addition it prevents the borrower from needing to manually enter the information as the system can handle it based off of the ISBN code, thus making returning books easy and quick |
| US 07.02.01 | As an owner, I want to receive a returned book by scanning the book ISBN code to confirm I have it available. |
| Rationale | As the ISBN code is unique there is no chance the book is mistaken for another, it is also easy for the owner to scan the code rather than manually alter it status thus allowing for a fast and easy update of the book's status |
| Photographs | User Stories and the Rationale |
|---|---|
| US 08.01.01 | As an owner, I want to optionally attach a photograph to a book of mine. |
| Rationale | This enables the owner and borrower to easily identify the book by looking at them |
| US 08.02.01 | As an owner, I want to delete any attached photograph for a book of mine. |
| Rationale | Enables the user to remove a misleading image or remove it if it is of bad quality |
| US 08.03.01 | As an owner or borrower, I want to view any attached photograph for a book. |
| Rationale | A book's cover often provides insight into its content thus enabling the owner and borrower to gain a better understanding of its contents |
| Location | User Stories and the Rationale |
|---|---|
| US 09.01.01 | As an owner, I want to specify a geo location on a map of where to receive a book when I accept a request on the book. |
| Rationale | This enables the owner to easily signify to the borrower where they should meet up to exchange books without the need for a lengthy conversation. |
| US 09.02.01 | As a borrower, I want to view the geo location of where to receive a book I will be borrowing. |
| Rationale | This enables the borrower to easily learn where they should meet up to exchange books without the need for a lengthy conversation. |
| Reviews | User Stories and the Rationale |
|---|---|
| US 10.01.01 | As a borrower, I want to be able to leave a comment and rating on the book I borrowed |
| Rationale | This allows the user to share their opinions about the book they read |
| US 10.02.01 | As an owner, I want to be able to see the list of reviews on my book |
| Rationale | This enables the owner to determine if this is a book that people want to borrow and is worth keeping up |
| US 10.01.03 | As a borrower, I want to be able to delete a comment and rating I left |
| Rationale | This allows the user to remove their opinion if they now disagree with it |
| Type | DESCRIPTION |
|---|---|
| ID | UC 10.1 |
| Name | Create a review |
| Participating Actors | Borrower |
| Goal | Leave a rating and comment on a book |
| Trigger | The borrower hits the "leave a review" button while viewing a book |
| Precondition | The borrower needs an account |
| Postcondition | A review of the book is created |
| Basic Flow |
|
| Alternative Flow | Borrower selects cancel and is returned to the books page |
| Type | DESCRIPTION |
|---|---|
| ID | UC 10.2 |
| Name | View reviews |
| Participating Actors | Borrower or Owner |
| Goal | Look at all reviews on a book |
| Trigger | A book is selected |
| Precondition | The book must exist in the system already and the User has an account |
| Postcondition | The User can see the reviews |
| Basic Flow |
|
| Type | DESCRIPTION |
|---|---|
| ID | UC 10.3 |
| Name | Scan ISBN to load Information from FireBase |
| Participating Actors | Borrower, Owner |
| Goal | Scan the ISBN of a book already present in the firebase, to get a quick glance at the contents |
| Trigger | Owner/Borrower hits on ISBN scanner button in the toolbar |
| Precondition | Borrower/Owner must have an account |
| Postcondition | A dialog box with the Book title, Author, ISBN, Description is shown |
| Basic Flow |
|
| Alternative Flow | Borrower/Owner hits back button and the ISBN scanner is closed |
| Type | DESCRIPTION |
|---|---|
| ID | UC 10.4 |
| Name | Scan ISBN in the Search Activity for quick ISBN search |
| Participating Actors | Borrower, Owner |
| Goal | Scan the ISBN of any book and it takes the ISBN and places it in the search field |
| Trigger | Owner/Borrower hits on ISBN scanner button in the toolbar |
| Precondition | Borrower/Owner must have an account |
| Postcondition | The ISBN is retrieved from the Google Book API and is placed in the search field |
| Basic Flow |
|
| Alternative Flow | Borrower/Owner hits back button and the ISBN scanner is closed |
| Type | DESCRIPTION |
|---|---|
| ID | UC 10.5 |
| Name | Scan ISBN Add Book Fragment to load all book details |
| Participating Actors | Owner |
| Goal | Scan the ISBN of any book and it takes the ISBN related to Google Book API and pre-loads all the necessary information to add the book. |
| Trigger | Owner hits on ISBN scanner button in the toolbar |
| Precondition | Owner must have an account |
| Postcondition | The ISBN scanner retrieves Book title, author, ISBN, description and also picture to add a book |
| Basic Flow |
|
| Alternative Flow | Owner hits back button and the ISBN scanner is closed |