You are required to write a Java program that performs a search on twitter feeds based on a key word or phrase, analyse the tweets that are returned and visualise this data in a JavaFX chart. The form of analysis required is left fairly open-ended, but we advise you start simply. It is suggested that you begin by writing a Java program that performs a very basic search on a key word or phrase which is a ‘current’ topic of interest in the news. For example, at the time of writing, a current topic in the news is the EU referendum, so one might perform a search on “EU Referendum” to retrieve a set of tweets. A very simple analysis of that set of data could be, in turn, to each for specific key words within those tweets such as “Boris”, “Cameron”, or “Brexit”. Statistical data on the frequency of those key words could be gathered and presented as a simple JavaFX pie chart. Having achieved a basic task such as that described, you could then enhance the work. For example, you could try more complex twitter query searches, and then also search for more complex phrases within the collection of tweets. You could try parameterising the program to allow for a dynamic selection of topics and key words/phrases. You could also experiment with different styles of charts available with JavaFX (i.e., you are not restricted to pie charts), possibly allowing for multiple visual perspectives on the data set.
Task 2 – Up to 30 marks
Develop a Java program that searches and gathers twitter data from a geographical location and specified region (in kilometres), such that the data set contains users who write twitter feeds, and users who follow those twitter feeds. This type of search should be based on a ‘geocode’ query (this is supported in the Twitter4J API), with a specified radius. That is to say, you should write a program that extracts a list of users for a particular area at a given time, and discovers which users are following each other. This data set constitutes a graph with nodes and edges. This task requires you to retrieve, store and visualise this data in JavaFX. (Hint: A basic form of JavaFX graph visualisation is presented in the core text book, Chapter 28, Section 28.5. Feel free to use that one and perhaps improve on it. You might need to experiment with the coordinates of the nodes of your graph to make the layout readable).
Note: retrieving a substantial data set on geographical location can be a time-consuming task, particularly if looking for a ‘connected community’ (i.e., users and followers). For this reason, it is strongly advised that you focus on an area such as a small town to increase the likelihood of acquiring a reasonable data set. That is to say, it is more likely that the twitter users are connected within smaller regional communities, and less likely that the connectivity is dense in larger cities.
Task 3 – Up to 20 marks
Extend the program from Task2 to perform various types of analysis on the Twitter user graph. More specifically, you are required to perform the following tasks:
- List the top 20% of followed users. (5 marks)
- Two users U and V are ‘directly connected’ if U follows V or V follows U. Two users U and V, are ‘connected’ if there exists the chain of users W1,…,Wn such that U = W1, V = Wn, W1 is directly connected to W2, W2 is directly connected to W3, …, and W(n-1) is directly connected to Wn.
A ‘connected component’ in the graph is a set of users such that:
- It has at least two users
- Any two users in the set are connected
- No user outside the set is connected to a user inside the set
Determine all connected components of the user graph. For this, you can use Depth-First Search as explained in the core text book, Chapter 28, Section 28.7. (10 marks)
- Improve on the visualisation from Task 2 by visualising only the connected components you have found in the previous task and by colouring the user nodes with an intensity that matches their degree of `local’ popularity (the number of users in the graph following them). (5 marks)
Report – Up to 10 marks
In addition to the software that you develop, you are also required to write a short report on your work (max. 4 pages – Microsoft Word). The report should contain an opening statement that indicates which tasks you managed to achieve. If you did not manage to create a working program for any given task, then it is required that you make a clear statement in the report (opening statement). The rest of the report is your opportunity to explain the key features of your programs. As part of the report, you must include at least one screen-shot of the GUI (whilst the program is running). You should not include screen-shots of code listings in NetBeans.
Do you want your assignment written by the best essay experts? Then look no further. Our teams of experienced writers are on standby to deliver to you a quality written paper as per your specified instructions. Order now, and enjoy an amazing discount!!


