Skip to content

Requirements

yemreinci edited this page Mar 13, 2019 · 41 revisions

Table of Contents

Glossary

  • Annotation: A note or comment typically used to convey information about a resource or associations between resources. For example comment or tag on a single web page or image.
  • Article: A piece of writing of users of traders platform about trading that other users can read and share.
  • Basic User: A person who has signed in and has access to basic application functionalities like creating a portfolio and keeping track of their profit/loss, following other users, portfolios and trading equipment, sharing, commenting and rating articles.
  • Event: An economic event that has a specific significance level(one star, two stars, three stars).
  • Follow: A user gets updates of other users posts or events when they follow the user/event.
  • Guest: A person who has not signed in and has limited access to application functionalities. Guests can only view the price of trading equipment and profiles of other users, read posts and events.
  • HTTP: (HyperText Transfer Protocol) The underlying protocol used by the World Wide Web that defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands.
  • Investment: Indices, stocks, ETFs, commodities, currencies, funds, bonds, and cryptocurrencies that the users buy in order to make a profit.
  • Moving average: A succession of averages derived from successive segments (typically of a constant size and overlapping) of a series of values.
  • Password: A string of characters that allows access to the system.
  • Portfolio: A collection of trading equipments that the user chooses.
  • Semantic search: A data searching technique which aims to determine the intent and contextual meaning of the words a person is using for search.
  • Sign up: Registering to the system providing the necessary information.
  • SQL injection: A code injection technique, used to attack data-driven applications, in which nefarious SQL statements are inserted into an entry field for execution.
  • Trading equipment: Indices, stocks, ETFs, commodities, currencies, funds, bonds and cryptocurrencies.
  • Trading User: A person who has signed in and has access to all application functionalities.
  • Username: A unique string of identification used by a registered user.
  • Web Annotation Data Model: A specification that describes a structured model and format to enable annotations to be shared and reused across different hardware and software platforms.

1. Functional Requirements

1.1. User Requirements

1.1.1. User Basics

1.1.1.1. Sign Up

  • 1.1.1.1.1. Users shall be able to sign up by providing an appropriate password (at least 8 characters long, can include letters, digits and special characters) , an e-mail address, a name, and a surname and specifying their location through specifying on Google Maps. Trader users have to provide IBAN additionally.

  • 1.1.1.1.2. Users should be able to sign up via their Google account.

1.1.1.2. Sign In

  • 1.1.1.2.1. Users shall be able to sign in by their e-mail and password combination.
  • 1.1.1.2.2. Users should be able to sign in via their Google account.

1.1.1.3. Profile

  • 1.1.1.3.1. Users shall be able to have either a public profile or a private profile.
  • 1.1.1.3.2. Users shall follow the other user with the private profile in order to see the contents in a private user profile.
  • 1.1.1.3.3. Users prediction success rate for a specific trading equipment should be visible on their profile page.

1.1.2. User Interactions

1.1.2.1. Communication

  • 1.1.2.1.1. Users shall be able to follow each other.
  • 1.1.2.1.2. Users shall be able to follow economic events. A user who is following an event should be notified after the event happened.

1.1.2.2. Sharing

  • 1.1.2.2.1. Users shall be able to share their ideas as an article.
  • 1.1.2.2.2. Users shall be able to comment and rate ideas of other users
  • 1.1.2.2.3. Users shall be able to comment about trading equipment.
  • 1.1.2.2.4. Users shall be able to share their portfolio on their profile page.

1.1.3. Trade Related Properties

1.1.3.1. Tools Available To Guests

  • 1.1.3.1.1. Guests shall be able to view the price of trading equipment and read user comments about trading equipment.
  • 1.1.3.1.2. Guests shall be able to view the events section.
  • 1.1.3.1.3. Guests shall be able to filter events.

1.1.3.2. Tools Available To Users

  • 1.1.3.2.1. Users shall be able to follow trading equipment.
  • 1.1.3.2.2. Users shall be able to set alerts for certain levels of trading equipment.
  • 1.1.3.2.3. Users shall be able to have at least one portfolio.
  • 1.1.3.2.4. Users shall be able to rename their portfolio and add any trading equipment they want to their portfolio.
  • 1.1.3.2.5. Users shall be able to follow each other's portfolios.
  • 1.1.3.2.6. Users shall be able to have an “Events” section. In this section, users can chase economic events with different significance levels.
  • 1.1.3.2.7. Users should be able to filter economic events by considering their significance level and country base.
  • 1.1.3.2.8. Users shall have a profit/loss section. This section will be private to the user. They shall be able to see their profit/loss amount in terms of the currency they choose by manually entering their investments.
  • 1.1.3.2.9. Users shall be able to make predictions about the trading equipment and shall be able to display the success rate of their predictions on their profile page.
  • 1.1.3.2.10. Users shall be able to deny the following requests coming from other users.
  • 1.1.3.2.11. If a user profile is private, then the content produced by that user shall only be visible to its followers.
  • 1.1.3.2.12. Prediction success rate shall be visible to everyone even a user's profile is private.

1.1.3.3. Tools Specificly Available To Trader Users

  • 1.1.3.3.1. Trader users shall have a profit/loss section. This section will be private to the user. They shall be able to see their profit/loss amount in terms of the currency they choose by both manually entering their investments and using the investments they made in the Traders Platform.
  • 1.1.3.3.2. Trader users shall have “My Investments” section. They shall be able to invest in any trading equipment, make a buy order for a specified rate, and set stop/loss limits.
  • 1.1.3.3.3. Trader users shall have to verify their email before making their first investment.

1.1.4. Trading Equipments

1.1.4.1. Examples

  • 1.1.4.1.1. Trade indices such as S&P 500, Dow 30, DAX...
  • 1.1.4.1.2. Stocks such as Apple, Alibaba, IBM...
  • 1.1.4.1.3. ETFs such as SPDR S&P 500, SPDR DJIA, iShares Russel 2000...
  • 1.1.4.1.4. Commodities such as Gold, Natural Gas, Silver...
  • 1.1.4.1.5. The application should support chief monetary units in the world. Currencies such as Euro, American Dollar, Turkish Lira...
  • 1.1.4.1.6. Funds such as Pimko Total Return, Vanguard Total Stock Market Index Fund, American Funds Growth Fund of America...
  • 1.1.4.1.7. Bonds such as Euro Bund, UK Gild, Japan Government Bond...
  • 1.1.4.1.8. Cryptocurrencies such as Bitcoin, Ethereum, XRP...

1.1.4.2. Functions

  • 1.1.4.2.1. Trading equipment shall have the previous close.
  • 1.1.4.2.2. Trading equipment shall have percentage change with the previous close.
  • 1.1.4.2.3. Trading equipment shall have amount change with the previous close.
  • 1.1.4.2.4. Trading equipment shall have day's range.
  • 1.1.4.2.5. Trading equipment shall have moving averages.

1.1.5. Searching

1.1.5.1. User Searching

  • 1.1.5.1.1. Users shall be able to search for other users.
  • 1.1.5.1.2. Users shall be able to search for similar users by providing semantic tags to utilize semantic search.
  • 1.1.5.1.3. Users should be able to search for other users in a specific location.

1.1.5.2. Trading Equipment Searching

  • 1.1.5.2.1. Users shall be able to search for trading equipment.
  • 1.1.5.2.2. Users shall be able to search similar trading equipment by providing semantic tags to utilize semantic search.

1.1.5.3. Event Searching

  • 1.1.5.3.1. Users shall be able to search for events.

1.1.6. Recommendation

1.1.6.1. Event Recommendation

  • 1.1.6.1.1. Users shall be able to get recommendations based on their event history, user they follow and their activity interests.

1.1.6.2. User And Trading Equipment Recommendation

  • 1.1.6.2.1. Users shall be able to get article or trading equipment recommendations based on their histories (e.g., trading equipment or users they follow).

1.2. System Requirements

The application should contain an admin panel for developers to add new currencies into the system. The application should support Turkish characters. The language of the app should be English. Any other language may be supported.

1.2.1. Interactions

  • 1.2.1.1. The system shall support sharing ideas as an article.
  • 1.2.1.2. The system shall support commenting and rating ideas of other users.
  • 1.2.1.3. The system shall support commenting about trading equipment.
  • 1.2.1.4. The system shall let users follow other users and trading equipment.
  • 1.2.1.5. The system shall provide an alert mechanism which lets traders to get notified about certain levels of trading equipment.
  • 1.2.1.6. The system shall provide an alert mechanism which lets users to get notified about other users activities, when they follow another user.

1.2.2. Recommendation

  • 1.2.2.1. The system shall provide a recommendation mechanism recommending articles, portfolio or trading equipment to the users based on their histories.
  • 1.2.2.2. The system shall let users to make predictions about trading equipment.

1.2.3. Searching

  • 1.2.3.1. The system shall contain a searching mechanism that lets users to search users, trading equipment and economic events.
  • 1.2.3.2. The searching mechanism shall consider all the information available in user profiles and trading equipment.
  • 1.2.3.3. The system shall allow the semantic search which enables users to make a search by using user defined tags in order to make more specific search.
  • 1.2.3.4. The system shall support location-based search.

2. Non-Functional Requirements

2.1. Security

  • 2.1.1. The website and the mobile application shall use secure HTTP (HTTPS) for all transfers.
  • 2.1.2. The website shall be secure against SQL injection, cross-site scripting, and cross-site request forgery attacks.
  • 2.1.3. User passwords shall be stored in the database using a secure hashing algorithm.
  • 2.1.4. The system should backup periodically.

2.2. Performance

  • 2.2.1. The system shall be able to handle 1000 HTTP requests per second.
  • 2.2.2. The system shall be capable of serving 1000 users at the same time.
  • 2.2.3. The system shall respond to search queries in less than 3 seconds.

2.3. Availability and Accessibility

  • 2.3.1. The website and the mobile application shall be available in English.
  • 2.3.2. The project should work on any web browser.
  • 2.3.3. The application shall work on Android 4.4 and later.
  • 2.3.4. The project shall be provided for both mobile and web platforms.
  • 2.3.5. The system should work 7/24 with no more than 1% downtime.
  • 2.3.6. The project should contain auxiliary features for disabled people.

2.4. Annotations

  • 2.4.1. The W3C Web Annotation Data Model and W3C Web Annotation Protocol shall be used for annotations.
Clone this wiki locally