Monday, September 22, 2008

Project 3c

Due Date: Friday, 10 October

Individual Project

Objectives

Familiarity with

  • automated testing
  • test-driven development (TDD)
  • client-based testing
  • Selenium IDE

Description

In this project, you will add client-based testing to your prototype from project 3b. Use the Selenium testing IDE to develop test cases that cover the various scenarios listed again below.

All nonfunctional requirements from the previous projects 3a and 3b still apply.

Grading

Total: 10 points

  • 2 - nonfunctional requirements
  • 1 - Member authenticates
  • 2 - Member records a meal
  • 2 - Member records an exercise activity
  • 2 - Member records vital signs
  • 1 - Member calculates average food energy

Submission

Please send the instructor email as soon as your project is ready to be reviewed. The date your message is received counts as the submission date. Be sure to include your departmental Linux ID in your email message.

Project 3b

Due Date: Wednesday, 8 October

Individual Project

Objectives

Familiarity with

  • XHTML
  • DOM (document object model)
  • JavaScript
  • client-side scripting and DOM event handling

Description

In this project, you will extend your prototype from project 3a to include two types of dynamic client-side behavior:

  • enhanced input controls
  • simple processing of input data

Specifically:

  • Incorporate a date/time picker for entering date and time of meals, activities, vital signs, for choosing the time period for the average energy report, etc.
  • Record all tags entered by a user in a suitable data structure. Incorporate a tag picker that allows the user to pick existing tags from a list or enter new ones.
  • For each meal, estimate the ingested energy as 100 times the number of words in the description. Display the result as the meal is recorded. Add an object representing the meal to a suitable data structure.
  • For each activity, estimate the expended energy as 50 times the number of words in the description. Display the result as the activity is recorded. Add an object representing the activity to a suitable data structure.
  • Use the internal data structures to compute the average food energy consumed per day during a given time period.

All code for dynamic client-side functionality must be provided in the form of external JavaScript source files using components from the jQuery library; embedded JavaScript within XHTML documents is not permitted. The visual design requirements and nonfunctional requirements from project 3a still apply.

Grading

Total: 10 points

  • 1 - valid XHTML 1.1 (browser shows standards compliance mode)
  • 1 - external CSS, no style attributes in content documents
  • 2 - external JavaScript, no embedded code
  • 1 - date/time picker
  • 2 - tag recording and picker
  • 1 - calculate energy intake from meal
  • 1 - calculate energy expense from activity
  • 1 - calculate average net intake/expense

Submission

Please send the instructor email as soon as your project is ready to be reviewed. The date your message is received counts as the submission date. Be sure to include your departmental Linux ID in your email message.

Monday, September 8, 2008

Project 3a

Due Date: Wednesday, 17 September

Individual Project

Objectives

Familiarity with

  • separation of concerns between content and visual styles
  • XHTML
  • CSS
  • divs, tables and CSS layers (not to be confused with the deprecated, non-standard layer element)
  • forms

Description

In this project, you will put together a small static prototype for a few scenarios from a simple online food and exercise diary. Specifically, your prototype should represent the following scenarios:

  • Member authenticates (logs in)
  • Member records a meal or exercise activity (including date and time consumed, title, description, and space-separated tags)
  • Member records vital signs (including date and time measured, as well as mass, height, and heart rate)
  • Member calculates average food energy (in kcal) consumed per day during a given time period

The visual design requirements for this static prototype is as follows:

  • All pages must have the same, consistent layout
  • All pages must have the same, consistent text styles, using some cool fonts and colors other than the default
  • Use divs to divide each page into (common) navigation and (page-specific) content
  • Use layers to place a cool logo somewhere (consistent) on each page
  • Use forms wherever the user needs to be prompted to submit some information

The static prototype of the system, by its nature, ignores any attempts to change the data in the system. It does not perform email notification either.

Your system must also satisfy the nonfunctional requirements stated below. It is recommended to use Aptana to author the XHTML documents and CSS style sheets for this static version; you can then browse the documents locally or remotely using a web browser.

Nonfunctional Requirements

  • All content must be valid XHTML 1.1 documents. You are advised to use a validating editor or the W3C Validation Service to ensure that your content is valid. For convenience, you may want to place a link on each document that runs the validation service on this document. Your document should state the correct document type at the top.
  • All rendering styles must be provided using a single shared valid CSS2 style sheet. There must not be any rendering styles in the documents themselves. You are advised to use a validating editor or the W3C CSS Validation Service to verify that your style sheet is valid.

Grading

Total: 10 points

  • 1 - valid XHTML 1.1 (browser shows standards compliance mode)
  • 1 - external CSS, no style attributes in content documents
  • 1 - correct use of divs and tables
  • 1 - overall visual design
  • 1 - consistent layout and navigation
  • 1 - scenario: authentication
  • 1.5 - scenario: record meal/activity
  • 1.5 - scenario: record vitals
  • 1 - scenario: average kcal

Submission

Please send the instructor email as soon as your project is ready to be reviewed. The date your message is received counts as the submission date. Be sure to include your departmental Linux ID in your email message.