View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Insert Our Names Here

Group members:

Milestone 2

Milestone 2 asked for a GUI to browse the HelpRepository, to load/save tasks in the HelpRepository, and to build the back end of the Guide class.

We decided to use a widget set named Prefab for constructing the GUI. Prefab provides a nice drag-n-drop interface for quickly building containers and adding components to the container. A Prefab tutorial can be seen at Ye Yan's Prefab Tutorial.

We made the design decision of having two separate GUIs. The first GUI class, MainGUI, is used to browse the content of the HelpRepository. The second GUI, NewTaskGUI, is used to create a new task and adding it into the HelpRepository. It also lets the user step through TaskInstructions step by step and insert/delete steps at will.

Milestone 3

Milestone 3 asks for the design of the entire system. Obviously the design would evolve as the project progresses, so we're posting our most recent
Uploaded Image: UMLpic.JPG
Design decision:
Guide is the class that drives the entire system. Guide has the Avatar and the 2D GUI speech Bubble. The reason Guide, not the Avatar, has the Bubble is because the Avatar and the Bubble basically act independently. Bubble has a reference to the Guide because it needs access to the HelpRepository, which stores the TaskInstructions. We created a Step class, which represents a step in the TaskInstructions. Each Step has the text for that step, and a reference to the macro for that step in the DemoEngine. Macros are stored as strings in the DemoEngine, which is a static class.

Milestone 6

Milestone 6 added the demonstration functionality to the demo engine. We stored Steps in the DemoEngine and each step has a macro id. When XML files are loaded into the guide, if a Step with the same macro id is already present, the macro in the XML file is discarded. Before we can load XML files, we must first instantiate an XMLload class. Then by opening an XML file, we'd store it in the doc variable. We can later add this doc into the help repository, or do anything to it at our disposal. XMLsave works similarly.

Milestone 7

Milestone 7 adds dependency checks to the steps in TaskInstructions. Below are screeshots from our project. Dependency are represented by code blocks in the XML files that are executed by the DemoEngine if it detects that the user has skipped steps.

Screenshot 1: Our 3D avatar is Barney. The 2D speech bubble is the dark orange GUI. Clicking on the task names in the list shows the task description on the label at the top of the speech bubble. Clicking on the button named "Show selected" pops up the blue 2D GUI, which walks the user through the task step by step. Clicking on the "Animate" button on the blue GUI would trigger an animation.
Uploaded Image: screenshot1.JPG

Screenshot 2: During an animation, the buttons on the blue TaskDisplay gui disappear. This prevents the user from jumping to another step or close the GUI in the middle of an animation, which could cause syncronization problems.
Uploaded Image: screenshot2.JPG

Screenshot 3: Whenever a new window pops up, Barney moves his head to look at the new window or points at the window to direct the user's attention to the window. In this shot, Barney is looking at the world menu that was opened during animation.
Uploaded Image: screenshot3.JPG

Screenshot 4: Note that Barney lowered his head to look at the halo animation at the bottom right corner of the screen.
Uploaded Image: screenshot4.JPG

Deliverables: The UML and other documentations are actually under Milestone 3. Since Milestone 3 is the design milestone, we always post our latest design under Milestone 3.

Source code:

XML files:

ReadMe: ReadMe.txt

Complete zip file:

Links to this Page