Skip to content

Realized Requirements

sinemKocoglu edited this page Dec 27, 2022 · 5 revisions

Table of Contents

  • Glossary
  • 1. Functional Requirements
    • 1.1 User Requirements
      • 1.1.1. Registration/Login
      • 1.1.2. Guest Users
      • 1.1.3. Profile Management
      • 1.1.4. User Interaction
      • 1.1.5. Copyright Infringement
      • 1.1.6. Exhibitions
      • 1.1.7. Annotations
    • 1.2 System Requirements
      • 1.2.1. Notification
      • 1.2.2. Search
      • 1.2.3. Recommendation System
      • 1.2.4. Bidding System
      • 1.2.5. Verification
      • 1.2.6. Location
      • 1.2.7. Annotation
      • 1.2.8. Level System
  • 2. Non-Functional Requirements
    • 2.1. Portability
    • 2.2. Performance
    • 2.3. Accessibility
    • 2.4. Availability
    • 2.5. Privacy
    • 2.6. Security
    • 2.7. Annotations
    • 2.8. Capacity

Requirements

1. Functional Requirements

1.1. User Requirements

1.1.1. Registration/Login
  • 1.1.1.1. Users shall be able to register to the application providing their e-mail, username and password.
    • 1.1.1.1.1. Both e-mail and username shall be unique for each account.
    • 1.1.1.1.2. Username of the user must start with a letter, cannot end with an underscore, must have at least 6 characters and can consist of letters, numbers or underscores.
    • 1.1.1.1.3. Passwords of the user must have at least 10 characters, cannot be similar to his e-mail or username and cannot be a common password.
  • 1.1.1.2. Users shall be able to log in to the application using their credentials, (username or e-mail), and password.
  • 1.1.1.3. Logged-in users shall be able to safely log out.
  • 1.1.1.4. Registered users shall be able to reset their passwords when logged in from profile settings.
  • 1.1.1.5. Registered users shall be able to reset their password without being logged in to the application. In such cases, users shall receive a confirmation code to the e-mail accounts they provided in the registration.
  • 1.1.1.6. Users shall be able to safely delete their accounts. Deletion of an account leads to the removal of art items, comments and likes belonging to the deleted user from the platform.
1.1.2. Guest Users
  • 1.1.2.1. Guest users shall be able to view the publicly visible art items on the platform.
  • 1.1.2.2. Guest users shall be able to zoom in to an art item to examine it more closely.
  • 1.1.2.3. Guest users shall be able to read the comments.
  • 1.1.2.4. Guest users shall be able to view other users' profiles.
  • 1.1.2.5. Guest users shall be able to get most popular art items and online/offline exhibitions of the week to the homepage.
  • 1.1.2.6. Guest users shall be able to use search engine of the platform. (refer to 1.2.2. for details)
1.1.3. Profile Management
  • 1.1.3.1. Registered users shall be able to edit their personal information shown on their profile pages.
    • 1.1.3.1.1. Registered users shall be able to add short descriptions about themselves on their profile pages.
    • 1.1.3.1.2. Registered users shall be able to provide name, surname, age and location.
    • 1.1.3.1.3. Registered users shall be able to upload/change their profile picture.
  • 1.1.3.2. Registered users shall be able to see their personal attributes provided by the platform according to their activities.
    • 1.1.3.2.1. Registered users shall be able to see their level based on their interaction in the application. Interaction shall be measured according to the number of comments and shares they did on the platform in addition to number of user's visits to other art items and user profiles.
    • 1.1.3.2.2. Registered users shall be able to see their popularity in the application. Popularity metrics are listed in (1.2.5.1).
  • 1.1.3.3. Registered users shall be able to change settings on the profile.
  • 1.1.3.4. Active users shall be able to perform advanced operations on their profile page.
    • 1.1.3.4.1. Active users shall be able to create new tags for the art items.
1.1.4. User Interaction
  • 1.1.4.1. Registered users shall be able to follow other users. When a user follows other users, follower users shall be able to see the activities of the user followed, such as, art items and exhibitions on his homepage.
  • 1.1.4.2. Registered users shall be able to unfollow the users they have followed before.
  • 1.1.4.3. Registered users shall be able to upload and share art items.
    • 1.1.4.3.1. Registered users shall be able to specify the category of the art item they upload.
    • 1.1.4.3.3. Registered users shall be able to add a title to the art item they upload.
    • 1.1.4.3.4. Registered users shall be able to add tag(s) to the art item they upload.
    • 1.1.4.3.5. Registered users shall be able to add a description to the art item they upload.
  • 1.1.4.4. Registered users shall be able to like an art item.
  • 1.1.4.5. Registered users shall be able to make comments on art items.
  • 1.1.4.7. Registered users shall be able to reply to a comment. Reply is also considered as a comment.
  • 1.1.4.9. Registered users shall be able to attend an online exhibition as an attendee.
  • 1.1.4.10. Registered users shall be able to mark themselves as attendee to an offline exhibition by giving their location.
  • 1.1.4.12. Registered users shall be able to bid on art items put for sale. (refer to 1.2.4.)
1.1.6. Exhibitions
  • 1.1.6.1. Registered users shall be able to organize online or physical exhibitions.
    • 1.1.6.1.1. Exhibition organizer shall be able to add other users to the exhibition as collaborators.
    • 1.1.6.1.2. Exhibition organizer shall be able to add art items to the online exhibition either by adding an existing art item from their gallery or uploading a new art item.
    • 1.1.6.1.4. Exhibition organizer shall be able to set the start and end date of the exhibition.
    • 1.1.6.1.6. Exhibition organizer shall be able to set title and description for the exhibition.
    • 1.1.6.1.8. Exhibition organizer shall be able to add a poster for the exhibition.
  • 1.1.6.2. Registered users shall collaborate on an exhibition by being added as a collaborator by the exhibition organizer.
    • 1.1.6.2.1. Collaborators shall be able to add art items to the online exhibition either by adding an existing art item from their gallery or uploading a new art item.
    • 1.1.6.2.3. In order to add someone as a collaborator, that user must be following the organizer.
  • 1.1.6.3. Registered users shall be able to attend an exhibition as an attendee. This type of involvement only grants viewing rights, no ability to make any changes.
1.1.7. Annotations
  • 1.1.7.1. Registered users shall be able to annotate the text content with text or image. Text may be a URL that serves as a hyperlink.
    • 1.1.7.1.2 Registered users shall be able to annotate content in the descriptions of the art items.
    • 1.1.7.1.3 Registered users shall be able to annotate content in the titles of the art items.
    • 1.1.7.1.6. Registered users shall be able to change the body of the text annotations they have.
    • 1.1.7.1.7. Registered users shall be able to delete their annotations.
    • 1.1.7.1.8. Registered users shall be able to view text annotations made by other users.
    • 1.1.7.1.9. Registered users shall be able to see by whom a text annotation is made.
  • 1.1.7.2. Registered users shall be able to annotate the art items with text using rectangular boxes.
    • 1.1.7.2.1. Registered users shall be able to change the body of the image annotations they have.
    • 1.1.7.2.2. Registered users shall be able to delete their annotations.
    • 1.1.7.2.3. Registered users shall be able to view image annotations made by other users.
    • 1.1.7.2.4. Registered users shall be able to see by whom an image annotation is made.
    • 1.1.7.2.5. Registered users shall be able to hide image annotations via a single button to view the art item clearly.

1.2. System Requirements

1.2.2. Search
  • 1.2.2.3. The system shall support lexical search for users by their username, name and surname.
  • 1.2.2.4. The system shall support lexical search for art items by their title, description, owner's name, owner's surname, tag's name.
  • 1.2.2.5. The system shall support lexical search for offline exhibitions by their title and descriptions.
  • 1.2.2.6. The system shall support lexical search for online exhibitions by their title and descriptions.
1.2.3. Recommendation System
  • 1.2.3.1. The platform shall track registered users’ activities and store the activity history.
  • 1.2.3.2. Activity history shall consist of following activities of the registered user: art items to which they made a comment, art items they liked, users they follow, exhibitions they attended.
  • 1.2.3.3. Activity history also includes art items and profile pages viewed by the user.
  • 1.2.3.5. The platform shall recommend physical exhibitions according to the user's activity and popularity of the exhibitions.
  • 1.2.3.6. The platform shall recommend online exhibitions to the user, according to user’s activity and popularity of the exhibitions.
  • 1.2.3.7. The platform shall recommend different art items based on the activity history and the interests of the registered user, and the popularity of art items. Recommended art items shall be displayed on the discover page of the registered user.
  • 1.2.3.8. The platform shall recommend different users based on the activity history and the interests of the registered user along with popularity of the recommended user. Recommended users shall be displayed on the discover page of the registered user.
  • 1.2.3.9. The platform shall decide on the interests of the user, based on interaction of the user with specific categories.
  • 1.2.3.10. The platform shall decide on the interaction of the user with a specific category, based on number of viewed, liked and shared art items in that category.
  • 1.2.3.11. The platform shall decide on the popularity of the art items based on the number of views and likes of the art item.
  • 1.2.3.12. The platform shall also take into account the creation date of the art item, to apply aging when calculating popularity.
  • 1.2.3.13. The platform shall decide on the popularity of exhibitions based on the number of views.
  • 1.2.3.14. The platform shall also take into account the creation date of the exhibition, to apply aging when calculating popularity.
  • 1.2.3.15. The platform shall decide on user's popularity based on number of views their profile page has, number of art items and exhibitions they create.
1.2.4. Bidding System
  • 1.2.4.1. The platform shall offer a bidding system to sell and buy art items via this platform, (for users meeting the criteria specified below).
  • 1.2.4.2. The system shall provide the regisered(level 1) users the option to open their (unsold) items for sale; by specifying minimum price.
  • 1.2.4.4. The system shall provide registered users the opportunity to open item for sale, in the item addition stage.
  • 1.2.4.5. Registered users shall be able to receive offers for their art items that are open for sale. *1.2.4.6. The owner shall receive a popup message whenever they visit their profile page and there is a new offer for one of their art items.
  • 1.2.4.8. The system shall provide the registered user with the opportunity to either accept or decline an offer for their art item.
  • 1.2.4.9. In the case that an offer is accepted for an art item, the item's status shall be changed to sold by the system.
  • 1.2.4.10. Registered users shall have the option to bid (make an offer) on art items, via specifying amount, provided that the item is open for sale and that the amount matches or exceeds the minimum price set by the seller.
  • 1.2.4.14. The system should keep records of all the bids on an item.
  • 1.2.4.15. The system should provide the seller with the ability to view a list of previous bids on a specific art item that is (or was) on sale, with sorting options according to date.
  • 1.2.4.16. The system should provide the seller and the buyer, a medium of communication via comments.
  • 1.2.4.18. The transaction should take place out of the system as specified in the glossary and with the help of communication channels provided by the system (1.2.4.17).
1.2.6. Location
  • 1.2.6.3. The system should be able to keep and process location of the offline exhibition.
1.2.7. Annotation
  • 1.2.7.1. The system shall provide an annotation system with text or images for users.
  • 1.2.7.2. Annotations must comply with the W3C Web Annotation Data Model and follow W3C standards.
1.2.8. Level System
  • 1.2.8.1. System shall provide a level-based system to users according to their interaction with the community.
  • 1.2.8.2. System shall measure the interaction of a user based on the number of art items shared by the user, number of comments made by them and the number of profile and art item pages they visit.
  • 1.2.8.3. Users shall obtain extra abilities according to their level (available actions are listed below, please refer to the related requirements articles for details)
    • 1.2.8.3.1. Level 0, guest user, shall view comments, art items, and user profiles.
    • 1.2.8.3.2. Level 1, registered user, shall comment, post an art item, follow, like, delete his/her art item, attend exhibition, hold exhibition, mark geographic location in exhibition, get recommendations based on activity, buy art item and edit profile in addition to actions of guest user.
    • 1.2.8.3.3. Level 2, active user, shall add new custom tags, sell art items in addition to actions of registered user.

2. Non-Functional Requirements

2.1. Portability
  • 2.1.1. The system is mainly a web application with necessary API implementations.
  • 2.1.2. The system shall also have a native Android application that supports the same functionalities.
2.2. Performance
  • 2.2.1. The system shall respond to requests within 2 seconds.
  • 2.2.2. The system should support up to 5000 requests per second.
2.3. Accessibility
  • 2.3.1. The system shall be accessible on Android Platforms and web platforms.
  • 2.3.2. The system shall be compatible with popular Android Platforms and popular web platforms.
  • 2.3.3. The systems UI shall be accessible by any user regardless of any disability.
    • 2.3.3.1. The interface of the system should have clear layouts with distinct buttons, menus, and calls to action.
  • 2.3.3.2. The interface should take maximum advantage of the available accessibility features such as leverage color, contrast, and visual hierarchy.
    • 2.3.3.3. The interface should resize itself automatically according to the screen size of users' devices.
  • 2.3.3.4. The interface should support accessibility options for colorblind users such as filters for different types of colorblindness.
2.4. Availability
  • 2.4.1. The project shall be available in English.
  • 2.4.2. The project shall support Chrome, Safari, Firefox browsers.
  • 2.4.3. The mobile application shall be available for Android KitKat and later (99.4%).
  • 2.4.4. The system shall have 99% of uptime.
  • 2.4.5. In the case of an unexpected error, the system should recover in under 1 hour.
2.5. Privacy
  • 2.5.1. The project shall follow the rules defined by GDPR/KVKK.
  • 2.5.2. The system shall secure the private data of users, such as their contact information, according to the law of the protection of personal data.
2.6. Security
  • 2.6.1. User passwords shall be at least 10 characters long and cannot consist entirely of letters.
  • 2.6.2. User passwords shall be stored in a database using PBKDF2 algorithm with a SHA256 hash.
  • _2.6.4. The system should be secure against malicious attacks. _
  • 2.6.5. The website shall be able to work with up to date softwares.
2.7. Annotations
2.8. Capacity
  • 2.8.1. Each photo uploaded by a registered user, for an art item shall not exceed 10 MB in size.
  • 2.8.2. One photo can be uploaded per art item.

Home 🏠

Project 💻

Practice Application 💻

Group Members 👨‍💻

Research 🔍

Timesheets 📝

CMPE451 Meeting Notes 🗒️

General Meetings

Frontend Meetings

Backend Meetings

Mobile Meetings

CMPE352 Meeting Notes 🗒️

Clone this wiki locally