Project Requirements - bounswe/bounswe2019group6 GitHub Wiki

Glossary

  • Annotation: A note by way of explanation or comment added to a text, diagram or image.
  • Basic User: The user who has capabilities of guest user and is capable of accessing basic functionalities of the platform. Authentication is required.
  • Events: The news about economics.
  • Guest: The user who is able to view the price of a trading equipments and read user comments about trading equipment. No Authentication is required.
  • History: Users' actions about articles, events, tradings/investments such as commenting, rating, selling stocks, following a user.
  • Portfolio: Grouping of financial assets such as stocks, bonds, commodities, currencies and cash equivalents, as well as their fund counterparts, including mutual, exchange-traded and closed funds.
  • Prediction: The predicted states about trading equipment in the future.
  • Profile: A visual display of personal data associated with a specific user.
  • Significance Levels: The importance of events.
  • Semantic Search: Find semantically similar users and trading equipment based on the context information provided in the semantic tags.
  • Strong Password: Consists of at least six characters (and the more characters, the stronger the password) that are a combination of letters, numbers and symbols.
  • Trading Equipment: Trading equipment is defined as trade indices, stocks, ETFs, commodities, currencies, funds, bonds, and cryptocurrencies.
  • Traders Platform: Traders platform lets people follow and trade indices, stocks, ETFs, commodities, currencies, funds, bonds, and cryptocurrencies.
  • Trader: The user who has capabilities of basic user and is capable of trading/investing in any trading equipment. Authentication is required.
  • User: A person who is capable of interacting with system via an interface. A user can be basic or trading user

Requirements

1.Functional Requirements

1.1 User Requirements
  • 1.1.1. Guests
    • 1.1.1.1. Guests shall be able to view the price of trading equipment.
    • 1.1.1.2. Guests shall be able to browse economic articles, trading equipment and read comments about them.
  • 1.1.2. Login & Registration
    • 1.1.2.1. Users shall be able to create an account by providing their username, e-mail, password and location using Google Maps.
    • 1.1.2.2. Registered users shall be able to login to the application by providing their username or email and password.
    • 1.1.2.3. Users should be able to sign up via Google account.
    • 1.1.2.4. Already signed users should be able to sign in via Google account.
    • 1.1.2.5. User shall validate account via e-mail.
    • 1.1.2.6. The users who want to be trader user shall provide only their IBAN number to the system.
    • 1.1.2.7. Users shall be able to reset their passwords if they forget their passwords by clicking "Forgot your password?" button and following the shown instructions afterwards.
  • 1.1.3. User Follow System
    • 1.1.3.1. User shall be able to follow other users directly if the user's profile is public.
    • 1.1.3.2. User shall be able to send follow requests to users that have a private profile, and shall wait requests to be accepted.
    • 1.1.3.3. User shall be able to accept or reject the following requests.
    • 1.1.3.4. User shall be able to follow trading equipment.
    • 1.1.3.5. User shall be able to set alerts for certain levels of trading equipment and for the certain ratio changes.
  • 1.1.4. Portfolio System
    • 1.1.4.1. Users shall have at least one portfolio.
    • 1.1.4.2. Users shall be able to create their portfolios.
    • 1.1.4.3. Users shall be able to delete their portfolios.
    • 1.1.4.4. Users shall be able to change the name of their portfolios.
    • 1.1.4.5. Users shall be able to add new trading equipment to their portfolio.
    • 1.1.4.6. Users shall be able to delete new trading equipment to their portfolio.
  • 1.1.5. Trading Equipment System
    • 1.1.5.1. Users shall be able to read/rate other users' articles, comments about trading equipment.
    • 1.1.5.2. Users shall be able to write new articles and comments, make a prediction about any trading equipment, and view daily prediction rates of trading equipments.
    • 1.1.5.3. Users shall be able to make a prediction about any trading equipment.
    • 1.1.5.4. Users shall be able to view daily prediction rates of trading equipments.
    • 1.1.5.5. Users shall be able to edit their article comments.
    • 1.1.5.6. Users shall be able to delete their article comments.
    • 1.1.5.7. Trader users shall be able to trade trading equipment.
    • 1.1.5.8. Trader users shall be able to set stop/loss limits.
  • 1.1.6. Profile Page
    • 1.1.6.1. Users shall be able to make their profile public or private.
    • 1.1.6.2. Users shall be able to see their own portfolios in their own profile page.
    • 1.1.6.3. Users shall be able to edit their own bio in profile page.
    • 1.1.6.4. Users shall be able to reach their own followers and following list and their old articles/comments.
    • 1.1.6.5. Users shall be able to see their own prediction success rates for trading equipments.
    • 1.1.6.6. Users shall be able to see other users' prediction success rate for all trading equipments in their profile.
    • 1.1.6.7. Users shall be able to see other private users' followers, articles and following list if he/she follows that private user.
    • 1.1.6.8. Users shall be able to see other public users' followers, articles and the following list.
    • 1.1.6.9. Users shall be able to only see other user's prediction rate if their profile is private and if he/she is not his/her friend.
  • 1.1.7. My Investments Page
    • 1.1.7.1. Trading users shall have my investments page.
    • 1.1.7.2. Trading users shall be able to invest on any trading equipment in My Investments page.
    • 1.1.7.3. Trading users shall be able to create a buy order for any trading equipment for a specified rate in My Investments page.
    • 1.1.7.4. Trading users shall be able to set stop/loss limits on any trading equipment in My Investments page.
  • 1.1.8. Profit/Loss Section
    • 1.1.8.1. Users shall have a profit/loss section which is private to each user.
    • 1.1.8.2. Users shall be able to see profit/loss in terms of currency chosen by user.
    • 1.1.8.3. Users shall be able to manually enter investments to see calculated profit/loss.
  • 1.1.9. News Section
    • 1.1.9.1. Users shall be able to see news fetched from third party website.
    • 1.1.9.2. Users shall be able to see news written by other users.
    • 1.1.10.1. Users should be able to be redirected to third party site when click the news they would like to read in detail.
  • 1.1.10. Privacy
    • 1.1.10.1. The user shall be able to respond follow request before following is activated.
    • 1.1.10.2. The user shall be able to choose whether he/she wants his/her profile to be public or private.
1.2 System Requirements
  • 1.2.1. Homepage
    • 1.2.1.1. System shall provide a homepage for each registered user according to the user's interests.
    • 1.2.1.2. System shall provide a homepage that enables registered users to see economic events, news and trading commodities that user is interested in.
    • 1.2.1.3. System shall provide a navigation bar in order to enable users to switch to their profile section, articles section, news section, trading equipment section, search section.
  • 1.2.2. Events
    • 1.2.2.1 System should provide an "Events" section in which there are economic events, articles, news that is fetched from a third-party source.
    • 1.2.2.2. System shall assign different significance levels for economic events ranges from 1 to 5.
    • 1.2.2.3. Events shall be updated daily.
  • 1.2.3. Search
    • 1.2.3.1. System shall support searching for users, trading equipment, articles, events and portfolios.
    • 1.2.3.2. System shall support search with user, search with trading equipment, search with articles, search with events, search with portfolios features.
    • 1.2.3.3. System shall support semantic search based on the context of information.
    • 1.2.3.4. System shall support location-based search (be able to filter users/events based on city or district).
    • 1.2.3.5. System shall support filtering events depending on their significance.
  • 1.2.4. Notification & Recommendation
    • 1.2.4.1. System shall notify users in accordance with their alerts
    • 1.2.4.2. System shall recommend articles, trading equipment, commodities for the users based on their history in the system such as comment history, prediction history and search history.
    • 1.2.4.3. System shall let the user to change the notification settings from profile page.
  • 1.2.5. Trading
    • 1.2.5.1. System shall provide a "Trading" section where Trader users can buy/sell commodities, trading equipment.
    • 1.2.5.2. System shall automatically detects when a trader make a transaction and update his/her My Investments page.
    • 1.2.5.3. System shall highlight the commodities that are trend or the user may be interested in based on his/her history in the system such as comment history, prediction history and search history.
  • 1.2.6. Money Transaction
    • 1.2.6.1. System shall provide a simple, seamless and secure way for money transaction for trader users.
    • 1.2.6.2. System should cooperate with 3rd party applications for money transaction and mobile payments.

2.Non-functional Requirements

2.1 Accessibility and Availability
  • 2.1.1. The system shall have a native web and native android client.
  • 2.1.2. The system shall be deployable on a remote and manually configurable server.
  • 2.1.3. The website and the mobile application shall be available in English.
  • 2.1.4. The system shall support UTF-8(Unicode) charset.
  • 2.1.5. The web app should provide support for Screen Reader applications.
2.2 Annotations
  • 2.2.1. System shall support W3C Web Annotation Data Model and follow W3C Web Annotation Protocol so that the contents can be annotated by users.
  • 2.2.2. System shall follow the standards introduced by the W3C.
2.3 Performance
  • 2.3.1. System shall respond to request in at most 5 seconds.
  • 2.3.2. System shall use queue system to reduce response time.
  • 2.3.3. System should cache the commonly used contents to reduce response time.
  • 2.3.4. Native Android app and web app should run smoothly and use low system resources.
  • 2.3.5. System shall support Safari, Chrome and Firefox as a browser.
2.4 Security
  • 2.4.1. Financial Transactions shall be reliable and secure.
  • 2.4.2. System shall be invulnerable against potential SQL injection, XSS attacks and DDOS attacks.
  • 2.4.3. System shall force users to use strong passwords, which must consist of at least six characters (and the more characters, the stronger the password) that are a combination of letters, numbers and a special character.
  • 2.4.4. System shall protect users' information by denying any unauthorized accesses.
  • 2.4.5. System shall store hashed version of user sign in password and don't store the password itself in anyhow.
  • 2.4.6. System shall backup all data to AWS Storage after each week.
  • 2.4.7. System shall encrypt every connection and data transfer by using latest version of TSL encryption.
⚠️ **GitHub.com Fallback** ⚠️