Thursday, January 30, 2014

January 30th - Competitive Analysis

Team members involved: Micheal Seng, Jonathan Wai

Also known as a "Competitive Audit," the design team decided it would be wise to do research on existing data monitoring systems. Our TA, Chandran, pointed out in our original Project Proposal that there is already a market for this. He was partially correct! Here is an excerpt from our latest Project Proposal which overviews this :
Common conception is that most refridgerator companies already provide monitoring services with their devices, but that data collection is on a high level, such as a refrigerator’s time of maintenance or delivery. Device Monitoring Systems, on the other hand, actively calculate and report live feedback about how well a device is operating (temperature, status of door, voltage use, etc.), and is a separate market altogether.  
There are a few well-established companies in this field, most notably Computer Aided Solutions (CAS), but currently existing monitoring systems are very expensive. One “Pod” must be plugged into each device (in this case, refrigerators) in order to collect data; more expensive Pods allow for more types of data to be collected.
In addition, a “Gateway” is required to beam this data from the Pod to the internet, much like a computer accesses the internet via a modem. However, these Gateways only have a range of 250 Feet.  The price of a single Pod can range from $700 to $1000, depending on capability, with an additional $1000 per Gateway.  
Given the large size of CenturyLink Arena, with many refrigerators spread out across the whole property, many Pods and Gateways would have to be purchased to beam data from each specific area, restaurant, or venue within the Arena. In addition, the data is beamed to another service, Accsense, where it is placed on their monitoring interface and requires a yearly subscription to access, further adding cost.
Through exploring Computer Aided Solutions' Pod manufacturing and distribution firm, DataLogger Inc., I discovered a link to a sample Accsense interface! This interface was a web-based example of the format and basic functions of the device monitoring system, with interactive elements! The demo interface can be accessed here: https://secure.sensornetworkonline.com/SSIWeb/demo.faces. Below is a screenshot of one particular section, along with our commentary on it, as taken from our Project Proposal.

An example of the CAS Dashboard (branded as the “Accense Monitoring System”)
The list format above shows collected metrics clearly enough (Temperature, Humidity, etc.),with time graphs and Alert notifications available for every one of them. These factors are spread out across three distinct sections.   
We can see in the first Pod title that it is plugged into a Kenmore refrigerator, but what of the other two Pods? It isn’t clear if they are plugged into the same fridge, or a different one, or if they’re attached to a separate device altogether. In addition, how would multiple devices be shown, or differentiated, if organized in this manner? How could this display tell between two Kenmore fridges?
Seeing the issues in this existing dashboard, we realized that many of these services are very businesslike and functional. Bringing these issues to the forefront, we noticed that Ombitron's basic dashboard was already leagues ahead in terms of style and modern design sensibilities. This revelation spurred on the design process into beating out the competition by making a stylish, functional, and modern dashboard that addresses the problems of all current systems.

January 30th - Basic Database / Repository Development

Team Members involved: Eric Oltean, Michael Del Fante

Eric and Michael set up a git repository for the team to implement version control. This was to ensure that we could all have a code base that we could collaborate on as a team. The Git repository is hosted on the Ombitron servers so it is in a secure location. The Git repository being hosted on there server makes it easy to launch the application on the server.

 The Git repository was setup on Ombitron's servers separately just for our group. Since Eric is the only one that is an employee at Ombitron, they want us to have a separate Git repository for our project. Ombitron uses SVN for their repositories, so Michael and Eric will work primarily on the Git repository and Eric will be the only team member that can push the project to the SVN repository.

Also this milestone involved getting the basic layout of the database setup. For now, we are using a SQLite 3 database for testing and implementation purposes. Eventually, will export the SQLite database into a MySQL database once this project is ready for production.

This milestone was important for our team. By having the Git repository setup this way makes it ideal for code security and version control. It also allows for quick deployment on Ombitrons servers. Getting the database set will make it possible to start working on the back end of our web application.

screenshot of repo and making a pull request using TortoiseGit

January 30th - Team Wireframe Drafting

Team members involved: Micheal Seng, Eric Oltean, Michael Del Fante, and Jonathan Wai

After our meeting with Paul, who explained our capstone project, we each decided to sketch how we vision the dashboard should look like. Here are my sketches: 


My concept is very similar with how iPhone iOS's folder.
User able add refrigerators into the folder, when user hover the folder, they are able to scroll down without changing the page. This is assign for quick view on all refrigerators' overall status.
Here, you are able to see there are different level view, where each view has more information than other levels.

Brainstorm on how the information will be display and all the required information needed on each level view.
There are some style guide draft here too. The color that I choose is based on the current website of Ombitron.
This is Michael Del Fante's sketch of how he envisioned the detail view of the refrigerator dashboard. It includes an overall status indicator, internal temperature, external temperature, voltage status, energy status, and a temperature graph.

Thursday, January 23, 2014

January 23rd - Learn Python and Flask

Team members involved: Michael Del Fante, Eric Oltean

The first steps that Eric and Michael took towards development for their capstone project was to learn the new technologies that we are going to be using. Neither of us have any prior experience with Python or Flask, which is a Python web framework. To learn Python, we ran through a series of exercises on Codecademy, a site that has tutorials for various web programming languages. Here's a screenshot of the progress we made learning Python.



Next, we went through some of the Flask documentation and tutorials to learn the basics of Flask. First, we read through the quickstart tutorial. Then, we went through a tutorial of creating a basic blog application called Flaskr. This tutorial creates a simple blog that allows one user to log in/log out, add a new post, and view all posts. The tutorial uses just the Flask framework and a SQLite database that is already installed with Python. This tutorial taught us how to get set up and connect to the database, write functions to determine logic for the views, create HTML templates using Jinja2, and where to store additional css and Javascript files. Below is a zip of the source code I created by following this tutorial, along with a screenshot of it working.

flask_tutorial.zip


January 23rd - Context Exploration of Problem

Team members involved: Jonathan Wai, Michael Del Fante, Eric Oltean, Micheal Seng

The first thing that we worked on together as a team was to meet with Paul, the CEO of Ombitron, to find out more information about the project. We explored what the problem is, why it's worth pursuing, who the stakeholders are, what deliverables he expects from us, what technologies they are using, and contact information. After meeting with Paul, we compiled our notes to write a document summarizing what we found out, which is seen below:
Ombitron is a platform as a service company that develops software for what is known as the "Internet of Things". The Internet of Things is a concept that basically means that the software they create is used to monitor the status of real objects in the world. Ombitron also creates the hardware that is used to translate the data between the software and the object. Paul told us that originally they had an idea to monitor the status of refrigerators, but after speaking with Century Link they were proposed to create the hardware and software for monitoring the status of the beer refrigerators since beer is even more profitable at football games/events than the food. Ombitron wants to accomplish 3 main goals for this project:

1) Develop a UI dashboard for an individual refrigerator (includes important info like temperature, graphs, overall status, etc.)

2) Develop a UI dashboard that monitors multiple refrigerators (want to be able to quickly see if all refrigerators are running okay, and have ability to dive deeper and see all the details)

3) Store information long term (big data) and develop a log in system for companies to be able to look at the history and make predictions on when a refrigerator is going to fail. (details are kinda fuzzy here)

After talking with Paul, we agreed that it would be feasible to complete the first 2 goals of the project for our capstone. If we complete the first 2 dashboards early, we can start to work on goal #3, but we're going to define our scope of the project to complete goal #1 and #2. At this point, they have already started working on the first dashboard, so we are picking up the project pretty early on in the process, but we aren't starting this project from complete scratch either.

The dashboards will be created using web technologies. We are going to be developing using these technologies: Python, Flask, Bootstrap, Java, Backbone.js, HTML/CSS/jQuery. We will be using an SVN repository to upload files to their servers. And we were told we could use any open source technologies we want as long as they do not have a GNU license. Working on any of the hardware stuff is going to be out of the scope of this project, we only need to worry about creating the dashboards.

Stakeholders: Paul, customers that have beer refrigerators (Century Link), workers that interact with the dashboard, etc.

Paul seems very chill and willing to work with us. He wants us to feel like we're getting something valuable out of the project. And he doesn't have any preferences yet about meeting up with him to give him updates about the status of the project. But I think it would be best to go through Eric mostly since he works there.