The my post-reading week progress report. It's been an intense 9 days, and most of my work during the week is dedicated to the UI, and I'm happy to report that there's much progress made, although the amount of work done fell just short of my expectations.

I got the features we had in COMP2013 working in the first 3-4 days of the week - being able to see and control pre-registered rooms and items (sensors). The UI panels have been redesigned to support additional transmission status representation (update pending, disconnection, command sent and awaiting response etc.). Since we decided to discard the possibility of nesting rooms within rooms and grouped controls (at least in the Control View), much of the traversal algorithms aren't needed anymore.

Here's the regular screenshot update:

Screenshot 18Feb2013

UI as of 18th Feb 2013

The most challenging part of the design is to actually account for server-client interactions, and to represent these events clearly. I had to think about what should happen for every single failed AJAX call, and what should happen during reconnection, and how to restore the UI and data to a normal running state. The first release milestone for the UI and my part of the project is to let users add and remove items as well as rooms from the house. My goal was to finish the release milestone by today, really, but what we have now does not yet handle adding / removing rooms. Item removal is fully supported now, and adding items can be fully implemented once the server-side accounts for the needed information.

Screenshot2 18Feb2013

Disconnection handling - UI shows latest available state and displays an AJAX throbber beside each state

Screenshot3 18Feb2013

Command pending display - UI displays a side-scrolling background-image definition via the animation CSS3 property. If the server reconnects, the UI clears the background. Under normal operating conditions the background only lasts until the client browser receives acknowledgement that the AJAX request was successful

There's not really that much else to explain. The new left contextual menu opens up if it's defined in its parent Stage. Currently it handles generating the form fields and buttons to take care of input and validation. The work on the Control View for the foreseeable future would mostly involve this contextual menu, since once I finish it, the UI would be primed for our first release.

We have a scheduled meeting with our supervisor at 10AM tomorrow morning, so I should wrap it up here - that's it for this week.