聯系方式

您當前位置:首頁 >> Java編程Java編程

日期:2019-06-11 10:11

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

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.


版權所有:留學生編程輔導網 2018 All Rights Reserved 聯系方式:QQ:99515681 電子信箱:[email protected]
免責聲明:本站部分內容從網絡整理而來,只供參考!如有版權問題可聯系本站刪除。

体彩22选5开奖走势图百度