COMP2741/8741 Page 1 of 9 Copyright Flinders University 2019
COMP2741/8714: Application Development
Assignment 1: GUI Implementation and Testing
YouTube Trender
Submission Date
Midnight, Wednesday, Week 14
Important Information
You do NOT need a YouTube/Google account to complete and achieve a high mark for this
assignment. You will only be required to read YouTube video data from a file.
You can do this assignment in pairs. You must let me know whom you are pairing with so that you
can access a single code repository and so that you can be assessed, because only one submission is
required.
The assignment is worth 25% of the overall topic mark. The 25% is broken down into three phases as
discussed below.
Specification
The assignment is to build upon the command line application of Assignment 1 which was to read
YouTube video data and process the data contained within them. This assignment will develop a
graphical user interface to allow users to interact with YouTubeVideo data model and its functionality.
As a reminder:
YouTube is a global video-sharing website headquartered in San Bruno, California, United States. The
site allows users to upload, view, rate, share, and comment on videos.
1
Available content includes
video clips, TV clips, music videos, movie trailers, and other content such as video blogging, short
original videos, and educational videos. User can also add a title and description to the videos and
by examining the contents of and detecting which words appear frequently across titles and
descriptions we can detect “trending topics.” See below for more information on YouTube and the
YouTube Data API that generate the list of videos used in this assignment:
YouTube: https://www.youtube.com/yt/about/en-GB/
Wikipedia on Youtube: https://en.wikipedia.org/wiki/YouTube
YouTube Data API: https://developers.google.com/youtube/v3/getting-started
YouTube Data API for listing videos: https://developers.google.com/youtube/v3/docs/videos/list
It is your job to develop a command line application that can detect the YouTube Trending Topics.
1 https://en.wikipedia.org/wiki/YouTube
COMP2741/8741 Page 2 of 9 Copyright Flinders University 2019
Assignment Phases Overview
The assignment is broken down into three phases:
1. JUnit Test and display YouTubeVideo, Parser, and Exception classes [20%]
2. JUnit Test and display Sorting of YouTubeVideo objects by different features [20%]
3. JUnit Test and display the indexing of YouTubeVideo, aka “Trending Topics” [20%]
Each phase will have marks allocated as follows:
50% JUnit Testing
50% Graphical User Interface Development
You must also submit a document that describes what you have done and any extra features that you
have built for your application. This document, a PDF file, will be submitted via FLO
Application Description Document [15%]
Extension work (see below) [10%]
At the end of each phase, you should commit it to repository with the comment “Phase X” where X is
the phase number 1, 2, or 3.
Correct use of the repository [15%]
You will need to submit to the assignment submission box on FLO the revision number of your final
commit for the assignment and the Application Description Document. See further below for more
details.
Your code submission will be the contents of your repository.
Graphical User Interface Development
Below are example GUI development that you should aim for (at a minimum) for each phase of the
assignment. You are supplied with a basic GUI from the repository code, but it is not connected to the
代写COMP2741/8714作业、Java程序设计作业调试、代做Java语言作业、代写GUI Implementation作业
underlying YouTube data model. It is your job to connect the data model to the user interface and
then develop the user interface further through the different phases.
COMP2741/8741 Page 3 of 9 Copyright Flinders University 2019
Figure 1. Example of Phase 1 GUI.
COMP2741/8741 Page 4 of 9 Copyright Flinders University 2019
Figure 2. Example of Phase 2 GUI with YouTubeVideo sorting.
COMP2741/8741 Page 5 of 9 Copyright Flinders University 2019
Figure 3. Example GUI for Phase 3 with YouTubeVideo indexing.
JUnit Testing
Create JUnit tests to verify that your code functions correctly for any input that you deem to be
necessary for thorough and comprehensive testing. There is a starting Junit test for the
YouTubeVideoParser class, but you need to finish it off and create unit tests for the other model
classes (including video, parsing, exception, sorting and indexing). You are provided with data files
and the expected output that can be used in your unit tests. The tests will test the classes that you
have been provided that represent the Videos and other pieces of data (e.g. words in the index,
comparators, lists) and the functionality associated with them (sorting, find most used word, getting
the title of a Video).
You are provided with a set of JSON files as part of the skeleton code in the “data” directory.
The testing outlined in this document is given as a guide.
You have been supplied with several JSON files as part of the skeleton code that contain different
examples of the type of data contained in YouTube JSON files. The table below describes each file and
the number of records contained within them
COMP2741/8741 Page 6 of 9 Copyright Flinders University 2019
File name Description No. Videos
youtubedata.json A single video items in video query (mock data) 1
youtubedata_15_50.json 50 video items from a query from category 15 50
youtubedata_loremipsum.json 10 mock video items with useful descriptions and
titles
10
youtudedata_indextest.json A single video item for testing indexing 1
youtubedata_singleitem.json A single video item not in a list 1
youtubedata_malformed.json A single video items in video query (mock data),
but with an error
1
The file “youtubedata_malformed.json” has one video item in a list but contains an error. This file is
useful for test the detection of errors in your parser. For example, it may throw an exception
indicating a problem with the provided .json file.
The file “youtubedata_singleitem.json” contains that data for a single video but not in a list. This is
suitable for testing a class that represent video item data. The data is a JSONObject (enclosed
between “{“ and “}”).
The “youtudedata_indextest.json” contains a fake title and description for testing your indexing.
There should be 1 “ONE”, 2 “TWO”’s, 3 “THREE”’s, four “FOUR”’s, and five “FIVE”’s.
Along with the .json files are corresponding “_info.txt” files available on FLO. These files contain
information about the video contained in the .json file and can be used to provide info for your
testing (e.g. the number of videos). That is, given the .json file you should expect your program to
be able to provide the information contained in the “_info.txt” file.
The sorting and word counts in the “_info.txt” files closely follow the algorithm in the assignment1
specification.
Note that:
The word count includes repeats of the word in the text of one message
o e.g. text:“aaa aaa” => count for “aaa” is 2
Application description document [up to 10%]
You should write a brief document to describe the features of your application. It is to be submitted
through FLO as a PDF file. You can include text from this document and but it is not a copy of your
Javadoc.
This document can be thought of as an informal user guide and can include screen shots of the code
and its output. You can describe the demonstration and test code. If it is not submitted, then you will
receive 0 marks for this component. It will be difficult to achieve a HD without this document.
COMP2741/8741 Page 7 of 9 Copyright Flinders University 2019
HOW TO
A skeleton NetBeans project is provided to get you started. To get the project you need to checkout
the project from a Subversion (SVN) repository that is hosted on the CSEM servers. You will have your
own directory on a shared repository. The repository location is:
https://topicsvn.flinders.edu.au/svn-repos/COMP2741/<FAN>
Where the <FAN> is your university FAN without the brackets. To access the repository you need to
enter you university FAN and password. You can browse the repository using an internet browser.
However, it is expected that you will use NetBeans to access the repository (as in Figure 4 and Figure
5) for checking out and performing updates and commits. This is accessible both on and off campus
and it is expected that you will commit often to the repository.
Figure 4. Accessing the subversion checkout menu option in NetBeans
Figure 5. Details for checking out subversion repository. Here the username is “brow9999”, but you would use your
own University FAN.
If you are working in a pair you will need to let Trent know so that access can be given to your
partner’s repository. Please see additional documentation on FLO. You will only need to access one
repository to complete the assignment (see additional documentation on FLO).
You can then commit and update from the repository as you see fit (e.g. at the end of each phase).
The markers will also have access to this repository for assessment purposes.
COMP2741/8741 Page 8 of 9 Copyright Flinders University 2019
How To: Get a High Distinction
Completing all the tasks outlined in the phases will probably result in a mark in the range CR-DN. To
achieve a HD, “The student would normally have attained an in-depth knowledge of and have
consistently demonstrated a high level of proficiency...with original and creative thinking.
2
" Thus, you
need to complete the minimum and also extend beyond that. Areas where this can be achieved in
this assignment are
more comprehensive unit testing
better graphical user interface design (showing the videos!).
more extensive YouTubeVideo class design (e.g. incorporate other JSON elements)
sorting by more features
searching your YouTubeVideo list
different ways to index the title/descriptions (e.g. phrases (> 1 word), stop word removal,
sentiment)
better cleaning of the words used in the index (e.g. make “twinkle” and “twinkle,” the same)
temporal analysis of trending topics
These additional features must to be outlined in your Application Description Document so that they
can be assessed. You need not do all the above examples to gain a HD, they are just different options.
Your assignment must still pass the required unit tests.
2
See section 10.1.2 from http://www.flinders.edu.au/ppmanual/student/assessment-policy.cfm
COMP2741/8741 Page 9 of 9 Copyright Flinders University 2019
HOW TO submit the code and revision number
On your final commit to the repository you need to take note of what the revision number is. You can
see this in the versioning window in NetBeans or do a “Subversion->Search History” and see what the
final commit revision number is. Once you have that you can submit your assignment and enter the
final revision number along with your PDF to the assignment submission box on FLO. The final revision
number goes into the Online text entry, in the figure below the revision number is 1234
Figure 6. Example revision number submission on FLO.
因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected]
微信:codinghelp