As the amount of information available on the web increases, being able to make sense of what's out there is becoming increasingly difficult. For example, suppose your are searching for images. Even if the images are tagged with reasonable phrases, and you know the tags in which you're interested, posing appropriate queries and organizing the images that are returned can still be daunting tasks. For your final project, you will address some of these issues by working in a team to design, test, and implement a tagged image exploration system, which we will call a Tagged Image Explorer (TIE). To make sure that you will have plenty of raw material, you will be using the Picasa Web Albums Data API, which will give you access to albums of tagged images published on the web.
After deciding on a class of archetypal users that you wish to address, you will design an application that will make it possible for a user to issue certain kinds of tag-based image queries and present the returned images within an information space. In this assignment, the term information space will refer to a pre-defined or user-defined one- or two-dimensional coordinate system with arbitrary x and y axes. One example would be a one-dimensional timeline containing images sorted by creation time; another could be something like the New York Magazine Approval Matrix, defined by Lowbrow–Highbrow and Despicable–Brilliant axes.
The idea is to allow have the system position images within an information space, effectively organizing their world according to the criteria imposed by that information space. Viewing a set of images within an information space could allow the user to see relationships among the images. Changing the axes that define the information space or performing different queries with the same axes could also help the user understand the images, as could allowing the user to view multiple information spaces at the same time, or view the same images within multiple information spaces.
A significant portion of this assignment will be concerned with how an information space can be defined in terms of ordered sets of tags and other data that define the queries that you will issue, and how the images that are returned will be laid out.
Your program should allow a user to
These are the only tasks that you need to address. You should aim to design a user interface that makes these tasks efficient, understandable, and enjoyable, taking as much advantage as you can of the graphical way in which information is laid out.
If you have not already familiar with them (in fact, even you are!), you should look at other websites such as flickr or YouTube, which allow users to upload photos or videos. and associate them with searchable textual keyword tags.
We have chosen a domain that we assume you will be able to address from the standpoint of a potential user. However, since this is a rather broadly and fuzzily defined idea, you will need to narrow things down to something both doable and interesting. To keep the assignment manageable, each of your information spaces should be one- or two-dimensional (no higher). You are encouraged to place reasonable—ask us if in doubt—soft limits (i.e., without crashing) on the number of images that you can handle, how information spaces are designed (defining a full-featured axis labeling system could easily occupy a design team for the rest of the semester!), and how searches are specified.
Note: The Picasa Web Albums API supports far more functionality than you will need for this assignment. Please see our Picasa Web Albums API Tutorial for guidance about what you should know.
To complete this assignment you will work in a team of four students. By November 15, you should have formed your own team, which may be the same as the team in which you worked for Assignment 2, but need not be. By November 20, your team should submit, in response to email that you will receive from the TAs, a one- or two-paragraph description of your proposed design concept and the class of archetypal users whom it targets. This will make it possible for us to provide early feedback on the direction that you are taking.
In performing your work, you should choose from among the full range of design and development approaches that were explored in class and in earlier assignments including (but not limited to): storyboards and design sketches, personas and task scenarios, lo-fi and/or hi-fi prototypes, and testing by users other than your team members, which you may use in any combination that you believe is appropriate. You will need to document your choice and use of these techniques as part of your submission.
Information on using the Picasa Web Albums Data API can be found at:
Your team's final submission will include (with your team name/names/UNIs in all parts):
Each of these is described in more detail below.
Development document. This document should list your group name, names, and UNIs. Its target audience is the course staff (in an industrial environment, it would be your manager and peers). The development document should include information about the following:
Brief user manual. This document should list your group name, names and UNIs. It should explain to an end user in your target user group how to use your program. Assume that the user already knows how to use Picasa and Web Albums. Therefore, your user manual should address only the additional functionality provided by your program. Using screen shots is strongly encouraged, both by themselves (perhaps with annotations labeling parts of the user interface), and within storyboards that describe how to perform specific tasks. Be sure to explain the meaning of any metaphors, symbols, or color coding that you use. (If your program has any problems that you know about or if you have not completed all of the requirements, please tell us the details here.)
Working program. Your program will be graded based on what it does (how it meets the high-level "functional spec" presented in the final project assignment, and the description provided by your user manual) and how it does it (the user experience/program usability, measured in part against the heuristics of http://www.useit.com/papers/heuristic/heuristic_list.html and the needs of the users whom you are targeting). We want your code to be well-structured, readable, and commented in areas of key functionality. The code should also be accompanied by a README file that contains the following information:
The development document and user manual your team turns in should each preferably be a .pdf file with embedded images; we suggest using the Acrobat "Press" General Conversion Settings (aka "job options") to help ensure that the images are legible. Alternatively, MIME HTML .mhtm, PostSript .ps, or Word .doc files with embedded images will also be accepted. Please name your development document yourteam_develop and your user manual yourteam_user (where yourteam is the name you have given your team), and make sure each document has the appropriate extension.
Just as requested for Assignment 3, please submit your code as a compressed .jar file. Since you are using NetBeans IDE 5.5, a .jar file will be made for you each time you choose "Clean and Build Main Project" (Shift+F11). You can find this .jar file in the dist/ directory, within your project directory. This file should expand into a folder (the java package) with your code and README inside. To make sure that NetBeans includes the .java source files as well as the .class files, click on "Properties" (right click on the project name in the Project window to get to "Properties"). Select "Packaging" under "Build". Then, remove all text in the text field after "Exclude From JAR File". The name of your .jar file should be: yourteam_proj.jar
Upload your two documents and .jar file in CourseWorks to the Class Files→Shared Files→Project folder.
Your team will give a presentation providing a brief overview of your design concepts and process, followed by or integrated with a demo of your working program. Presentations will be held Wednesday, December 12 at 7pm in 633 Mudd. Refreshments will be provided, and we'd like each of you to be there for all the presentations. Your team will have a total of 10 minutes for your entire presentation, so you'll need to practice in advance! We recommend that you begin by spending approximately 2 minutes providing an overview of your design concepts and process, 6 minutes on your working demo, and 2 minutes on questions. Note that it may be possible to interleave a discussion of the design concepts with the demo if you wish to structure your presentation that way. You will be responsible for ensuring that
Don't forget to read through our Picasa Web Albums API Tutorial.
As in Assignment 3, your program should use Java 2D in conjunction with Swing UI components only (i.e., not the AWT UI components).
Grading of the final project will be based on a combination of what your user interface does (how it meets the high-level "functional spec" presented in this document), how it does it (the user experience/program usability, measured in part against http://www.useit.com/papers/heuristic/heuristic_list.html and the needs of the archetypal users whom you are targeting); your explanation of your target users, the design choices that you made and your design, prototyping, and testing process; your user manual; your presentation; and (to a lesser extent) whether the source code looks like the product of a group whose members have taken the course prerequisites.
Testing with members of other teams is not required. However, you are welcome to do so, and to post requests for test subjects on the class discussion board.
To demonstrate your project, your team will need to use at least one computer that has a physical (strongly preferred) or WiFi network connection. (Some of you may even wish to do things that take into account changes in other users' albums, which would benefit from having two connected computers.) Please let us know a week in advance if your team will not be able to bring the necessary computer(s), and we will help make sure that things will work.
Once your project has met the specified requirements, you are welcome to address additional functionality.