Tuesday, March 9, 2010

Wrapped and Packaged: WattDepot-Apps 2.0 & Milestone 2

After several weeks of blood, sweat, tears, pain, struggles, triumphs, and growth we are once again facing a Milestone; the point in which we buckle down all the straps, disconnect all the imperfect and incomplete parts, packet it all down into an easy to understand box and send it off not just for evaluation but for public display. And so it is with this thought in mind that I introduce the latest release in the WattDepot-Apps suite: WattDepot-Apps Distribution v2.0 for Developers and WattDepot-Apps-Visualizer v2.0 and WattDepot-Apps-Monitor v2.0 for users (each of which can be found here). We’ve evolved the whole concept a long way, even between version 1 and version 2.

Here’s a sample of our version one Visualizer to version two.
Version 1.0



Version 2.0



The visualize system has always been the challenge of integrating user controls, Watt Depot data, and Google Visualization together.
You can see here not only did we streamline the design back down to a horizontal panel for input settings but we also solved many of the problems we were having with multiple queries and naming. We started off branching out in to a split L type design (with navigation going both vertical and horizontal) but as time went on the convention led us back to the tried and true unidirectional panel.

As for functionality we’ve gotten almost 100% of the desired functionality out of this build, including multiple sources, and named displays on the chart. In addition we had cleaned up the code to separate the CSS, Javascript, and HTML from each other, providing a much easier navigation for anyone looking to search through our code for answers next.

For the Query problem we had earlier, we couldn’t figure out how to keep the proper naming of the data with the sources we were looking through because the queries were being handled asynchronously. We took many different approaches, from making trying to label the queries once they came back to trying to do it as simultaneously through a function. Coming up dry, and after consulting Robert Brewer about possibilities, he pushed for us to address the Google group on the matter. While the conversation (here) Provided less than desired answers it did lead me to the correct solution (or at least one that was workable), Using a recursive function to keep the queries active only one at a time rather than asynchronously. This method proved successful and lead to our near completion of this application.

For our other side of the project, WattDepot-Apps Monitor, Ed and Bao worked spectacularly on making that vision into life. From drawings on a board Ed was able to construct the image almost exactly as desired as and with more functionality than original intended.




The Monitor actively checks to see if a sensor is updated and returns the data to the user to see in near real time. Not only that but Bao worked hard to get the Perma-links (or Portable Links) to work with the Monitor as well, allowing the sharing of settings across people or browsers through URLs.

As a final game changer, we were asked to add the ability to reconfigure the Port and the URI that our systems use, allowing for other uses to use their own custom settings. This last minute challenge got us in a small bind as it also required us to clean up the CSS and Javascript (which we hadn’t done at the time) in order to get them to work ,but we were able to pull it off in the end.

Unfortunately time did get the best of us and we couldn’t accomplish everything. A lot of Javascript is still untested by unit tests (though they were checked for functionality with browser based testing from Firebug), and we couldn’t include the Perma-link system onto the browser address bar for the monitor or for any of the Visualizer. These proved to be a matter of time versus challenge. As the Perma-link system would be more complex for the Visualizer and the Javascript Unit test concept required finding the best possible choice for testing. Even without these I feel like the system holds up pretty well for 3 student's work.

Saying Good Bye to WattDepot-Apps

Though it is not really a good bye to our project, this is the milestone where we must take on new tasks and finalize our position on these tasks. That means we will no longer be a team focused on getting the WattDepot-apps suite together. In these month trying to create this project I’ve learned a lot more about how things run in this kind of situation. Making use of the SVN, Verification Testing, Peer conferencing from ICS413 last semester as well as using the Javascript skills I picked up awhile back in 215, I felt like this really put us in the thick of being a programmer. Professor Johnson put us through it like we were working with a client, and our weekly meetings served to enlighten us, evaluate us, and push us forward.

No comments:

Post a Comment