IFB104 Building IT Systems
Semester 1, 2021
2021-04-24 1
Assessment Task 2: Client’s Briefing #1 Transcript
Hello, I’m your client for this new software development project.
We want you to create a “news” application for our customers. Recent events have seen people
become very concerned about the accuracy, freshness, reliability and diversity of their
news sources. Our goal is to create a program that resolves all of these issues. It must have
an intuitive Graphical User Interface and a reliable back-end which extracts the latest data
from online sources.
For now we want you to focus on the user interface so that we have something to show our
investors. We need you to design and implement a suitable user interface using Python 3’s
Tk GUI module.
I’ve spoken to our boffins and they’ve created a demo to illustrate the idea.
[Runs the user interface demo]
As you can see the GUI is designed to give its user access to four different news sources in a
specific category. For illustrative purposes the boffins have chosen “politics” as their category
of interest (they’re very boring people!) and they’ve named the application “Not the Facebook
News” (they have an odd sense of humour!). The interface has a variety of widgets for
user control and displaying results.
We don’t want you to copy this prototype, but you must develop your own graphical user interface
with equivalent capabilities. Specifically:
• Your GUI’s window must have a title which identifies both the application and the
news category.
• Within the window there must be an image and a name which clearly identify your
application. The name and image can be separate widgets or can be combined as one,
as per our demo.
• There must be one or more widgets to allow the user to select the latest news from
four distinct sources. Our boffins have used radio buttons but there are other kinds of
widget that could be suitable for the job, such as menus or push buttons.
• There must be one or more widgets suitable for showing details of the currentlyselected
news story, including the headline, story abstract, publication time, news
source, web site address, and the web site’s hostname. I’ll explain more about all
these display requirements in my next briefing. In the prototype our boffins have allowed
space for all of these things in a big “label frame” widget on the right.
• There must be one or more widgets which let the user export the currently-selected
news story. I’ll explain what functionality is required for this in a later briefing. Our
boffins have used a push button for this purpose but there are other options such as a
“check” button which lets the user control whether or not data is exported automatically
whenever a different news source is chosen.
• There must be one or more widgets which let the user check the correctness of the data
against its original source. Again, I’ll say more about this later. And again, our
boffins have used a push button for this purpose.
IFB104 Building IT Systems
Semester 1, 2021
2021-04-24 2
• Finally, your GUI must have appropriate labels, graphics and layout to make its operation
completely clear to the user, without the need for any separate instructions.
For now you don’t need to implement any of the application’s back-end functionality. None
of the widgets in our boffins’ demo actually do anything as yet.
[Activates the various widgets in the GUI to show that they do nothing]
To sell the application to our backers we just need to see what the user interface will look
like. In particular, you don’t need to make a final decision about which news sources to use
as yet. Our boffins have chosen four which look promising—the ABC, Nine News, the Australian
Financial Review and the Brisbane Times—but this may change if these sites prove
difficult to work with later. Also, you don’t need to display logos for the news sources as
done here. Just their names will do. But you’re more than welcome to make your GUI as
visually interesting as possible.
I'll provide full requirements for the source web sites and what you need to extract from them
in my next briefing. However, if you want to make a head start while you’re working on the
GUI, you’ll need to find four entirely separate sites, within your chosen news category, that
have up-to-date stories each containing at least a headline, a short abstract, and a publication
time.
Our boffins chose “politics” as their category, but you can choose any frequently-updated aspect
of current affairs such as:
• Breaking news
• National news
• Local news
• Politics
• Business
• Science & Technology
• Entertainment
• Sports (but not a specific sport which may be out of season and therefore doesn’t get
updated regularly)
• and so on
As before we’ve provided you with a program template to help you get started.
[Shows the template]
Again, for cyber security reasons, you must identify yourself at the beginning of the program.
This template contains very little, just some “import” statements and a single function definition.
You don’t need this function at all for your current task, so you can ignore it for now.
All of your code must be developed at the very end of the file.
As you’ve done previously you must upload your submission to our IT system before the
deadline, which is Sunday, May 9th. Please upload drafts as insurance against system failures
(at your end and ours). And this time you’ll need to upload both a Python program and
IFB104 Building IT Systems
Semester 1, 2021
2021-04-24 3
any image files you have used in your GUI. Put these items in a “zip” archive and upload it
as a single file. Do not use any other compression formats such as RAR or 7Z.
As usual, so that it will work on any platform, your program must be portable and must run in
a standard Python 3 environment. It must not rely on any modules that need to be downloaded
and installed separately, such as “Pillow”, because we won’t be able to assess your solution.
That’s all for now. I’ll provide you with full details of the necessary back-end functionality
after you’ve delivered your user interface design.