This artifact contains the specification of the actors and their users stories, serving as agile documentation of project requirements.
For the MediaLibrary system, the actors are represented in Figure 1 and described in Table 1.
|User||Generic user that has access to public information, such as collection's items||n/a|
|Visitor||Unauthenticated user that can register itself (sign-up) or sign-in in the system||n/a|
|Reader||Authenticated user that can consult information, insert works and items, manage list of interests, request the loan of items and comment the works of the collection||jlopes|
|Owner||Authenticated user that belongs to the same location as the creator of an item and can change the existing information or lend and record the return of items||jlopes|
|Administrator||Authenticated user that is responsible for the management of users and for some specific supervisory and moderation functions||admin|
|OAuth API||External OAuth API that can be used to register or authenticate into the system.|
Table 1: Actor's description
For the MediaLibrary system, consider the user stories that are presented in the following sections.
|US01||Sign-in||high||As an Visitor, I want to authenticate into the system, so that I can access privileged information|
|US02||Sign-up||high||As Visitor, I want to register myself into the system, so that I can authenticate myself into the system|
|US03||Sign-up using external API||low||As a Visitor, I want to register a new account linked to my Google account, so that I can access privileged information|
|US04||Sign-in using external API||low||As a Visitor, I want to sign-in through my Google account, so that I can authenticate myself into the system|
Table 2: Visitor's user stories
|US11||See Home||high||As an User, I want to access home page, so that I can see a brief website's presentation|
|US12||See About||high||As an User, I want to access the about, so that I can see a complete website's description|
|US13||Consult Services||high||As an User, I want to access the services information, so that I can see the website's services|
|US14||Consult FAQ||high||As an User, I want to access the FAQ, so that I can see Frequently Asked Questions|
|US15||Consult Contact||high||As an User, I want to access contacts, so that I can see a contact I need|
|US16||Search||high||As an User, I want to consult all the public information, so that I be informed|
|US17||See statistics||medium||As an User I want to check usage statistics (for example the top of most requested works), so that I stay informed|
Table 3: User's user stories
|US21||Add item||high||As a Reader, I want to add an item (Movie, Book, Album, etc.) indicating its attributes (the corresponding work) and the media (paper, CD, MP3, DVD, VHS, MP4, AVI, etc.), so that it can be consulted|
|US22||Wish list add||high||As a Reader, I want to add an item to my wish list, so that I can complete the loan|
|US23||Wish list remove||high||As a Reader, I want to remove an item from my wish list, so that I can forget the item|
|US24||Loan item||high||As a Reader, I want to loan an item, so that I can use it.|
|US25||Comment||high||As a Reader, I want to register a commentary, so that I can manifest my opinion|
|US26||Rate||high||As a Reader, I want to register a "Like", so that I classify a work.|
|US27||Profile||high||As a Reader, I want to change my information, so that I can keep it updated (e.g. changing the password)|
Table 4: Reader's user stories
|US31||Update item||high||As Owner, I want to change the information of an item, so that it is up-to-date|
|US32||Lend item||high||As Owner, I want to register the loan of an item, so that it is unavailable|
|US33||Return item||high||As Owner, I want to record the return of an item, so that it become available|
|US34||Remove item||high||As Owner, I want to record the unavailability of an item, so that I update the status|
Table 5: Owner's user stories
|US41||Remove comments||high||As an Admin, I want to remove a comment, so that I remove inappropriate comments|
|US42||Accept user||high||As an Admin, I want to accept the registration of a new system user, so that he can access restricted content|
|US43||Ban user||high||As an Admin, I want to record the inactivity of a system user, so that he can't longer access restricted contents of the site|
Table 6: Admin's user stories
This annex contains business rules, technical requirements and other non-functional requirements on the project.
A business rule defines or constrains one aspect of the business, with the intention of asserting business structure or influencing business behaviour.
|BR01||Ownership||Only a user from the same site that the creator of the item (Owner) can lend or register your return|
|BR02||Return Date||The return date must be greater than the loan date for one item that has not yet been returned|
Technical requirements are concerned with the technical aspects that the system must meet, such as performance-related issues, reliability issues and availability issues.
|TR01||Availability||The system must be available 99 percent of the time in each 24-hour period|
|TR02||Accessibility||The system must ensure that everyone can access the pages, regardless of whether they have any handicap or not, or the Web browser they use|
|TR03||Usability||The system should be simple and easy to use|
|TR04||Performance||The system should have response times shorter than 2s to ensure the user's attention|
|TR06||Portability||The server-side system should work across multiple platforms (Linux, Mac OS, etc.)|
|TR07||Database||The PostgreSQL 9.4 database management system must be used|
|TR08||Security||The system shall protect information from unauthorised access through the use of an authentication and verification system|
|TR09||Robustness||The system must be prepared to handle and continue operating when runtime errors occur|
|TR10||Scalability||The system must be prepared to deal with the growth in the number of users and their actions|
|TR11||Ethics||The system must respect the ethical principles in software development (for example, the password must be stored encrypted to ensure that only the owner knows it)|
A restriction on the design limits the degree of freedom in the search for a solution [Ambler04 ].
|C01||Deadline||The system should be ready to be used at the beginning of the Summer holidays to be able to register the loans of the season|