diff --git a/app/models/rack.js b/app/models/rack.js
index ca6bd1b73ff080d8f50d2cf07585052254967901..42a99fc2fb7bca220289fa6e5b84e9c1afde9903 100644
--- a/app/models/rack.js
+++ b/app/models/rack.js
@@ -1,5 +1,13 @@
+import Ember from 'ember';
 import DS from 'ember-data';
 
 export default DS.Model.extend({
+   name: DS.attr('string'),
+   nbColumns: DS.attr('number'),
+   nbRows: DS.attr('number'),
+   image: DS.attr('string'),
+   createdAt: DS.attr('date', {defaultValue() { return new Date(); }}),
+   capacity: Ember.computed('nbColumns', 'nbRows', function() {
+      return this.get('nbColumns')*this.get('nbRows'); }),
 
 });
diff --git a/mirage/config.js b/mirage/config.js
new file mode 100644
index 0000000000000000000000000000000000000000..360d8379733d6da72855ddd7d3e7b6b8d6ed9759
--- /dev/null
+++ b/mirage/config.js
@@ -0,0 +1,21 @@
+export default function() {
+  // this.urlPrefix = '';    // make this `http://localhost:8080`, for example, if your API is on a different server
+  // this.namespace = '';    // make this `api`, for example, if your API is namespaced
+  // this.timing = 400;      // delay for each request, automatically set to 0 during testing
+  /*
+    Shorthand cheatsheet:
+
+    this.get('/posts');
+    this.post('/posts');
+    this.get('/posts/:id');
+    this.put('/posts/:id'); // or this.patch
+    this.del('/posts/:id');
+
+    http://www.ember-cli-mirage.com/docs/v0.2.x/shorthands/
+  */
+  this.namespace = 'api';
+
+this.get('/racks',  function(schema) {
+   return schema.racks.all();
+   });
+}
diff --git a/mirage/factories/rack.js b/mirage/factories/rack.js
new file mode 100644
index 0000000000000000000000000000000000000000..9e9a0a5edc803803ab3e6eae40c8297670d69ddd
--- /dev/null
+++ b/mirage/factories/rack.js
@@ -0,0 +1,9 @@
+import { Factory, faker } from 'ember-cli-mirage';
+
+export default Factory.extend({
+   name(i) { return 'rack number '+i; },
+   nbColumns() { return faker.random.number({min:4, max:12}); },
+   nbRows() { return faker.random.number({min:3, max:20}); },
+   image() { return './img/rack_0'+faker.random.number({min:1, max:5})+'.jpg';}
+
+});
diff --git a/mirage/models/rack.js b/mirage/models/rack.js
new file mode 100644
index 0000000000000000000000000000000000000000..1486a724095b97ee02a6e6d5dd82b7f9aa1781bc
--- /dev/null
+++ b/mirage/models/rack.js
@@ -0,0 +1,4 @@
+import { Model } from 'ember-cli-mirage';
+
+export default Model.extend({
+});
diff --git a/mirage/scenarios/default.js b/mirage/scenarios/default.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2c2a85f7f63e5fcd23d0f0268ef3c0440bca569
--- /dev/null
+++ b/mirage/scenarios/default.js
@@ -0,0 +1,12 @@
+export default function(server) {
+
+  /*
+    Seed your development database using your factories.
+    This data will not be loaded in your tests.
+
+    Make sure to define a factory for each model you want to create.
+  */
+
+  // server.createList('post', 10);
+  server.createList('rack', 32);
+}
diff --git a/mirage/serializers/application.js b/mirage/serializers/application.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d47a366907e5edea5d3d55257d4bcdc482fb50c
--- /dev/null
+++ b/mirage/serializers/application.js
@@ -0,0 +1,4 @@
+import { JSONAPISerializer } from 'ember-cli-mirage';
+
+export default JSONAPISerializer.extend({
+});
diff --git a/package.json b/package.json
index dafac40fc33156228142bdf9fa04d6c02e8a8566..f588a1e540c42000c10233ae3fff76ee779bae40 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
     "ember-cli-htmlbars": "^1.1.1",
     "ember-cli-htmlbars-inline-precompile": "^0.3.6",
     "ember-cli-inject-live-reload": "^1.4.1",
+    "ember-cli-mirage": "^0.3.1",
     "ember-cli-qunit": "^3.1.0",
     "ember-cli-shims": "^1.0.2",
     "ember-cli-sri": "^2.1.0",
diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js
index c3d4d1abb5d467ddf5f9a0b8f814c8d99d20db6d..ebbacb1a98f22473f1dfa3bdc9e6b412b6704c2f 100644
--- a/tests/helpers/destroy-app.js
+++ b/tests/helpers/destroy-app.js
@@ -2,4 +2,7 @@ import Ember from 'ember';
 
 export default function destroyApp(application) {
   Ember.run(application, 'destroy');
+  if(window.server) {
+    window.server.shutdown();
+  }
 }