Evaluation details

General

The PizzeRIA evaluation generates and displays statistical data and graphics based on the PizzeRIA order history and a selectable time frame:

  • a list showing the ordered quantity per topping in absolute numbers;
  • a datagrid-bar-chart/pie-chart showing the ordered quantity per topping in percentages;
  • a top five chart showing the favorite pizza configurations including the consumed quantity.

Usability

  • Both mouse and keyboard input can be used to control the application. In the latter case comboboxes must be used to select a time frame.
  • Buttons are customized: They respond not only to the space key, but also to the enter/return key.
  • Rich graphics: intermediate frames are generated between two graphs to give the appearance that the first graph evolves smoothly into the second graph.
  • Immediate feedback messages (notice/alert) are generated in the following situations to create a rich user experience:
    • comboboxes: when an incorrect date is selected;
    • comboboxes: when the selected 'from time' comes after the 'to time'.

Technical details and further reading

General

Screenwidth dependent autosize (applies to orderform & evaluation)

A custom scale/scroll class is used to automatically adapt to different window sizes. When a browser window is resized to a width smaller than the application width, the application is instantly scaled down to a certain point, then scrolled. This changeover point is made screenwidth dependent and prevents small texts becoming unreadable.

Present settings (orderform application width= 834 pixels, evaluation application width= 923 pixels):

  • screenwidth larger than 1024 pixels: changeover point at 800 pixels;
  • screenwidth between 800 and 1024 pixels: changeover point at 600 pixels;
  • screenwidth between 600 and 800 pixels: changeover point at 400 pixels.

Flash Player caching (applies to orderform & evaluation)

To reduce application size and speed download time, the new Flash Player cache for Adobe components is used. This persistent player cache enables base components and libraries of the Flex framework to be stored locally and then be used by any SWF from any domain (Flash Player 9.1.1.115 or higher required).
Further reading:
http://livedocs.adobe.com/flex/3/html/help.html?content=rsl_09.html
 

Server backend (applies to orderform & evaluation)

The PizzeRIA Server handles storage and retrieval of raw order data. During ordering the server also takes care of login/cookie handling and order authentication.

Drupal 6 software is used as the server backend. The Drupal CMS comes with built in login/cookie handling, HMAC authentication and a database abstraction layer. Drupal is also designed to allow new features and custom behavior to be added by third party modules.

In the PizzeRIA demo the following Drupal modules are used: Views, CCK, AMFPHP and Services.
Further reading:
Drupal homepage: http://www.drupal.org
Drupal overview: http://drupal.org/node/265726
 

Data Transfer

Raw data backend1 (applies to orderform & evaluation)

Order data is sent as a sequence of 4-digit numbers to increase transferrate.
Further reading:
Raw data backend1
 

AMF gateway (applies to orderform & evaluation)

The Adobe Messaging Format is used for fast data communication between Flex and the server backend. AMF encodes remote procedure calls (RPC) into a compact binary representation that can be transferred over a HTTP/HTTPS protocol. AMF implementations exist for PHP, Coldfusion, Java, Perl, .NET, Ruby and Python.
 

This PizzeRIA demo uses AMFPHP, the PHP AMF implementation, on the server side. Integration with Drupal 6 is accomplished with the help of the Drupal modules AMFPHP and Services.

Order data is transferred using the HTTP protocol. In data sensitive applications the order data could be sent encrypted or over a SSL connection to enhance security.

Further reading:
What the hell is AMF? http://theflashblog.com/?p=414
Zend_Amf: http://www.zendframework.com/manual/en/zend.amf.html
Census - RIA Data Loading benchmarks for AMF, SOAP, XML and JSON: http://www.jamesward.com/census/
Security information: http://theflashblog.com/?p=419