This blog covers last two weeks' progress. The majority of the work is finished last week for milestone 2 of the project, so I had a bit of a week-long break from the project since I'm ahead of schedule, and I'm waiting on other members to finish certain parts so I can continue my work. I'll get to that bit momentarily.
As far as I'm concerned CSS is not a priority until we get the platform features finished, so I have been considering the UI's appearance to be in the unpolished, 'alpha' stage. But, since we are giving a presentation for Imagine Cup on Wednesday, I did some subtle CSS changes to make the UI more presentable.
I've added extra shading and lighting effects to make the stage look more three-dimensional, and changed certain font colors to better delimit certain sections of information from each other and establish information hierarchy. I'm fairly satisfied with how the room / control stages look right now. The ECA stages still suffer from somewhat too-high contrast and UI clutter, but they work well enough for the presentation.
Here's the comparisons (1080p screenshots)
Functional changes involving CSS including finally implementing passive displays - i.e. energy monitors and light sensors which are not meant to be controlled no longer generate a clickable button. Small-screen CSS has also be implemented, but this has even lower priority than desktop-resolution CSS, so there's still font-size issues and positioning tweaks to be done. This is not important since Terrence and Kinga are making a dedicated apps for handhelds.
This is another milestone 2 goal. Currently the JS classes which do not depend on server data to initialize are unit tested. This is not much of the total code so hopefully I can get the rest of the module tests up after I finish the more important features of the platform.
I'm much more satisfied with the API and integration tests - right now there's a suite of QUnit tests that runs through all requests sent from the UI to check that all of them are tested and the data sent is in the expected format. There's another set of tests that checks the JSON structure returned from GET requests to the Flask server as well. These tests are not accessible from the UI, but can be run at any time via the url ../test
For milestone 3, the UI needs to be able to display server logs and chart the data we've collected. Since I do not have any of that data, currently I'm working on the report and my own revision more than the code. The charting library that I'm probably going to use is Raphael / RaphaelJS, reason being it's SVG-based so IE doesn't get left out (several other libs use the canvas), and it's lightweight. Its features are more than sufficient for our purposes.
That was a longer blog post than usual since it covers two week's progress. And... that's it for this week.