Skip to content

Requirements

Nick Hu edited this page Mar 23, 2017 · 1 revision

At the end of the project, we plan to provide an interactive user interface depicting different market data and trends against the keywords or events that were popular during the time period. We have expanded on the User Interface and the Data Sources below. Text in italics is used to convey requirements that we will attempt to provide, given the time and possibility.

User Interface

Vague Design:

The user can access the system with a web interface. The main part of the web interface is a graph.

The graph has a set of controls that allows the user to select the time scale in order to zoom in or out of the data. The x-axis of the graph will represent a timeline, against which markets, trends and predictions can be plotted. The y-axis of the graph shall represent the market price, and also the popularity of news items, with more higher values appearing closer to the top of the graph.

Three types of data shall be shown on the graph:

  1. Market and share prices
  2. Trending media feeds
  3. Relevant News Articles

There will be options for the user to select which markets or share prices they want to see on the graph, and which media feeds to show trends from. There will be a default set of markets and trends available to select from.

Market/share prices will be shown with a line of a different colour for each market, trend and news popularity will be shown as a bar chart, with bars at several interviews along the timeframe, and different colour bars for different news sources. Links to news articles will be shown on the graph at the time the prediction was made, with positive articles appearing in green, and negative ones in red. Neutral articles will appear blue. Articles from different sources will have different shapes, and legend to differentiate between them.

Also included on the webpage is a search box, where the user can enter a particular market/stock that they want to view and put on the graph. As the user types data into the box, suggestions will appear, and the user can click the option they want.

Once a new trend is added to the graph, it can be removed by unselecting it, just as with the other markets that may appear on the graph by default. The webpage will suggest other markets the user may wish to look at based on their current selection of markets.

#Obtaining data from social media and news sources:

This module will use the Twitter Search API(https://dev.twitter.com/rest/public/search) and NewsAPI(https://newsapi.org/) (and potentially The Facebook Graph API later on) to obtain data about the trending topics and current events. In both cases, an HTTP client will query the APIs and bring the JSON format responses in the form required for data analysis.

  1. The Twitter Search API will be used to search for trends in a certain geographical location(or worldwide) and to retrieve the tweet-volume for the last 24 hours for every trending topic(if this is available). Some processing will have to be done to restrict the trends we analyse to those with names in English (or at least to only those using the Latin alphabet).

  2. The NewsAPI will be used to obtain a metadata for popular articles from different international sources, containing the title, URL address, and a short description of each article.

  3. We are still looking for APIs for financial data. Any suggestions would be greatly appreciated.

Providing live suggestions

This tool will take as input the data being depicted live on the graph, and will make suggestions based on any similarities it finds (much like the suggestions bar on an e-commerce website). For eg.: If crude oil prices and the stock price of Airline Company #1 are being mapped, then the tool will suggest adding to the graph Airline Company #2. The name will be hyperlinked, so clicking on the suggestion will be equivalent to typing in "Airline Company #2" in the search bar.

Ideas that would be good to implement:

1. Give suggestions based on real time data - using the example above, instead of just looking for similarities, the suggestion should provide "Airline Company #3" if the stock of Airline Company #3 was on the rise, or if there had been some mention of Airline Company #3 on social media or in an analyst's report in recent past.

2. Personalise suggestions based on user history. However, this will depend on the time availability to implement different user identities and the history tracking modules.

Clone this wiki locally