Engage 0.3 Technical Tasks

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

Data

Import

  • 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

Navigation

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

  • 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.