diff --git a/index.html b/index.html
index 0043fc2..9adc1b3 100644
--- a/index.html
+++ b/index.html
@@ -1,9 +1,11 @@
- Backbone Starter
+ Super Special Awesome Stock Ticker
+
+
@@ -13,9 +15,9 @@
-
+
-
+
diff --git a/src/main.js b/src/main.js
index a63a7c7..3872b23 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,3 +1,40 @@
+(function () {
-// Remove this line when you start working
-alert('Hello World!');
+ // Create our stocks
+ var yhoo = new Stock({ name: 'YHOO' });
+ var aapl = new Stock({ name: 'AAPL' });
+ var goog = new Stock({ name: 'GOOG' });
+ var msft = new Stock({ name: 'MSFT' });
+
+ // Store in a variable for convenience
+ var stocks = [yhoo, aapl, goog, msft];
+
+ // Create a view for each stock and render its element to the page
+ // Since view start with a blank div, we can do this no problem
+ _.each(stocks, function (stock) {
+ var view = new StockView({ model: stock });
+ $('.stocks').append(view.el);
+ });
+
+ // ----
+ // Get realtime stock data
+ // It's not required that you understand the code.
+
+ window.updateStocks = function (data) {
+
+ _.each(data.query.results.quote, function (quote) {
+ var stock = _.find(stocks, function (s) { return s.get('name') == quote.symbol });
+ stock.updatePrice(quote.AskRealtime);
+ });
+ setTimeout(updateLoop, 3000);
+ }
+
+ var updateLoop = function () {
+ $.ajax({
+ url: 'http://mks-cacher.nodejitsu.com/',
+ dataType: 'jsonp'
+ });
+ };
+ updateLoop();
+
+})();
diff --git a/src/models/.gitkeep b/src/models/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/src/models/dummy.js b/src/models/dummy.js
deleted file mode 100644
index a82d49f..0000000
--- a/src/models/dummy.js
+++ /dev/null
@@ -1,9 +0,0 @@
-(function () {
-
- window.Dummy = Backbone.Model.extend({
- defaults: {
- foo: 'default val'
- }
- });
-
-})();
diff --git a/src/models/stock.js b/src/models/stock.js
new file mode 100644
index 0000000..d05bcda
--- /dev/null
+++ b/src/models/stock.js
@@ -0,0 +1,10 @@
+(function () {
+
+ window.Stock = Backbone.Model.extend({
+ updatePrice: function (newPrice) {
+ console.log('Updating', this.get('name'), 'price to:', newPrice);
+ // TODO
+ }
+ });
+
+})();
diff --git a/src/views/.gitkeep b/src/views/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/src/views/dummy.js b/src/views/dummy.js
deleted file mode 100644
index b61d1f0..0000000
--- a/src/views/dummy.js
+++ /dev/null
@@ -1,9 +0,0 @@
-(function () {
-
- window.DummyView = Backbone.View.extend({
- initialize: function (options) {
- this.bar = 'init val';
- }
- });
-
-})();
diff --git a/src/views/stock-view.js b/src/views/stock-view.js
new file mode 100644
index 0000000..faa5795
--- /dev/null
+++ b/src/views/stock-view.js
@@ -0,0 +1,8 @@
+(function () {
+
+ window.StockView = Backbone.View.extend({
+ className: 'stock'
+ // TODO
+ });
+
+})();