Skip to content
This repository has been archived by the owner on Feb 13, 2023. It is now read-only.

Project Requirements

cagdastombul edited this page Jan 5, 2019 · 40 revisions

Glossary

  • Cultural event items: These stand for cultural events that come attached with tags, artist, date, price and venue.

  • Tag: A categorical designation that attaches to various items.

  • Semantic tags: These are tags that take meaning and content into account.

  • Basic or advanced search: This permits users to search for events and users.

  • Recommend: This feature recommends specific events to a particular user based on their event history, interests and users they follow.

  • Follow: This permits users to follow other users or events

  • Vote: This permits users to upvote or downwote comments

  • Interests: Topics that the user may want to give his attention or an event that the user may want to be involved with.

  • #: When a user registers by providing necessary personal information.

  • Log in: When a user logs in to the system with the information they provided signing up.

  • Profile: Display of data associated with a particular user. This is unique to each user.

  • Notification: This permits users to be notified of certaint events.

  • Color schemes: A grouping of colors used for the site.

  • Block: This permits users to not get any notifications from blocked events or disabling any kinds of interaction with blocked users such as messaging or viewing profile etc.

  • Share: This permits users to share events with other users.

  • SQL injection: When an attacker injects malicious SQL code to compromise a database.

  • Strangers: Users which a user doesn't follow.

  • Watching: If certain users are watching an activity type (i.e. musicals), they will be alerted when that type of activity is coming up.

  • Encryption: The process of encoding a message or information in such a way that only authorized parties can access it

  • HTTPS: HTTPS (HTTP Secure) is an adaptation of the Hypertext Transfer Protocol (HTTP) for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is encrypted by Transport Layer Security (TLS), or formerly, its predecessor, Secure Sockets Layer (SSL).

  • Cross site scripting: Injecting malicious Javascript code.

  • Hijacking: Stealing someone's session ID and pretending as the victim. Guessable session ID's can lead to session hijacking.

  • Semantic Search: A data searching technique in a which a search query aims to not only find keywords, but to determine the intent and contextual meaning of the the words a person is using for search.

  • Admin Panel: Administrative user utilizes this to supervise the website and content therein.


1.Functional Requirements

1.1 System Requirements

1.1.1 Cultural Event Items

  • 1.1.1.1 Cultural event items shall include theaters, musicals, exhibitions, museums and travelling internationally or domestically
  • 1.1.1.2. The system shall provide performing artist information on the event page.
  • 1.1.1.3 The system shall provide venue(location). The location shall be provided by Google Maps API.
  • 1.1.1.4 The system shall provide event date.
  • 1.1.1.5 The system shall provide event price.
  • 1.1.1.6 The system shall provide additional information about the type of the event if necessary.
  • 1.1.1.7 The system shall provide rating and comments of the event.
  • 1.1.1.8 The system shall provide semantic tags.
    • 1.1.1.8.1 The tags can include genre.
    • 1.1.1.8.2 The tags can include artist country of origin.
    • 1.1.1.8.3 The tags can include any other piece of information based on user’s choice.

1.1.2 Search

  • 1.1.2.1 Search function shall have two options whether basic or advanced search.
  • 1.1.2.2 Search function shall be based on "artist name", "location", "date", "price", "rating" or "semantic tags" that are related to given input by user.
  • 1.1.2.3 Search function shall be used with more than one input.
  • 1.1.2.4 The results of a search shall be limited by the given location.
  • 1.1.2.5 The system shall support semantic search.

1.1.3 Recommendation

  • 1.1.3.1 The system shall recommend events to users.
  • 1.1.3.2 The recommendation system shall work based on user’s event histories, users they followed and interests.

1.1.4 Annotation

  • 1.1.4.1 All users shall be able to view annotations.
  • 1.1.4.2 Registered users shall be able to create, edit and delete annotations.
  • 1.1.4.3 Registered users shall be able annotate an image.
    • 1.1.4.3.1 Users shall be able to select the fragments of the images for annotations.
  • 1.1.4.4 Registered users shall be able to annotate event descriptions.
  • 1.1.4.5 Registered users shall be able to include links in annotations.
    • 1.1.4.5.1 The links shall be able to refer to semantic resources for providing more detailed information about the story.
  • 1.1.4.6 Registered users shall be able to annotate geographical references.
  • 1.1.4.7 Registered users shall be able to include images in annotations.

1.1.5 Admin Panel

  • 1.1.5.1 Admins shall be able to add,delete and edit content through admin panel.
  • 1.1.5.2 Admins shall be able to have the right of banning users and events.

1.2 User Requirements

1.2.1 Registered Users

1.2.1.1 Registration and Login

  • 1.2.1.1.1 Users shall be able to # by providing necessary personal information.
  • 1.2.1.1.2 Users shall be able to # by linking their Facebook account.
  • 1.2.1.1.3 Registered users shall be able to log in using the method they signed up.
  • 1.2.1.1.4 Users shall be able to reset their passwords via a secure e-mail.
  • 1.2.1.1.5 Users shall be able to verify their profiles.

1.2.1.2 Profiles

  • 1.2.1.2.1 Users shall be able to customize their profiles by changing/adding profile photos, and including a short bio and/or personal details.
  • 1.2.1.2.2 Users shall be able to see the profiles of other users.
  • 1.2.1.2.3 Users shall be able to block other users.
  • 1.2.1.2.4 Users shall be able to follow other users.
  • 1.2.1.2.5 Users shall be able to rate and/or comment on other users.
  • 1.2.1.2.6 User profiles should contain a short list of events which the user has attended.

1.2.1.3 Messaging

  • 1.2.1.3.1 Users shall be able to message other users.
  • 1.2.1.3.2 Users shall be able to decide if they want to receive messages from strangers.

1.2.1.4 Recommendations

  • 1.2.1.4.1 Users shall be able to watch certain event types to get notifications.
  • 1.2.1.4.2 Users shall be able to block certain the event types to avoid spamming.
  • 1.2.1.4.3 Users should be able to get notifications about events that the users they follow will attend.

1.2.1.5 Tags

  • 1.2.1.5.1 Users shall be able to classify events using tags.
  • 1.2.1.5.2 Profiles should include tags that the user is interested in.
  • 1.2.1.5.3 Users shall be able to classify events by their locations.

1.2.1.6 Searching

  • 1.2.1.6.1 Users shall be able to search events by name.
  • 1.2.1.6.2 Users shall be able to search events by tags.
  • 1.2.1.6.3 Users shall be able to search for other users.
  • 1.2.1.6.4 Users shall be able to search and filter events by location.
  • 1.2.1.6.5 Users shall be able to filter their search by ratings.
  • 1.2.1.6.6 Users shall be able to search for events by applying date restrictions.
  • 1.2.1.6.7 Users shall be able to search to find annotations.
  • 1.2.1.6.8 Users shall be able to search with parameters that include time intervals.

1.2.1.7 Events and Event Pages

  • 1.2.1.7.1 Users shall be able to create event pages for both upcoming and past events.
  • 1.2.1.7.2 Users shall be able to mark upcoming events as "going" and past events as "attended".
  • 1.2.1.7.3 Users shall be able to annotate event information and multimedia added to an event page with explanations, questions, answers, location and links.
  • 1.2.1.7.4 Users shall be able to see highly voted, nearby upcoming events in their personal homepage labelled with the tags they are watching.
  • 1.2.1.7.5 Users shall be able to rate reflecting their experience on cultural event pages.
  • 1.2.1.7.6 Users shall be able to put comments reflecting their experience on cultural event pages.
  • 1.2.1.7.7 Users shall be able to share cultural events.
  • 1.2.1.7.8 Users shall be able to follow cultural events.
  • 1.2.1.7.9 Users shall be able to see how many people will attend or attended an event.

1.2.1.8 User Interface

  • 1.2.1.8.1 Users should be able to change the website’s colour scheme.

1.2.1.9 Comments

  • 1.2.1.9.1 Users shall be able to vote comments by upvoting or downvoting them.

1.2.2 Guest Users

  • 1.2.2.1 Guests shall be able to see event pages created by users.
  • 1.2.2.2 Guests shall be able to see comments and ratings of users.
  • 1.2.2.3 Guests should see a # dialogue on the homepage.

2. Non-Functional Requirements

2.1 Availability and Accessibility

  • 2.1.1 The system should work on any web browser.
  • 2.1.2 The system should be available %99 of the time.
  • 2.1.3 If a failure happens, system should be back up within 1 hour.
  • 2.1.4 The application shall be provided for both web and mobile platforms.
  • 2.1.5 At least one of the colour schemes should be suitable for colour-blind people.

2.2 Performance and Response time

  • 2.2.1 The system shall work with up to a thousand users without crashing.
  • 2.2.2 The system shall respond to all search requests in 1 seconds.

2.3 Reliability

  • 2.3.1 The system shall back up its database every 1st and 15th day of the month to prevent user related data loss.
  • 2.3.2 The system shall encrypt all user passwords before storing them in the database.

2.4 Security

  • 2.4.1 The system should use HTTPS, so that the traffic between browser (or app) and the web server is encrypted.
  • 2.4.2 System should deny requests if excessive amount of requests has been made.
  • 2.4.3 System should be secure against SQL injections.
  • 2.4.4 System should be secure against cross site scripting.
  • 2.4.5 System should be secure against file upload vulnerabilities.
  • 2.4.6 System should not create weak session IDs so that session hijacking is impossible.

2.5 Portability

  • 2.5.1 The application shall be compatible with various Android devices and web browsers.

2.6 Annotations

  • 2.6.1 Web Annotation Protocol shall be used to store annotations.
  • 2.6.2 The annotations shall be tested to assure validity.
  • 2.6.3 JSON-LD shall be used for annotation representation according to W3C documentation.

2.7 Documentation / Coding Style

  • 2.7.1 Documentation and coding style should be consistent with the standard of the language used. For example, if Python will be used for back-end, PEP-8 style guide should be followed.
Clone this wiki locally