Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Overview
This is the first part of a two-part assignment. This part is worth 21% of your final grade for
IFB104. Part B will be worth a further 4%. Part B is intended as a last-minute extension to
the assignment, thereby testing the maintainability of your solution to Part A and your ability
to work under time pressure. The instructions for completing Part B will not be released until
Week 12. Whether or not you complete Part B you will submit only one solution, and receive
only one mark, for the whole 25% assignment.
Motivation
People are always interested in lists of “the best” things in a wide range of categories. One of
the features that makes such lists interesting is the way the entries change over time. Here
you will develop a software application that allows its users to browse a number of online
“top ten” lists, including the ability to compare old and new versions. Your application will
have a Graphical User Interface that allows its user to preview the lists they are interested in.
They will then be able to export a more detailed version of any chosen list, which can be examined
in a standard web browser.
This “capstone” assignment is designed to incorporate all of the concepts taught in IFB104.
To complete it you will need to: (a) use Tkinter to create an interactive Graphical User Interface;
(b) download web documents using a Python script and use pattern matching to extract
specific elements from them; and (c) generate an HTML document integrating the extracted
elements, presented in an attractive, easy-to-read format.
Goal
Your aim in this assignment is to develop an interactive “app” which allows its users to preview
and export top-ten lists downloaded from the web. There must be at least three distinct
lists available, and both old and current versions of the lists must be made available. Most
importantly, the online web documents from which you collect your lists must be ones that
are updated on a regular basis, either daily or weekly, so that the old and new lists are different.
For the purposes of this assignment you have a free choice of which lists your application
will display, provided they always contain at least ten items, are updated frequently, and include
the name of each item listed and at least one distinctive “attribute” for each item. Your
application must offer access to (at least) three entirely different lists. The lists could be:
music charts,
movie or television ratings,
stock market listings,
online gaming player rankings,
book ratings,
crowd-sourced popularity lists,
IFB104 Building IT Systems
Semester 2, 2018
customer ratings of products or services,
web site statistics,
etc.
However, whatever lists you choose, you must confirm that the online web documents are
updated frequently. For each item in each list the source web site must contain the item’s
name and some other distinguishing “attribute” of the item listed. Attributes could be:
an image or photo,
some additional property of the item other than its name, such as the author of a book
or the lead actor in a movie,
a detailed textual description of the item,
some kind of numeric score, ideally one which justifies or explains the item’s appearance
in the list, such as a number of user votes or downloads,
etc.
Appendix A below lists many web sites which may be suitable for this assignment, but you
are encouraged to find your own of personal interest.
Note: An obvious source for such lists is sport. However, you cannot always rely on sporting
lists being updated “out of season”. Therefore, if you choose to use a sports-based list, you
must confirm that the sport is being played during the period in which this assignment will be
developed and assessed, i.e., mid-September to mid-November 2018!
Using the data in the online top-ten lists you are required to build an IT system with the following
general architecture.
Your application will be a Python program with a Graphical User Interface. Under the user’s
control, it allows the contents of several top-ten lists to be previewed in the GUI. One collec-
IFB104 Building IT Systems
Semester 2, 2018
tion of lists is static and is stored in an “archive”, i.e., a folder of previously-downloaded
HTML/XML documents. The other source of lists is the “live” Internet. Your application
must offer both a previously-downloaded and a “current” list of three different kinds. Having
previewed the lists in the GUI, the user can then choose to export them to an HTML file.
This file will contain a more detailed version of the list than the one previewed in the GUI
and can be studied by the user in any standard web browser at their leisure.
This is a large project, so its design allows it to be completed in distinct stages. You should
aim to complete it incrementally, rather than trying to solve the whole problem at once. A
suggested development sequence is:
1. Develop code that allows the static, archived top-ten lists to be previewed in the GUI.
2. Extend your solution so that it allows the corresponding “live”, online top-ten lists to
be previewed.
3. Extend your solution further so that any of the lists previewed, archived or live, can be
exported as HTML documents.
If you can’t complete the whole assignment submit whatever parts you can get working. You
will get partial marks for incomplete solutions (see the marking guide below).
Illustrative example
To demonstrate the idea, below is our own solution, which uses data extracted from three different
web sites, one which lists the US TV shows most discussed in social media, one which
lists the UK’s most popular music albums, and one which lists movies currently being illegally
downloaded online. All three of these lists are updated online at least weekly, so our program
is designed to continue working even after the lists have changed.
The screenshot below shows our example solution’s GUI when it first starts. We’ve called it
“Simply the Best” after the Tina Turner song, but you should choose your own name and GUI
design.
The GUI has a logo which identifies it, six radio buttons allowing the user to select lists of
interest, and two push buttons allowing the user to preview or export the list selected. You
do not need to copy this example and are encouraged to design your own GUI with equivalent
functionality. For instance, menus could be used to allow the selection rather than radio
buttons. Our “Simply the Best” logo contains text which names the application, but if you
choose an image with no text you must also add a textual label containing your application’s
name.
Previewing old lists
For each of the three types of list, our app allows the user to preview an old, previouslydownloaded
copy of the list or the current one online. Working with unchanging web documents
is obviously easiest, so we recommend you start your solution with this requirement.
For each of our three lists we downloaded copies of the corresponding web pages (one on
September 3rd and the other two on September 9th) and stored them in a folder to serve as
our “archive” of old lists. The user can preview any of these lists by selecting the corresponding
radio button and pressing the “Preview” button. For instance, pressing the button
while the “previous most-discussed television” list is selected causes the following window to
be displayed, showing the US Nielsen Survey ranking of TV shows most-discussed in social
media on September 9th:
Our app pops up a new window to display this data, but again you are free to design your
own GUI. A single window could be used for all functions instead. (The fact that some
items are duplicated above is not an error. The original web site makes clear that different
episodes of the same TV series were being discussed in social media at the same time.)
Of course, we can select a different old list for previewing via the GUI, as follows.