Engage 0.3 Technical Tasks

General Tasks

  • Improve load times by using a custom Infusion build for Engage
    • Two scenarios:
      1. automate Engage script to automatically build and relink 3 days
        • determine all the modules needed by engage and make a custom build using those
        • split the engage build so that you can do either production or src
        • make the production build use the rewrite head functionality so that the heads are linking to infusion all
      2. statically make a custom build and commit alongside Engage 1.5 days
  • Generalize spinner and loading page from Browse 1 day
  • Generalize Browse and Navigation List structure to use it in Exhibitions, Catalogue, and Browse by theme 1 day
    • Make it configurable so that users can easily compose a combination of NavList, Cabinet, More, etc.
  • Work with Hugues to determine how he will deploy Engage for the pilot 2 days
  • Fix Safari touch delay if necessary 3 days
  • Improve error messages 0.5 day



  • Extend import to be able to crawl multiple data feeds (e.g. McCord exhibit + artifacts) 3 days
  • Deal with HTML tags included in XML (e.g. from McCord) 3 days Antranig, can you verify?
    • Fix bug in parser where comments appear in the document, as well as other nesting problems
    • Ensure that fields with HTML inside them are treated as "innerHTML strings"
  • Import a good, fresh snapshot of all the McCord data for the pilot 0.25 day
  • Upgrade to Couch 0.10 1 day
    • Working Jamon on the infrastructure
    • Replicate existing design documents (or import by hand)

Multilingual Support

  • Implement the language preferences screen using cookie support 0.5 day
  • Localization: ensure all components load Strings from a properties file or strings: option 4 days
    • Deliver localized string from server to client (through options, probably)
    • Update component trees to render the localized messages for all labels in the UI
  • Translate our strings to French (McCord) 0.75 day
    • Coordinating with Hugues to do the translation
    • Writing an i18n test plan
  • Ensure all data feeds accept a language parameter and that results are returned correctly 0.5 day
  • Create Couch views to retrieve documents in one language or the other 0.5 day
  • Import French data - import, sniff test and coordinate with Hugues 0.5 day

Data Access Layer

  • Refactor data mapping to be fully declarative
    • Impelementing current map algorithm as a "reshaper" with a generic mapping strategy
  • Store data map documents in Couch
  • Implement "dataSourceSpec" or similar declarative way of defining data feeds
  • Connect up with ChangeApplier to enable totally automated data access
  • make all components work with the new data access layer

Home Page

  • Implement a home page with links to Exhibitions, My Collection, Object Code, Language Preferences, and Login 1 day


Next/Previous Item Paging

  • Fix paging to open at a particular page 0.5 day
    • Currently, when you click on an artifact, you don't see it, instead you see the first in the batch list
  • Refactor paging to conform to Pager Model Done
  • Update ArtifactView to use this, and integrate into NavBar 1 day

Navigation Bar

  • Implement Navigation Bar functionality for a variety of components 1 day
    • home - get button from designers
    • Up/down arrow for Artifact View
    • Back and should appear wherever appropriate
    • Optional support for list/grid toggle

Growable List - Navigation List + biggerer subcomponent

  • Share code with Paging to fetch data 0.5 day
  • Write code to accumulate up a "growing model" and rerender the component 1 day
    • Fetch (shared with Paging), change model, rerender (implemented in NavList)

Navigation List

  • Refactor as a "Thumbnail + Title + Description List" component (if necessary) 1 day
    • Better flexibility for item descriptions and maybe title
    • Move "More" and Paging concerns out
  • Add support for refreshing views in NavigationList 0.5 day
  • Make NavList restylable as a grid 1 day

Exhibit View and Browse

  • Code review and refinements to: 2 days
    • Exhibit Main and About (a.k.a. View)
    • Exhibit Browse
    • Exhibit Catalog
  • Update Exhibit View to match Main and About wireframes 2 days
    • Requires creating the Comment component as well
  • Update Catalog to match wireframes 3 days
    • Includes support for toggling between list and grid views
    • Includes searching

My Collection

  • Review Sveto's My Collection and plan next steps 2 day
    • Determining if we can reuse or redesign aspects of it including list/grid view toggle
    • See if the Fliquor demo also has similar code to reuse
  • Implement my collection email 1 days/5 days
    • Maybe implement this a simple service; we sent the collection information to a "mailer" data service
    • Otherwise will integrating with Java mail APIs, creating JavaScript wrappers, and ensuring server configuration
  • Remove reordering from mobile version of My Collection 0.25 day
  • Implement desktop web version of My Collection 3 days
    • Status bar with login information
    • Parameterize Artifact View so that the artifact title can be moved above the image and linked
    • Ability to delete artifacts from the collection on hover

Comments and Guest Book

  • Implement comment saving 2 days
    • Determine how to structure shadow documents; as attachments?; within a known field in the document itself?
    • Depends on login infrastructure
  • Implement comments list view 0.5 day
  • Implement comments entry screen 0.5 day
  • Integrate comments with Exhibit Main and Artifact View 0.5 day

Login and Sign Up

  • Implement the wireframes as components/html pages + JS 1 day
    • Includes "Sign In/Sign Up/Cancel" dialog over Artifact View and Guest Book when commenting
  • Need to add Kettle API for generating password hashes 1 day
  • Add support for HTTPS 5 days
  • Ensure user information is stored in a cookie 0.5 day
  • Design a strategy for identifying users: 1 day
    1. Museum device: for the duration of using the device (cleared upon quitting the browser)
    2. Personal: forever (unless user clears their cookies)


  • Artifact View bugs from 0.1
    • Pathing issues 1 day Antranig, can you confirm?
    • Etc. (need to through JIRA and list specific bugs that are relevant)
  • Update Artifact View to latest wireframes 2.5 days
    • Implement audio/video for artifacts
    • Refine Artifact View to handle missing data
  • Remove Tags from Artifact View (ditch it completely from svn) 0.25 day
  • Code review, refine, commit Sveto's changes to artifact that allows users to collect an item. 1 day

Object Code Entry

  • Implement Object Code component 2 days
  • Create Couch view for searching by code 0.25 day

QA Tasks

  • Create test plans for Voice Over screen reader with iPhone 2 days
  • Create test plans for all new functionality and update for existing screens 2 days

Things to Consider

  • Ensure we QA test on the iPod touch

Questions/Comments for Design

  • What about upcoming exhibitions? Do we need to support them for 0.3?
  • Guest book could use some tweaking; modal dialog for login
  • How does the Report Abuse button work?
  • What happens if a user creates a collection that is associated with their account, then leaves, comes back another day, creates a new collection when they're not logged in, then goes to log in. Do they lose this new collection, or does it get merged into their existing collection?

Questions for Hugues

  • Do we have data consisting of multiple images for a single artifact?
  • Can we get media data that include the duration of movies and audio?
  • Can we get images in the following sizes?
    • 320 x 240 for main artifact images
    • 64 x 64 or smaller for thumbs
  • What should we do with Report Abuse for comments in 0.3?
  • What strategy should we use for mailing users with their collection?
  • Can you tell us the 1:1 mapping of the fields in the mobile wireframes and fields in the XML?

Stuff to Punt

  • (Kettle) update kettle to JSGI 0.2
  • (Performance) Investigate local caching as a way of improving speed
  • Finish unobtrusive screen navigator
    • Remove content-specific contract: replace with "auto-portalization"
    • Improve unit tests
  • Implement events listing on the exhibit view page. Do we have data for the events?
  • Events information page. What do those page icons do?
  • Implement audio/visual links from exhibit page. Do we have data for that?
  • Test reordering on iPod
  • Fix Reorderer scrolling for iPod
  • Create comment input page. (this should stay)
  • Includes refinements to mobile FSS
  • Create a myInfusion file that contains the base requirements not files that are only needed in a single component.
    • the build scripts should be made modular enough to build a myInfusion file that doesn't modify the source directory but only assembles a subset

Artifact View

  • Description: generalize as a more/less toggle 1 day
    • Will implement as a simple function
    • Specify height in one place
    • Externalize the truncation code.