Skip to content

Software Requirements Specification

Muhammed Taha Sürmeli edited this page Dec 9, 2017 · 14 revisions
  • 1. User Requirements

    • 1.1. User Interface

      • 1.1.1. Users shall be able to update their personal information including their password.
    • 1.2. Sign-up

      • 1.2.1. User should have two signup options
        • 1.2.1.1. Facebook login shall be available for registering and shall access necessary profile data.
        • 1.2.1.2. Sign-up form shall be available for users that are going to register without Facebook login.
      • 1.2.2. Users shall choose a unique and valid username while registering(Optional for facebook).
      • 1.2.3. Non-Facebook users shall choose a valid password for login.
    • 1.3. Log-in

      • 1.3.1. Facebook registered users shall be able to login via Facebook.
      • 1.3.2. Non-Facebook users shall be able to login with their usernames or e-mails and passwords.
    • 1.4. User Profile

      • 1.4.1. Users shall be able to update their personal information.
      • 1.4.2. Users shall be able to choose their interest for different type of items.
      • 1.4.3. Users should be able to invite their friends via e-mail, whatsapp and facebook.
    • 1.5. User Types

      • 1.5.1. Unregistered users shall only be able to view items.
      • 1.5.2. Registered users shall be able to view items, add new items, comment on and upload media items.
    • 1.6. User Contribution

      • 1.6.1. Users shall be able to comment on Cultural Heritage Items and Media Items.
      • 1.6.2. Users shall be able to comment on comments.
      • 1.6.3. Users shall be able to upload media items.
      • 1.6.4. Users shall be able to create Cultural Heritage Items.
      • 1.6.5. Users shall be able to report Cultural Heritage Items, media items, comments and annotations.
    • 1.7. Content

      • 1.7.1. Feed
        • 1.7.1.1 Users shall be able to view the popular and recommended items on their feed.
      • 1.7.2. Recommendation
        • 1.7.2.1 Users shall be able to get recommendations on their search, visit, like and comment history.
      • 1.7.3. Nearby items
        • 1.7.2.1 Users shall be able to view items that is close to them.
    • 1.8. Search

      • 1.8.1. Users shall be able to search for Cultural Heritage Items.
      • 1.8.2. Registered and guest users shall be able to search according to labels and cultural heritage item’s name and location.
    • 1.9. Cultural Heritage Item

      • 1.9.1. Users shall be able to add comments to each item separately such as adding comments to cultural heritage items, adding comments to media items and adding comments to annotations.
      • 1.9.2. Guest users shall be able to view available cultural heritage items, its media items, and its annotations and its comments.
      • 1.9.3. Registered users shall be able to view and add cultural heritage items, media items, annotations and comments.
      • 1.9.4. Registered users shall be able to report cultural heritage items.
    • 1.10. Annotations

      • 1.10.1. Registered users shall be able to add annotations on media items.
      • 1.10.2. Registered users shall be able to add multiple annotations on the same area of the media item.
      • 1.10.3. Registered users shall be able to add references to other media items in text annotations.
      • 1.10.4. Registered users shall be able to add comments to annotations.
      • 1.10.5. Registered users shall be able to view annotation comments when they click to the annotation.
      • 1.10.6. Registered users shall be able to report inappropriate annotations.

  • 2. System Requirements

    • 2.1. Functional Requirements

      • 2.1.1. User Interface
        • 2.1.1.1. It shall be in English. It does not have to give service in any other language.
        • 2.1.1.2. It shall be able to accept the inputs consisting of latin characters which is represented in ASCII table. The characters which do not exist in ASCII table shall not be accepted.
        • 2.1.1.3. It shall be able to be opened via Chrome and Firefox web browsers. The other browsers will not be in consideration.
      • 2.1.2. Sign-Up
        • 2.1.2.1 The system shall support registering via Facebook and e-mail.
        • 2.1.2.2 The system shall ask for a valid e-mail address, a valid password and a valid username for the users registered via e-mail.
        • 2.1.2.3 The system shall be able to support entering username for the users registered via Facebook account for the ones who do not want to use Facebook username.
      • 2.1.3. Log-in
        • 2.1.3.1. If a user who is registered via e-mail enters his/her password that matches with his/her e-mail address, the system shall log the user in.
        • 2.1.3.2. If a user registers via Facebook, the system shall log the user in directly.
        • 2.1.3.3. System shall not display log-in page on a machine the user has already logged in until the user logs out.
      • 2.1.4. Search
        • 2.1.4.1. System shall support autocomplete feature.
      • 2.1.5. Cultural Heritage Item
        • 2.1.5.1. System shall determine the hierarchy of items, cultural heritage items, media items, annotations and comments respectively.
      • 2.1.6. Annotations
        • 2.1.6.1. System shall support only text input as annotations.
      • 2.1.7. Recommendations
        • 2.1.7.1. Recommendations on users feed
          • 2.1.7.1.1 System shall generate recommendations based on the user's former visited items.
          • 2.1.7.1.2 System shall generate recommendations based on the user's and similar users' liked items.
          • 2.1.7.1.2 System shall generate recommendations based on the user's and similar users' commented items.
        • 2.1.7.2. Recommendations on Heritage Item's page
          • 2.1.7.2.1 System shall give recommendations on a Cultural Heritage Item's page according to its tags.
          • 2.1.7.2.2 System shall give recommendations according to its hidden tags that extracted via NLP.
          • 2.1.7.2.3 System shall give recommendations according to its location and time information (These are not string based similarities. System should give recommendations that close to the item in terms of both location and time.)
          • 2.1.7.2.4 System shall give recommendations according to its other string based attributions such as title, description.
      • 2.1.8. Android Application
        • 2.1.8.1. Android application shall allow users to download cultural heritage items for offline viewing.
    • 2.2. Non-Functional Requirements

      • 2.2.1. Front-End Development
        • 2.2.1.1. Android Application
          • 2.2.1.1.1. Android application shall be aware and make use of user's location
          • 2.2.1.1.2. Facebook Login should be available for users, and necessary information should be retrieved from Facebook Facebook Login Android
          • 2.2.1.1.3. Android application shall conform to the official Android Best Practices guidelines.
          • 2.2.1.1.4. Android application shall be lightweight and shall not consume battery power unnecessarily.
            • 2.2.1.1.4.1. Android application shall not perform any background tasks.
            • 2.2.1.1.4.2. Android application shall not do any expensive computation that can be done on the server.
          • 2.2.1.1.5. Android application shall be downloadable on at least 95% of the Android devices that are active on Google Play Store.
          • 2.2.1.1.6. Android application shall provide all of its functionality not requiring internet connection when the device is not connected to the internet.
          • 2.2.1.1.7. Android application shall automatically log a user in following a successful sign up for a better user experience.
        • 2.2.1.2. Web Application
          • 2.2.1.2.1. Web application shall be aware and make use of user's location
          • 2.2.1.2.2. Facebook Login should be available for users, and necessary information should be retrieved from Facebook Facebook Login Web
        • 2.2.1.2. Firefox Plugin (to be filled)
      • 2.2.2. Back-End Development
        • 2.2.2.1. Database
          • 2.2.2.1.1. Validations(ie. constraints) shall be made both in database and application layer.
        • 2.2.2.2. Security
          • 2.2.2.2.1. Both application and back-end protection shall be implemented for permission system (see 2.1.3).
          • 2.2.2.2.2. SQLi and Xss injection attacks shall be prevented for both web application(see 2.2.1.2) and web services (see 2.2.2.4).
        • 2.2.2.3. Annotations
          • 2.2.2.3.1. Server shall represent Annotations in annotation containers.
          • 2.2.2.3.2. Server should allow suggestion of annotation urls while creating an annotation.
          • 2.2.2.3.3. Server shall allow retrieving annotations for all users.
          • 2.2.2.3.4. Server shall allow creating annotations for only registered users.
          • 2.2.2.3.5. Server shall allow updating and deleting annotations only if the logon user is the owner of the annotation.
          • 2.2.2.3.6. Annotations can be flagged as spam (too much report can cause annotation to be removed).
        • 2.2.2.4. Web Service
          • 2.2.2.4.1. Web services shall serve data via endpoints for both Android and Web applications.
        • 2.2.2.5. Back-End Application
          • 2.2.2.5.1. Back-end application shall contain all the business logic including annotations (see 2.2.2.3).
        • 2.2.2.6. Availability
          • 2.2.2.6.1. System should be available 99.9% of the time.
          • 2.2.2.6.2. In the case of a failure, system should recover in at most 1 hour.
        • 2.2.2.7. Reliability
          • 2.2.2.7.1. System's test coverage should be over 96.0% all the time.
          • 2.2.2.7.2. Unit, integration and behaviour tests shall be written to ensure reliability.

Glossary

  • Cultural Heritage Item: Items that represent real Cultural Heritage Items, that have labels, descriptions, annotations, location and media items linked to it.
  • Annotation: Notes and informative comments linked to a cultural heritage item.
  • Registered User: Users that are able to view and upload and comment on contents, also able to add annotations.
  • Guest User: Non-registered users, who can only view items.
  • Similar Users: Users who have the similar interests.
  • Permission: Right to view or edit items.
  • Media Item: Items that contain either a video, an image or an audio about a Cultural Heritage Item.
  • Valid Password: Password that contains at least one capital letter, one number and 7 characters.
  • Labels: Labels are tags that specify the Cultural Heritage Item: For a building it can be: "Byzantine" , "Baroque" or "Medieval", in order to make searching by content easier.
Clone this wiki locally