Build the Best WA Widget

Aim

The aim of this project is to design and build a useful interactive mini-application, or widget, within the theme of the University or the State of Western Australia. This will be achieved using HTML/CSS/PHP and the client/server model as used in the unit's labs.

What's in a Widget?

A widget is a small gadget or (traditionally mechanical) device for carrying out a specific, useful task or purpose (a recent example many may recall is the "widget" from the Guinness ads). This idea has been carried over to computing, with the development of small, focussed and highly useful applications that, by making use of HTML and common scripting languages, can easily be run on a wide range of platforms.

Have a look at the range of widgets available via

Widgets for Western Australia and UWA

There is a huge range of possibilies. Examples might include a widget that shows the results in your state tennis league, a widget that looks up information on Western Australian wines, a widget that shows surf conditions at your favourite beach, a widget that provides information on Fremantle Dockers players, or a "Which Eucalypt is that?" widget. Within this theme you may also choose to help out your fellow and prospective students by providing a useful widget that focusses on the University of Western Australia, or the School of Computer Science & Software Engineering. Have you ever been frustrated, for example, that information from the University's on-line Handbooks is not collected together in the form that would be most useful to you as a student? Perhaps you'd like a widget that allows you to select a semester and shows both the University and school holidays so you can avoid peak times when booking your short break in the country? These are just some ideas to get you thinking, you will be able to come up with many more of your own. You should choose something that is meaningful to you, and you think might be useful to others.

Group Work

This project may be carried out in groups of from 1 to 5 people. Smaller groups from Assignment 1 may be carried over to this project. Larger groups will need to be divided into two. Please try to arrange your own groups and only contact me if you cannot do this.

Tech Specs and Design Guidelines

The widgets must consist of two pages or "panels". The main or "front" panel is the one that opens when the user enters the URL, and contains the main widget content. Somewhere on the front panel should be a button or link with an "i" (for "information"). When the user clicks on this information button, the second or "rear" panel should appear. This panel should credit the widget authors, contain any brief help information that might aid users (although the widget should be designed to be largely self explanatory), and optionally allow the user to set any preferences. The rear panel should also contain a "Done" button or link to return to the front panel.

As a start, see Apple's recommendations for Dashboard developers to get a feel for widget usability principles. (You may also find the full Apple Human Interface Guidelines document useful.)

You should design your widget with usability as a primary focus, taking into account what you have learned in this unit so far. The widgets should be developed using the same computing setup described in the laboratory sheets. That is, they should be developed for the Apache/php server provided for you. You should use HTML/CSS and PHP for program(s), and may use a range of other common file types for images, data, etc.

Important: If you do development on setups other than that provided for the labs, you must check (regularly) that everything works on the lab setup. There are many different http servers, and many versions of php (with different capabilities compiled in). If your application does not work without alteration on the lab setup in which it is marked, it will be assumed that it does not work and will be marked accordingly.

Documentation

Along with your program files you are required to submit a design and evaluation report. The report should be no more than 1600 words, and should contain the following items.
  1. Cover Page

    The cover page should contain the document title, the unit identifier, the names of all group members, and the word count.

  2. Introduction and Influences

    This section should introduce your widget. It should includeits purpose, the motivation for it and any influences on its development, such as other widgets you found with similar purpose or functionality that inspired you. You should include links to these widgets, and may include pictures. (See also the section on "Citing Sources and Plagiarism".)

  3. Design for Usability

    This section should describe your design for the layout, functionality and operation of your widget with respect to the ideas introduced earlier in this unit. You may refer to the text, the Apple Guidelines and Design Principles, and other references as appropriate. You may include any mockups and diagrams as appropriate. Since this is a human computer interaction unit you should concentrate in particular on usability and the human computer interface. Technical design issues are briefly covered in the following section. Note that this section is about the design as you set out to achieve it, and may differ from the implementation you were actually able to achieve, as discussed in "Evaluation" below.

  4. How it Works

    This section should briefly describe the main features of how your widget works. Were there algorithms that you had to design? Did you have to make decisions about data storage (for example plain text versus xml)? Does your widget extract information from other sources on the internet? If so, how? You should not discuss your program in detail at the code level. We are interested in how you addressed, from a software perspective, issues in making information and functionality available to the user.

  5. Evaluation
  6. This section should evaluate your design and finished product, again with reference to the earlier lecture material in this unit where appropriate. Would you design the product differently with what you know now? Was there a difference between your ideal design, and what you were able to implement given the level of experience you have with PHP and HTML.

Citing Sources and Plagiarism

Plagiarism, or using others' work without citation or credit, is a serious form of academic misconduct. If you have not done so already you should read the School's Policy on Plagiarism available through the Unit Outline. When carrying out the work for this project, it is not expected that you operate in a "vacuum" and indeed you are encouraged to look at what other people have done and how they have done it, both for inspiration and education. You should not however copy and edit or reproduce their work. Anything submitted for this project must be written entirely by the group members. Where your work is similar to, or inspired by, the work of others you must cite that work, and where it can be found, in your documentation.

Deliverables and Submission

The deliverables for this project are:

  1. The files constituting your widget.

    Remember to include all files required to run the widget and its information panel (any html files, php files, images, data files, xml files, etc).

  2. The documentation

    This must be submitted in a single portable document format (pdf) file. You must check that the file is readable by Adobe Reader 7.0. All deliverables must be uploaded to cssubmit under the username of one group member.

Deadline

The deadline for submission is 12 noon, Wednesday of Week 13.

Project originated by Cara MacNish (lightly updated by Gordon Royle)