diff --git a/Gemfile b/Gemfile
index 774f439eeff73d26ffa0c1244a2690f367f0368e..43a380a159c7075835da3bd72b1430ea344b9545 100644
--- a/Gemfile
+++ b/Gemfile
@@ -81,6 +81,7 @@ gem 'rubycritic', require: false
 
 # docs
 gem 'rdoc'
+gem 'stackprof'
 
 group :development, :test do
   # profiler
@@ -100,6 +101,11 @@ group :development, :test do
   gem 'spring'
 
   gem 'sqlite3'
+
+  #JavaScript runtime
+  gem 'execjs'
+  gem 'therubyracer'
+  
 end
 
 group :test do
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000000000000000000000000000000000000..cea3c858ee916e8157c41c1f6daa194ad48e8ca2
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,351 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    abstract_type (0.0.7)
+    actionmailer (4.2.0)
+      actionpack (= 4.2.0)
+      actionview (= 4.2.0)
+      activejob (= 4.2.0)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+    actionpack (4.2.0)
+      actionview (= 4.2.0)
+      activesupport (= 4.2.0)
+      rack (~> 1.6.0)
+      rack-test (~> 0.6.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.1)
+    actionview (4.2.0)
+      activesupport (= 4.2.0)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.1)
+    activejob (4.2.0)
+      activesupport (= 4.2.0)
+      globalid (>= 0.3.0)
+    activemodel (4.2.0)
+      activesupport (= 4.2.0)
+      builder (~> 3.1)
+    activerecord (4.2.0)
+      activemodel (= 4.2.0)
+      activesupport (= 4.2.0)
+      arel (~> 6.0)
+    activesupport (4.2.0)
+      i18n (~> 0.7)
+      json (~> 1.7, >= 1.7.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    arel (6.0.3)
+    ast (2.1.0)
+    autoprefixer-rails (6.0.3)
+      execjs
+      json
+    axiom-types (0.1.1)
+      descendants_tracker (~> 0.0.4)
+      ice_nine (~> 0.11.0)
+      thread_safe (~> 0.3, >= 0.3.1)
+    bcrypt (3.1.10)
+    better_errors (2.1.1)
+      coderay (>= 1.0.0)
+      erubis (>= 2.6.6)
+      rack (>= 0.9.0)
+    binding_of_caller (0.7.2)
+      debug_inspector (>= 0.0.1)
+    bootstrap-sass (3.3.5.1)
+      autoprefixer-rails (>= 5.0.0.1)
+      sass (>= 3.3.0)
+    builder (3.2.2)
+    bullet (4.14.7)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.9.0)
+    byebug (6.0.2)
+    chart-js-rails (0.0.9)
+      railties (> 3.1)
+    chronic (0.10.2)
+    climate_control (0.0.3)
+      activesupport (>= 3.0)
+    cocaine (0.5.7)
+      climate_control (>= 0.0.3, < 1.0)
+    coderay (1.1.0)
+    coercible (1.0.0)
+      descendants_tracker (~> 0.0.1)
+    coffee-rails (4.1.0)
+      coffee-script (>= 2.2.0)
+      railties (>= 4.0.0, < 5.0)
+    coffee-script (2.4.1)
+      coffee-script-source
+      execjs
+    coffee-script-source (1.9.1.1)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    curb (0.8.8)
+    debug_inspector (0.0.2)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    devise (3.5.1)
+      bcrypt (~> 3.0)
+      orm_adapter (~> 0.1)
+      railties (>= 3.2.6, < 5)
+      responders
+      thread_safe (~> 0.1)
+      warden (~> 1.2.3)
+    devise_token_auth (0.1.34)
+      devise (= 3.5.1)
+      rails (~> 4.2)
+    diff-lcs (1.2.5)
+    domain_name (0.5.24)
+      unf (>= 0.0.5, < 1.0.0)
+    dspace_rest_client (1.1.2)
+      curb (~> 0.8.6)
+      rest-client (>= 1.7, < 2)
+    equalizer (0.0.11)
+    erubis (2.7.0)
+    execjs (2.6.0)
+    fast_stack (0.1.0)
+      rake
+      rake-compiler
+    flamegraph (0.1.0)
+      fast_stack
+    flay (2.4.0)
+      ruby_parser (~> 3.0)
+      sexp_processor (~> 4.0)
+    flog (4.2.1)
+      ruby_parser (~> 3.1, > 3.1.0)
+      sexp_processor (~> 4.4)
+    globalid (0.3.6)
+      activesupport (>= 4.1.0)
+    gruff (0.6.0)
+      rmagick (>= 2.13.4)
+    http-cookie (1.0.2)
+      domain_name (~> 0.5)
+    i18n (0.7.0)
+    ice_nine (0.11.1)
+    jbuilder (2.3.1)
+      activesupport (>= 3.0.0, < 5)
+      multi_json (~> 1.2)
+    jquery-rails (4.0.5)
+      rails-dom-testing (~> 1.0)
+      railties (>= 4.2.0)
+      thor (>= 0.14, < 2.0)
+    jquery-turbolinks (2.1.0)
+      railties (>= 3.1.0)
+      turbolinks
+    json (1.8.3)
+    libv8 (3.16.14.11)
+    locastyle (0.0.1)
+    loofah (2.0.3)
+      nokogiri (>= 1.5.9)
+    mail (2.6.3)
+      mime-types (>= 1.16, < 3)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    mime-types (2.6.2)
+    mimemagic (0.3.0)
+    mina (0.3.7)
+      open4 (~> 1.3.4)
+      rake
+    mini_portile (0.6.2)
+    minitest (5.8.1)
+    multi_json (1.11.2)
+    netrc (0.10.3)
+    nokogiri (1.6.6.2)
+      mini_portile (~> 0.6.0)
+    open4 (1.3.4)
+    orientdb4r (0.5.1)
+      rest-client (~> 1.7)
+    orm_adapter (0.5.0)
+    paperclip (4.3.1)
+      activemodel (>= 3.2.0)
+      activesupport (>= 3.2.0)
+      cocaine (~> 0.5.5)
+      mime-types
+      mimemagic (= 0.3.0)
+    parser (2.2.2.6)
+      ast (>= 1.1, < 3.0)
+    pg (0.18.3)
+    procto (0.0.2)
+    puma (2.14.0)
+    rack (1.6.4)
+    rack-cors (0.4.0)
+    rack-mini-profiler (0.9.7)
+      rack (>= 1.1.3)
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (4.2.0)
+      actionmailer (= 4.2.0)
+      actionpack (= 4.2.0)
+      actionview (= 4.2.0)
+      activejob (= 4.2.0)
+      activemodel (= 4.2.0)
+      activerecord (= 4.2.0)
+      activesupport (= 4.2.0)
+      bundler (>= 1.3.0, < 2.0)
+      railties (= 4.2.0)
+      sprockets-rails
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (1.0.7)
+      activesupport (>= 4.2.0.beta, < 5.0)
+      nokogiri (~> 1.6.0)
+      rails-deprecated_sanitizer (>= 1.0.1)
+    rails-html-sanitizer (1.0.2)
+      loofah (~> 2.0)
+    railties (4.2.0)
+      actionpack (= 4.2.0)
+      activesupport (= 4.2.0)
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rainbow (2.0.0)
+    rake (10.4.2)
+    rake-compiler (0.9.5)
+      rake
+    rdoc (4.2.0)
+    reek (1.6.5)
+      parser (~> 2.2.0.pre.7)
+      rainbow (>= 1.99, < 3.0)
+      unparser (~> 0.2.2)
+    ref (2.0.0)
+    responders (2.1.0)
+      railties (>= 4.2.0, < 5)
+    rest-client (1.8.0)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 3.0)
+      netrc (~> 0.7)
+    rmagick (2.15.4)
+    rsolr (1.0.12)
+      builder (>= 2.1.2)
+    ruby_parser (3.7.1)
+      sexp_processor (~> 4.1)
+    rubycritic (1.4.0)
+      flay (= 2.4.0)
+      flog (= 4.2.1)
+      parser (>= 2.2.0, < 3.0)
+      reek (= 1.6.5)
+      virtus (~> 1.0)
+    sass (3.4.18)
+    sass-rails (5.0.4)
+      railties (>= 4.0.0, < 5.0)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (>= 1.1, < 3)
+    sdoc (0.4.1)
+      json (~> 1.7, >= 1.7.7)
+      rdoc (~> 4.0)
+    select2-rails (4.0.0)
+      thor (~> 0.14)
+    sexp_processor (4.6.0)
+    shoulda (3.5.0)
+      shoulda-context (~> 1.0, >= 1.0.1)
+      shoulda-matchers (>= 1.4.1, < 3.0)
+    shoulda-callback-matchers (1.1.3)
+      activesupport (>= 3)
+    shoulda-context (1.2.1)
+    shoulda-matchers (2.8.0)
+      activesupport (>= 3.0.0)
+    spring (1.4.0)
+    sprockets (3.3.5)
+      rack (> 1, < 3)
+    sprockets-rails (2.3.3)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      sprockets (>= 2.8, < 4.0)
+    sqlite3 (1.3.10)
+    stackprof (0.2.7)
+    therubyracer (0.12.2)
+      libv8 (~> 3.16.14.0)
+      ref
+    thor (0.19.1)
+    thread_safe (0.3.5)
+    tilt (2.0.1)
+    turbolinks (2.5.3)
+      coffee-rails
+    tzinfo (1.2.2)
+      thread_safe (~> 0.1)
+    uglifier (2.7.2)
+      execjs (>= 0.3.0)
+      json (>= 1.8.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.1)
+    uniform_notifier (1.9.0)
+    unparser (0.2.4)
+      abstract_type (~> 0.0.7)
+      adamantium (~> 0.2.0)
+      concord (~> 0.1.5)
+      diff-lcs (~> 1.2.5)
+      equalizer (~> 0.0.9)
+      parser (~> 2.2.2)
+      procto (~> 0.0.2)
+    virtus (1.0.5)
+      axiom-types (~> 0.1)
+      coercible (~> 1.0)
+      descendants_tracker (~> 0.0, >= 0.0.3)
+      equalizer (~> 0.0, >= 0.0.9)
+    warden (1.2.3)
+      rack (>= 1.0)
+    web-console (2.2.1)
+      activemodel (>= 4.0)
+      binding_of_caller (>= 0.7.2)
+      railties (>= 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+    whenever (0.9.4)
+      chronic (>= 0.6.3)
+    will_paginate (3.0.7)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  bcrypt (~> 3.1.7)
+  better_errors
+  bootstrap-sass
+  bullet
+  byebug
+  chart-js-rails
+  coffee-rails (~> 4.1.0)
+  devise
+  devise_token_auth
+  dspace_rest_client (~> 1.1.0)
+  execjs
+  flamegraph
+  gruff
+  jbuilder (~> 2.0)
+  jquery-rails
+  jquery-turbolinks
+  locastyle
+  mina
+  orientdb4r
+  paperclip
+  pg
+  puma
+  rack-cors
+  rack-mini-profiler
+  rails (= 4.2.0)
+  rdoc
+  rmagick
+  rsolr (~> 1.0.12)
+  rubycritic
+  sass-rails (~> 5.0)
+  sdoc (~> 0.4.0)
+  select2-rails
+  shoulda
+  shoulda-callback-matchers (~> 1.1.1)
+  spring
+  sqlite3
+  stackprof
+  therubyracer
+  turbolinks
+  uglifier (>= 1.3.0)
+  web-console (~> 2.0)
+  whenever
+  will_paginate (~> 3.0.5)
+
+BUNDLED WITH
+   1.10.6
diff --git a/app/assets/images/logo.png b/app/assets/images/logo.png
index 31c417df12a32253c11bc8ef25e09d7339d90b89..fd66544072ba7863cd8b9d691fea4c81b162b347 100644
Binary files a/app/assets/images/logo.png and b/app/assets/images/logo.png differ
diff --git a/app/assets/images/user-anon.png b/app/assets/images/user-anon.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2ab8da5945a930140730c855609d1e32ee7103f
Binary files /dev/null and b/app/assets/images/user-anon.png differ
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index c1e8f708f3e00a670b82b076568ffd37d1350b43..608172a8ce87f463e76c3ad98f01d9fb013897e7 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -16,137 +16,4 @@
 //= require jquery.turbolinks
 //= require bootstrap-sprockets
 //= require select2
-//= require_tree ./application
-
-/*
-$('h2').each(function(index,value) {
-  $(this).css('fontSize', (parseFloat($(this).css('fontSize')) + (size_c - 15)) + 'px');
-});
-$('h3').each(function(index,value) {
-  $(this).css('fontSize', (parseFloat($(this).css('fontSize')) + (size_c - 15)) + 'px');
-});
-$('h4').each(function(index,value) {
-  $(this).css('fontSize', (parseFloat($(this).css('fontSize')) + (size_c - 15)) + 'px');
-});
-$('h5').each(function(index,value) {
-  $(this).css('fontSize', (parseFloat($(this).css('fontSize')) + (size_c - 15)) + 'px');
-});
-$('h6').each(function(index,value) {
-  $(this).css('fontSize', (parseFloat($(this).css('fontSize')) + (size_c - 15)) + 'px');
-});
-*/
-
-$(document).ready(function(){
-  size_c = readCookie('fontSize');
-  if (size_c != null) {
-    document.body.style.fontSize = size_c + 'px';
-    $('.dropdown-menu').css('fontSize', document.body.style.fontSize);
-    $('h1,h2,h3,h4,h5,h6').each(function(index,value) {
-      $(this).css('fontSize', (parseFloat($(this).css('fontSize')) + (size_c - 15)) + 'px');
-    });
-  }
-  Contrast();
-});
-
-
-//source: http://www.linhadecodigo.com.br/artigo/1615/acessibilidade-aumentando-e-diminuindo-tamanho-de-letra-em-seu-site.aspx
-function createCookie(name,value,days) {
-	if (days) {
-		var date = new Date();
-		date.setTime(date.getTime()+(days*24*60*60*1000));
-		var expires = "; expires="+date.toGMTString();
-	} else var expires = "";
-	document.cookie = name+"="+value+expires+"; path=/";
-}
-
-function readCookie(name) {
-	var nameEQ = name + "=";
-	var ca = document.cookie.split(";");
-	for(var i=0;i < ca.length;i++)
-	{
-		var c = ca[i];
-		while (c.charAt(0)==" ") c = c.substring(1,c.length);
-		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
-	}
-	return null;
-}
-
-function resizeText(increment) {
-  if (document.body.style.fontSize == "") {
-    document.body.style.fontSize = "15px";
-  }
-  size = parseFloat(document.body.style.fontSize)
-  if (increment > 0) {
-    if (size < 25) {
-      document.body.style.fontSize = parseFloat(document.body.style.fontSize) + increment + "px";
-      $('.dropdown-menu').css('fontSize', document.body.style.fontSize);
-      $('h1 ,h2 ,h3, h4, h5 ,h6').each(function(index,value) {
-        $(this).css('fontSize', parseFloat($(this).css('fontSize')) + increment + 'px');
-      });
-    }
-  } else if(increment < 0){
-    if (size > 10) {
-      document.body.style.fontSize = parseFloat(document.body.style.fontSize) + increment + "px";
-      $('.dropdown-menu').css('fontSize', document.body.style.fontSize);
-      $('h1 ,h2 ,h3, h4, h5 ,h6').each(function(index,value) {
-        $(this).css('fontSize', parseFloat($(this).css('fontSize')) + increment + 'px');
-      });
-    }
-  }
-  else{
-    size = parseFloat(document.body.style.fontSize);
-    document.body.style.fontSize = '15px';
-    $('.dropdown-menu').css('fontSize', document.body.style.fontSize);
-    $('h1 ,h2 ,h3, h4, h5 ,h6').each(function(index,value) {
-      $(this).css('fontSize', parseFloat($(this).css('fontSize')) + increment + 'px');
-    });
-  }
-  createCookie('fontSize', parseFloat(document.body.style.fontSize), 365);
-}
-
-function changeContrast() {
-  if (readCookie('contrast') == null || readCookie('contrast') == "false") {
-    createCookie('contrast',"true",0);
-  } else {
-    createCookie('contrast',"false",0);
-  }
-  Contrast();
-}
-
-function Contrast() {
-  contrast_c = readCookie('contrast');
-  if (contrast_c == null || contrast_c != "true"){
-    $('body').addClass('contraste');
-    $('.barra-brasil').addClass('contraste');
-    $('.search-bar').addClass('contraste');
-    $('.search-bar').css('border-top','2px solid white');
-    $('#menu-bar').addClass('menu-bar-contrast');
-    $('.object-vertical .panel').addClass('contraste');
-    $('.navbar').addClass('contraste');
-    $('.well').addClass('contraste');
-  }else {
-    $('body').removeClass('contraste');
-    $('.barra-brasil').removeClass('contraste');
-    $('.search-bar').removeClass('contraste');
-    $('.search-bar').css('border-top','none');
-    $('#menu-bar').removeClass('menu-bar-contrast');
-    $('.object-vertical .panel').removeClass('contraste');
-    $('.navbar').removeClass('contraste');
-    $('.well').removeClass('contraste');
-  }
-}
-
-
-$.fn.select2.amd.require(
-  ["select2/core", "select2/utils", "select2/compat/matcher"],
-  function (Select2, Utils, oldMatcher) {
-
-  var $basicMultiple = $(".js-example-basic-multiple");
-  var $limitMultiple = $(".js-example-basic-multiple-limit");
-
-  $basicMultiple.select2();
-  $basicMultiple.select2({ width: '80%' });
-  $limitMultiple.select2({
-  maximumSelectionLength: 2
-  });
-});
+//= require_tree ./application
\ No newline at end of file
diff --git a/app/assets/javascripts/application/accessibility.js b/app/assets/javascripts/application/accessibility.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e240dc34bbaee04b3fa5bc7d973370b38682fd9
--- /dev/null
+++ b/app/assets/javascripts/application/accessibility.js
@@ -0,0 +1,107 @@
+//// font size
+var fontSize = function() {
+  var elements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', '.btn'],
+      elements_length = elements.length,
+      elements_size = {};
+
+  // get elements size with jquery after document ready
+  $(document).ready(function() {
+    for (var i = 0; i < elements_length; i++) {
+      elements_size[elements[i]] = $(elements[i]).css('fontSize');
+    }
+  });
+
+  // init
+  size_c = readCookie('fontSize');
+  if (size_c != null) {
+    $(document).ready(function() {
+      reloadFontSize(size_c);
+    });
+  }
+
+  function reloadFontSize(size) {
+    var i = 0;
+    size = (parseFloat(size) / 10) + 1;
+
+    // change body font size
+    $('body').css('fontSize', (size * 100) + '%', 'important');
+
+    // change custom elements
+    for (i; i < elements_length; i++) {
+      $(elements[i]).css('fontSize', (parseFloat(elements_size[elements[i]]) * size) + "px", 'important');
+    }
+  }
+
+  return {
+    resizeText: function(increment) {
+      var size = parseFloat(readCookie('fontSize'));
+      increment = parseFloat(increment);
+
+      if (increment === 0) size = 0;
+      else if (((size > -6) && (increment < 0)) || ((size < 7) && (increment > 0))) {
+        size = size + increment;
+      };
+      reloadFontSize(size);
+
+      createCookie('fontSize', size, 365);
+    }
+  };
+}
+
+//// contrast
+var contrast = function() {
+  var contrast_elements = 'body, .barra-brasil, .search-bar, .learning-object-vertical .panel, .navbar, .well';
+
+  // init
+  $(document).ready(function() {
+    run();
+  });
+
+  function run() {
+    var contrast_c = readCookie('contrast');
+
+    if (contrast_c == null || contrast_c != "true") {
+      $(contrast_elements).removeClass('contraste');
+      $('.search-bar').css('border-top','none');
+      $('#menu-bar').removeClass('menu-bar-contrast');
+    }
+    else {
+      $(contrast_elements).addClass('contraste');
+      $('.search-bar').css('border-top','2px solid white');
+      $('#menu-bar').addClass('menu-bar-contrast');
+    }
+  }
+
+  return {
+    change: function() {
+      (readCookie('contrast') == "true") ? createCookie('contrast',"false",0) : createCookie('contrast',"true",0);
+      run();
+    }
+  };
+}
+
+//// cookies
+//source: http://www.linhadecodigo.com.br/artigo/1615/acessibilidade-aumentando-e-diminuindo-tamanho-de-letra-em-seu-site.aspx
+function createCookie(name,value,days) {
+	if (days) {
+		var date = new Date();
+		date.setTime(date.getTime()+(days*24*60*60*1000));
+		var expires = "; expires="+date.toGMTString();
+	} else var expires = "";
+	document.cookie = name+"="+value+expires+"; path=/";
+}
+
+function readCookie(name) {
+	var nameEQ = name + "=";
+	var ca = document.cookie.split(";");
+	for (var i=0;i < ca.length;i++)	{
+		var c = ca[i];
+		while (c.charAt(0)==" ") c = c.substring(1,c.length);
+		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+	}
+	return null;
+}
+
+// define global variables
+var fontSize = fontSize();
+var contrast = contrast();
diff --git a/app/assets/javascripts/application/collections.coffee b/app/assets/javascripts/application/collections.coffee
new file mode 100644
index 0000000000000000000000000000000000000000..04a4d2015eb8de7fe0a63e9d371fd15ea5396170
--- /dev/null
+++ b/app/assets/javascripts/application/collections.coffee
@@ -0,0 +1,8 @@
+$ ->
+  $('#create_collection_popover').popover
+    html: true
+    content: ->
+      $('#create_collection_popover_content').html()
+    title: ->
+      $('#create_collection_popover_title').html()
+  return
\ No newline at end of file
diff --git a/app/assets/javascripts/application/columns.js b/app/assets/javascripts/application/columns.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a24c897df0bacefd95b1242da0fa49b05f05403
--- /dev/null
+++ b/app/assets/javascripts/application/columns.js
@@ -0,0 +1,24 @@
+$(document).ready(function() {
+  $(".learning-object-columns").each(function() {
+    var html = '',
+        i = 1;
+
+    $("> div", this).each(function () {
+      if (i == 2) {
+        html = '<div class="col-md-6"><div class="row"><div class="col-md-3">&nbsp;</div><div class="col-md-6">';
+        // TODO: find a way to not remove wrapper div
+        html += $(this).clone().wrap('<div>').parent().html();
+        html += '</div><div class="col-md-3">&nbsp;</div></div></div>';
+        $(this).replaceWith(html);
+
+        i = 0;
+      }
+      else {
+        $(this).wrap('<div class="col-md-3"></div>');
+
+        i += 1;
+      }
+    });
+  });
+
+});
diff --git a/app/assets/javascripts/application/learning_objects.coffee b/app/assets/javascripts/application/learning_objects.coffee
new file mode 100644
index 0000000000000000000000000000000000000000..019c35f9309439fc6df4d3bf79c67e228b5ef287
--- /dev/null
+++ b/app/assets/javascripts/application/learning_objects.coffee
@@ -0,0 +1,8 @@
+$ ->
+  $('.add_to_collection').popover
+    html: true
+    content: ->
+      $('#collections_list_popover').html()
+    title: ->
+      $('#collections_list_popover_title').html()
+  return
\ No newline at end of file
diff --git a/app/assets/javascripts/learning_objects.coffee b/app/assets/javascripts/management/carousel.coffee
similarity index 100%
rename from app/assets/javascripts/learning_objects.coffee
rename to app/assets/javascripts/management/carousel.coffee
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss
index babe0365aaa55b45d99000c632fee2509e7eb987..6d2ae1d0fa2864242860ed5675f5c2b57178b638 100644
--- a/app/assets/stylesheets/application.scss
+++ b/app/assets/stylesheets/application.scss
@@ -18,6 +18,8 @@
 @import "select2";
 @import "select2-bootstrap";
 
+$header-blue: #1676bc;
+
 //// HTML/BODY
 html,
 body {
@@ -25,7 +27,7 @@ body {
 	padding:0;
 	height:100%;
 
-  font-size: 15px;
+  font-size: 100%;
   font-family: 'Roboto', "Helvetica Neue", Helvetica, Arial, sans-serif;
 }
 
@@ -50,9 +52,6 @@ a, a:focus, a:hover {
 //// HEADER
 header {
   border: 0;
-  border-bottom: 1px;
-  border-style: solid;
-  border-color: #cececd;
   margin-bottom: 16px;
 
   a, a:focus, a:hover {
@@ -84,15 +83,27 @@ header {
 		margin: 0px;
 
     // logo
-		.logo-text {
+		.logo-container {
+			text-align: left;
+		}
+		.logo {
       margin-top: 10px;
       padding: 0px;
-			font-size: 24px;
+			// font-size: 24px;
       font-weight: bold;
+			text-align: center;
+			float: left;
+			width: 165px;
+			h3 {
+				margin-top: 10px;
+			}
       a {
 			 color: #FFF;
       }
 		}
+		.logo-image {
+			width: 100px;
+		}
     // accessibility
     .search-accessibility {
       margin-top: 25px;
@@ -142,17 +153,15 @@ header {
     // user info
 		.status-text {
       margin-top: 20px;
-			font-size: 20px;
+			// font-size: 20px;
 			text-align: right;
 
-			.circular-image {
-				width: 60px;
-				height: 60px;
-				border-radius: 50%;
+			h2, h4 {
+				margin-top: 5px;
 			}
 
       .media-heading {
-        font-size: 32px;
+        // font-size: 32px;
         a {
           color: #FFF;
         }
@@ -173,20 +182,32 @@ header {
     .nav {
       height: 50px;
 
+			h3 {
+				margin-top: 13px;
+			}
+
       .nav-button {
-        min-width: 140px;
+        min-width: 130px;
         height: 100%;
-        font-size: 20px;
+				padding-left: 15px;
+				padding-right: 10px;
+        // font-size: 20px;
+				color: #343D3E;
         font-weight: 500 !important;
 
-				a { color: #000; }
+				a {
+					@extend h3;
+					padding: 0;
+					color: #343D3E;
+				}
       }
 
       .nav-button-first {
-        a { padding-left: 0px !important; }
+        padding-left: 0 !important;
       }
       .divider {
         width: 2px;
+				margin-left: 3px;
         height: 100%;
         background-color: #FFF;
       }
@@ -225,11 +246,6 @@ footer {
 	}
 }
 
-//// partial OBJECT
-.object-horizontal {
-
-}
-
 .starRating:not(old){
   display        : inline-block;
   width          : 7.5em;
diff --git a/app/assets/stylesheets/application/learning_objects.scss b/app/assets/stylesheets/application/learning_objects.scss
new file mode 100644
index 0000000000000000000000000000000000000000..30ec3e3144c4bc92c36fa7eb5e72463eda369283
--- /dev/null
+++ b/app/assets/stylesheets/application/learning_objects.scss
@@ -0,0 +1,13 @@
+.learning-object-horizontal, .learning-object-vertical {
+	margin-bottom: 20px;
+  
+  .panel-body {
+    padding: 0 !important;
+    margin-top: 3px;
+  }
+  .media-heading {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+  }
+}
diff --git a/app/assets/stylesheets/application/search.scss b/app/assets/stylesheets/application/search.scss
index be47bcd134453e5e11bfbb6bfb18b572944bc5ae..1e0bc46ea2011f1067d4676045b61a33b8fb2652 100644
--- a/app/assets/stylesheets/application/search.scss
+++ b/app/assets/stylesheets/application/search.scss
@@ -1,5 +1,10 @@
 .search-sidebar {
   margin-top: 40px;
+
+  .dropdown-element {
+    width: 95%;
+    margin-left: 3%;
+  }
 }
 
 .select2-container {
diff --git a/app/assets/stylesheets/application/users.scss b/app/assets/stylesheets/application/users.scss
new file mode 100644
index 0000000000000000000000000000000000000000..334ce327e22cfb358fe6cdb6a6b8a2306f84ae9a
--- /dev/null
+++ b/app/assets/stylesheets/application/users.scss
@@ -0,0 +1,25 @@
+$header-blue: #1676bc;
+
+.user-image {
+  width: 60px;
+  height: 60px;
+  border-radius: 50%;
+}
+
+.user-header {
+  background-color: #e7e7e8;
+  width: 100%;
+  min-height: 100px;
+  padding: 15px;
+
+  .right-column {
+    text-align: right;
+
+    .btn {
+      background-color: $header-blue;
+      color: white;
+      border: 0px;
+      min-width: 150px;
+    }
+  }
+}
diff --git a/app/assets/stylesheets/application/welcome.scss b/app/assets/stylesheets/application/welcome.scss
index 293aecd53359ddd05db69e7f4d3dd9978247120a..57c821daaf2a5ba7402e7a832c67c36bb5fecb4d 100644
--- a/app/assets/stylesheets/application/welcome.scss
+++ b/app/assets/stylesheets/application/welcome.scss
@@ -15,7 +15,6 @@ $carousel_size: 400px;
 
 .carousel {
   height: $carousel_size;
-  margin-bottom: 60px;
   h1{
 		background-color: rgba(37, 68, 32, 0.75);
 	}
@@ -27,6 +26,9 @@ $carousel_size: 400px;
 .carousel h1 {
   background-color: rgba(0, 0, 0, 0.75);
 }
+.carousel ol {
+  background-color: rgba(0, 0, 0, 0.10);
+}
 
 .carousel-caption {
   z-index: 10;
@@ -41,7 +43,8 @@ $carousel_size: 400px;
   top: 0;
   left: 0;
   min-width: 100%;
-  height: $carousel_size;
+  height: 400px !important;
+
 }
 
 .carousel-indicators li {
diff --git a/app/assets/stylesheets/learning_objects.scss b/app/assets/stylesheets/learning_objects.scss
deleted file mode 100644
index b9ba81d3d355ebd38241b2355d66235b122d16c5..0000000000000000000000000000000000000000
--- a/app/assets/stylesheets/learning_objects.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-// Place all the styles related to the LearningObjects controller here.
-// They will automatically be included in application.css.
-// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/assets/stylesheets/edges.scss b/app/assets/stylesheets/management/carousel.scss
similarity index 60%
rename from app/assets/stylesheets/edges.scss
rename to app/assets/stylesheets/management/carousel.scss
index 248e4c0d098e1ffcb97d204565abaa8013256443..89da7e1046eebfd411c84d8414cc3ac48ec4ea90 100644
--- a/app/assets/stylesheets/edges.scss
+++ b/app/assets/stylesheets/management/carousel.scss
@@ -1,3 +1,3 @@
-// Place all the styles related to the Edges controller here.
+// Place all the styles related to the management/carousel controller here.
 // They will automatically be included in application.css.
 // You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/assets/stylesheets/registrations.scss b/app/assets/stylesheets/registrations.scss
deleted file mode 100644
index f6e17a22d8ea83e854c44006511714d6fc63a863..0000000000000000000000000000000000000000
--- a/app/assets/stylesheets/registrations.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-// Place all the styles related to the registrations controller here.
-// They will automatically be included in application.css.
-// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/assets/stylesheets/university.scss b/app/assets/stylesheets/university.scss
deleted file mode 100644
index b37e7ce20f0e77f10ef56f66461a2226c2646e4e..0000000000000000000000000000000000000000
--- a/app/assets/stylesheets/university.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-// Place all the styles related to the university controller here.
-// They will automatically be included in application.css.
-// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss
deleted file mode 100644
index 1efc835ccd15adaf355c0501d7237d13529771e1..0000000000000000000000000000000000000000
--- a/app/assets/stylesheets/users.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-// Place all the styles related to the users controller here.
-// They will automatically be included in application.css.
-// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 374155aaae133f416c4eb513e34151f23766d8bd..99459ecff26a0f9df6456eeebbcee08eb1dd7dd3 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -1,13 +1,11 @@
 class ApplicationController < ActionController::Base
+  include RepositoriesProxy
+
   # Prevent CSRF attacks by raising an exception.
   # For APIs, you may want to use :null_session instead.
   protect_from_forgery with: :null_session
   before_action :configure_permitted_parameters, if: :devise_controller?
 
-  def repository
-    Portalmec::Application.repository
-  end
-
   protected
 
   def configure_permitted_parameters
diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb
index 07c7929d91326fbd323d5aeb9ec35a30222256c4..877924667c44c85880435b2737eb59399b4fbcb9 100644
--- a/app/controllers/collections_controller.rb
+++ b/app/controllers/collections_controller.rb
@@ -1,5 +1,5 @@
 class CollectionsController < ApplicationController
-  before_action :set_collection, only: [:show, :edit, :update, :destroy, :like]
+  before_action :set_collection, only: [:show, :update, :destroy, :like]
 
   # GET /collections
   # GET /collections.json
@@ -12,13 +12,9 @@ class CollectionsController < ApplicationController
   def show
   end
 
-  # GET /collections/new
-  def new
-    @collection = Collection.new
-  end
-
-  # GET /collections/1/edit
-  def edit
+  # POST /collections/1/like
+  def like
+    collection_repository.like @collection
   end
 
   # POST /collections
@@ -60,16 +56,12 @@ class CollectionsController < ApplicationController
   private
 
   def set_collection
-    @collection = collection_repository.find("##{params[:id]}")
-  end
-
-  def collection_repository
-    repository.for(:collection)
+    @collection = collection_repository.find params[:id]
   end
 
   # Never trust parameters from the scary internet, only allow the white list through.
   def collection_params
-    params[:collection_object]
+    params.require(:collection).permit(:name, :privacy, learning_objects: [])
   end
 
 end
diff --git a/app/controllers/institutions_controller.rb b/app/controllers/institutions_controller.rb
index 96c21aa17d468af0acb632a45c2cbc9eb9de3bfc..b668a26a983e732e35f363de431f1c24eda430b4 100644
--- a/app/controllers/institutions_controller.rb
+++ b/app/controllers/institutions_controller.rb
@@ -57,18 +57,12 @@ class InstitutionsController < ApplicationController
     end
   end
 
-
-
   private
 
   def set_institution
     @institution = institution_repository.find("##{params[:id]}")
   end
 
-  def institution_repository
-    repository.for(:institution)
-  end
-
   # Never trust parameters from the scary internet, only allow the white list through.
   def institution_params
     params[:institution_object]
diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index 59111b75a5f4d98da8b305c10c8607954d60341e..a1e384b0a65f098238a181b9098d1f9fc85fcc84 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -67,13 +67,9 @@ class LearningObjectsController < ApplicationController
 
   private
 
-  def learning_object_repository
-    repository.for(:learning_object)
-  end
-
   # Use callbacks to share common setup or constraints between actions.
   def set_learning_object
-    @learning_object = learning_object_repository.get_by_dspace_id params[:id]
+    @learning_object = learning_object_repository.find params[:id]
   end
 
   # Never trust parameters from the scary internet, only allow the white list through.
diff --git a/app/controllers/management/carousels_controller.rb b/app/controllers/management/carousels_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..b39f2c5bb0e2d4a120d6c6111dba53d9ff836c4b
--- /dev/null
+++ b/app/controllers/management/carousels_controller.rb
@@ -0,0 +1,55 @@
+class Management::CarouselsController < ManagementController
+  before_action :set_carousel, only: [:edit, :update, :destroy]
+
+  def index
+    @carousels = carousel_repository.all
+  end
+
+  def new
+    @carousel = Carousel.new
+  end
+
+  def create
+    @carousel = Carousel.new(carousel_params)
+
+    respond_to do |format|
+      if carousel_repository.save @carousel
+        format.html { redirect_to management_carousels_path }
+      else
+        format.html { render :new }
+      end
+    end
+  end
+
+  def edit
+  end
+
+  def update
+    respond_to do |format|
+      if carousel_repository.update(@carousel, carousel_params)
+        format.html { redirect_to management_carousels_path }
+      else
+        format.html { render :edit }
+      end
+    end
+  end
+
+  def destroy
+    @carousel.image = nil
+    carousel_repository.destroy @carousel
+    respond_to do |format|
+      format.html { redirect_to management_carousels_path }
+    end
+  end
+
+  private
+
+  def set_carousel
+    @carousel = carousel_repository.find params[:id]
+  end
+
+  def carousel_params
+    params.require(:carousel).permit(:title, :url, :image)
+  end
+
+end
diff --git a/app/controllers/management/highlights_controller.rb b/app/controllers/management/highlights_controller.rb
deleted file mode 100644
index 2c91db6b179c71322b42d85ffff779913da35d78..0000000000000000000000000000000000000000
--- a/app/controllers/management/highlights_controller.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-class Management::HighlightsController < ManagementController
-
-  def index
-    @highlights = highlight_repository.find_all
-  end
-
-  def show
-  end
-
-  def new
-  end
-
-  def delete
-    @highlights = highlight_repository.find_all
-  end
-
-  def create
-
-    highlight_repository.insert_data(params[:name],params[:url])
-    redirect_to management_highlights_index_path
-
-  end
-
-  def destroy
-
-    params[:id].each do |id|
-      highlight_repository.destroy_data(id)
-    end
-    redirect_to management_highlights_index_path
-
-  end
-
-  private
-
-  def highlight_repository
-    repository.for :highlight
-  end
-
-
-end
diff --git a/app/controllers/management/users_controller.rb b/app/controllers/management/users_controller.rb
index 4c6de9d93bc5e37daaf181fa63076625b43d02ae..610ab321929077af82d6e00563a06ed98e6f6d50 100644
--- a/app/controllers/management/users_controller.rb
+++ b/app/controllers/management/users_controller.rb
@@ -26,7 +26,7 @@ class Management::UsersController < ManagementController
     @user = User.new(user_params)
 
     respond_to do |format|
-      if @user.save
+      if user_repository.save @user
         format.html { redirect_to management_user_path(@user), notice: "User created!" }
         format.json { render :show, status: :created, location: @user }
       else
@@ -69,10 +69,6 @@ class Management::UsersController < ManagementController
     params.require(:user).permit(:name, :email, :password, :password_confirmation, roles: [])
   end
 
-  def user_repository
-    repository.for(:user)
-  end
-
   def set_roles
     @roles = Role.all
   end
diff --git a/app/controllers/management_controller.rb b/app/controllers/management_controller.rb
index 6db75c2c7f0cc891b5a3da1010a0ae330923a3de..ef890daa346304084f5f8b2fea71edf2ad7aa555 100644
--- a/app/controllers/management_controller.rb
+++ b/app/controllers/management_controller.rb
@@ -1,3 +1,5 @@
 class ManagementController < ApplicationController
+  before_action :authenticate_user!
+
   layout 'management'
 end
diff --git a/app/controllers/subjects_controller.rb b/app/controllers/subjects_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7d900a69851a286d944a48c8c39abae5c5b3f1db
--- /dev/null
+++ b/app/controllers/subjects_controller.rb
@@ -0,0 +1,22 @@
+class SubjectsController < ApplicationController
+
+  # GET /subjects
+  # GET /subjects.json
+  def index
+    @subjects = subject_repository.all
+  end
+
+  # GET /subjects/1
+  # GET /subjects/1.json
+  def show
+    @subject = subject_repository.find("##{params[:id]}")
+  end
+
+  private
+
+  # Never trust parameters from the scary internet, only allow the white list through.
+  def subject_params
+    params[:subject_object]
+  end
+
+end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..cda7f8ed990b71a14c0076ffaa4560a8e631ccc0
--- /dev/null
+++ b/app/controllers/users_controller.rb
@@ -0,0 +1,7 @@
+class UsersController < ApplicationController
+
+  def show
+    @objects = learning_object_repository.all
+  end
+
+end
diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..fe3ed8bfe169d3978c056b92761cc29e7478fbf7
--- /dev/null
+++ b/app/controllers/welcome_controller.rb
@@ -0,0 +1,25 @@
+class WelcomeController < ApplicationController
+
+  def index
+    @Carousel = Array.new
+    @General = Array.new
+    mainPage = main_page_repository.all.first
+
+    @Carousel = carousel_repository.all
+
+    @General = mainPage["highlights"].collect do |id|
+      learning_object_repository.find(id)
+    end
+
+    @Subjects = subject_repository.all
+    @Subjects.delete_if{|s| not s.highlights.present?}
+    @Subjects = @Subjects.take(8)
+  end
+
+  def faq
+  end
+
+  def contact
+  end
+
+end
diff --git a/app/helpers/collections_helper.rb b/app/helpers/collections_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4dfbadf4fbe3f941a742f21b7854f8b76e3970a8
--- /dev/null
+++ b/app/helpers/collections_helper.rb
@@ -0,0 +1,9 @@
+module CollectionsHelper
+
+  ##
+  # x objetos educacionais
+  def collection_length(collection)
+    "#{collection.learning_objects.count} objetos educacionais nessa coleção"
+  end
+
+end
\ No newline at end of file
diff --git a/app/helpers/learning_objects_helper.rb b/app/helpers/learning_objects_helper.rb
index cdcd84a35a5d2aa360b6b2e889588a909fa5f8f7..37aa17b22027af30ad9df0ae7f94bd93b604e9c3 100644
--- a/app/helpers/learning_objects_helper.rb
+++ b/app/helpers/learning_objects_helper.rb
@@ -1,2 +1,22 @@
 module LearningObjectsHelper
+
+  def show_categories(categories = [])
+    categories.to_s
+  end
+
+  def render_learning_object(orientation, learning_object)
+    case (orientation)
+      when "vertical"
+        render "learning_objects/learning_object_vertical", learning_object: learning_object
+      when "horizontal"
+        render "learning_objects/learning_object_horizontal", learning_object: learning_object
+      else
+        render "learning_objects/learning_object_horizontal", learning_object: learning_object
+    end
+  end
+
+  def collections_list(learning_object)
+    collections = @collections.diff(learning_object_collections(learning_object))
+  end
+
 end
diff --git a/app/helpers/management/carousel_helper.rb b/app/helpers/management/carousel_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..d764ece79ca86f013cdc68b230deefd2789f3c99
--- /dev/null
+++ b/app/helpers/management/carousel_helper.rb
@@ -0,0 +1,2 @@
+module Management::CarouselHelper
+end
diff --git a/app/models/attribute.rb b/app/models/attribute.rb
new file mode 100644
index 0000000000000000000000000000000000000000..af0710be3bf389b3fec994e82629afaccbc4e199
--- /dev/null
+++ b/app/models/attribute.rb
@@ -0,0 +1,6 @@
+class Attribute
+  include ActiveModel::Model
+
+  attr_accessor :id, :key, :value
+  
+end
\ No newline at end of file
diff --git a/app/models/carousel.rb b/app/models/carousel.rb
new file mode 100644
index 0000000000000000000000000000000000000000..e8a81d995ee3d9d870b2e3915ac5032f5cc35ab6
--- /dev/null
+++ b/app/models/carousel.rb
@@ -0,0 +1,7 @@
+class Carousel < ActiveRecord::Base
+  has_attached_file :image, styles: {
+    larger: "600x600>",
+    thumbnail: "100x100>"
+    }, default_url: "/images/:style/missing.png"
+  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
+end
diff --git a/app/models/learning_object.rb b/app/models/learning_object.rb
index 2f15a28276173e1cf93b69974e1ebe261f5b671c..b28f497a28be4e68517e93f9ae4d0448bbcbbdd8 100644
--- a/app/models/learning_object.rb
+++ b/app/models/learning_object.rb
@@ -1,10 +1,11 @@
 class LearningObject
   include ActiveModel::Model
   attr_accessor :id, :id_dspace, :rid, :name, :description,
-                :thumbnail, :date_creation, :last_modified,
-                :type, :bitstreams, :metadata, :likes, :views, :downloads
+                :thumbnail, :created_at, :last_modified,
+                :type, :bitstreams, :metadata, :likes, :views,
+                :downloads, :subjects, :attributes
 
-  validates_presence_of :name, :date_creation, :type, :likes, :views, :downloads
+  validates_presence_of :name, :created_at, :type, :likes, :views, :downloads
   validates_numericality_of :likes, greater_than_or_equal_to: 0
   validates_numericality_of :views, greater_than_or_equal_to: 0
   validates_numericality_of :downloads, greater_than_or_equal_to: 0
@@ -17,11 +18,24 @@ class LearningObject
     @subjects ||= learning_object_repository.get_subjects(self)
   end
 
+  def attributes
+    @attributes ||= learning_object_repository.get_attributes(self)
+  end
+
+  def categories
+    get_metadata_value_of 'dc.subject.category'
+  end
+
   def get_metadata_value_of key
-    values = @metadata.select { |v| v["key"] == key }
-    unless values.empty?
-      return values.first["value"]
+    get_metadata_values_of(key).first
+  end
+
+  def get_metadata_values_of key
+    values = []
+    @metadata.each do |m|
+      values << m["value"] if m["key"] == key
     end
+    values
   end
 
   def get_bitstream_retrievelink_of name
@@ -45,7 +59,7 @@ class LearningObject
         likes: 0,
         views: 0,
         downloads: 0,
-        date_creation: DateTime.new
+        created_at: DateTime.new
     }
   end
 
diff --git a/app/models/search.rb b/app/models/search.rb
new file mode 100644
index 0000000000000000000000000000000000000000..a92037f954023ff18fd5bf39199c38cab5189de7
--- /dev/null
+++ b/app/models/search.rb
@@ -0,0 +1,21 @@
+class Search
+  include ActiveModel::Model
+  attr_accessor :results_per_page, :sort, :query, :results
+
+  validates_presence_of :query, :results_per_page, :sort
+  validates_numericality_of :results_per_page, greater_than: 0
+
+  def initialize(params={})
+    super(params.merge(defaults))
+  end
+
+  private
+
+  def defaults
+    {
+        sort: 'relevance',
+        results_per_page: 10
+    }
+  end
+
+end
\ No newline at end of file
diff --git a/app/models/subject.rb b/app/models/subject.rb
index 58e25fa4d60b98f24147ccee7839f0dee1e01bc7..4aa1d1c169fd5cc3836a341159864376e60bd7e6 100644
--- a/app/models/subject.rb
+++ b/app/models/subject.rb
@@ -1,5 +1,12 @@
 class Subject
   include ActiveModel::Model
+  attr_accessor :id, :created_at, :description, :highlights, :name
 
-  attr_accessor :id, :dateCreation, :description, :highlights, :name
+  def highlights
+    @highlights ||= subject_repository.get_highlights(self)
+  end
+
+  def subject_repository
+    Portalmec::Application.repository.for :subject
+  end
 end
\ No newline at end of file
diff --git a/app/models/user.rb b/app/models/user.rb
index 28100ca583e944ea07f031fab91efee58583551d..855ae8b7a7b1e7cf7d08afadd72d8c6edc555d5f 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -26,6 +26,6 @@ class User < ActiveRecord::Base
   after_create SyncUserRepositoryService.new
   after_destroy SyncUserRepositoryService.new
 
-  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "60x60>" }, default_url: ActionController::Base.helpers.asset_path('missing.svg')
+  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "60x60>" }, default_url: ActionController::Base.helpers.asset_path('user-anon.png')
   validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/
 end
diff --git a/app/models/web_link.rb b/app/models/web_link.rb
deleted file mode 100644
index ee1edc1eb3bb5c4369e1448629534530a3af286b..0000000000000000000000000000000000000000
--- a/app/models/web_link.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-class WebLink
-  include ActiveModel::Model
-  attr_accessor :id, :dateCreation, :description, :name, :thumbnail, :url
-end
\ No newline at end of file
diff --git a/app/repositories/active_record/carousel_repository.rb b/app/repositories/active_record/carousel_repository.rb
index bfec616aa00ec56993f360f1f7cc03b22d12133c..cb77877a8cde65fb8e7aacbefae0ef33a29e0a27 100644
--- a/app/repositories/active_record/carousel_repository.rb
+++ b/app/repositories/active_record/carousel_repository.rb
@@ -1,14 +1,22 @@
-module ActiveRecord
-  class CarouselRepository
+##
+# This carousel repository delegates all behavior to ActiveRecord
+class ActiveRecord::CarouselRepository
 
-    def find_all
-    end
+  def save(carousel)
+    carousel.save
+  end
 
-    def find_by_id
-    end
+  def save!(carousel)
+    carousel.save!
+  end
 
-    def insert_data(name, url)
-    end
+  def method_missing(method_name, *arguments, &block)
+    Carousel.send(method_name, *arguments, &block)
+  end
 
+
+  def respond_to?(method_name, include_private = false)
+    Carousel.respond_to?(method_name) || super
   end
+
 end
diff --git a/app/repositories/active_record/learning_object_repository.rb b/app/repositories/active_record/learning_object_repository.rb
deleted file mode 100644
index 66a3d4ea20afc0bacc80dbe47589defee4f0b22d..0000000000000000000000000000000000000000
--- a/app/repositories/active_record/learning_object_repository.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module ActiveRecord
-  class LearningObjectRepository
-
-    def find_all
-    end
-
-    def find_by_id
-    end
-
-    def insert_data(name, url)
-    end
-
-  end
-end
diff --git a/app/repositories/active_record/main_page_repository.rb b/app/repositories/active_record/main_page_repository.rb
deleted file mode 100644
index 656aab684c7eaa33e845387038aee21882f2615f..0000000000000000000000000000000000000000
--- a/app/repositories/active_record/main_page_repository.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module ActiveRecord
-  class MainPageRepository
-
-    def find_all
-    end
-
-    def find_by_id
-    end
-
-    def insert_data(name, url)
-    end
-
-  end
-end
diff --git a/app/repositories/active_record/subject_repository.rb b/app/repositories/active_record/subject_repository.rb
deleted file mode 100644
index dcccbb258a48790ca63d82e9de706190b23480f3..0000000000000000000000000000000000000000
--- a/app/repositories/active_record/subject_repository.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module ActiveRecord
-  class SubjectRepository
-
-    def find_all
-    end
-
-    def find_by_id
-    end
-
-    def insert_data(name, url)
-    end
-
-  end
-end
diff --git a/app/repositories/active_record/weblink_repository.rb b/app/repositories/active_record/weblink_repository.rb
deleted file mode 100644
index a717c04fd8f450ca3d0e531ee82075d8614bde0e..0000000000000000000000000000000000000000
--- a/app/repositories/active_record/weblink_repository.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module ActiveRecord
-  class WeblinkRepository
-
-    def find_all
-    end
-
-    def find_by_id
-    end
-
-    def insert_data(name, url)
-    end
-
-  end
-end
diff --git a/app/repositories/orient_db/attribute_repository.rb b/app/repositories/orient_db/attribute_repository.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4c5373180e4f1aac39f80384dd3c8f78288ff5ba
--- /dev/null
+++ b/app/repositories/orient_db/attribute_repository.rb
@@ -0,0 +1,30 @@
+module OrientDb
+  class AttributeRepository < Base
+    
+    def find_by_key_and_value(key, value)
+        result = connection.query sprintf("SELECT FROM %s WHERE key = '%s' AND value = '%s'", odb_class, key, value)
+        build_objects(result)
+    end
+
+    def build_object(args={})
+      subject = nil
+      unless args.nil?
+        subject = Attribute.new(:id => args["@rid"])
+        args.each do |var, val|
+          var_name = "@"+var
+          if subject.respond_to?(var)
+            subject.instance_variable_set(var_name, val)
+          end
+        end
+      end
+      subject
+    end
+    
+    private
+
+    def odb_class
+        "Attribute"
+    end
+
+  end
+end
\ No newline at end of file
diff --git a/app/repositories/orient_db/base.rb b/app/repositories/orient_db/base.rb
index 53599f9125b196ed8d4d04a645719a3419ad04c8..a2affd8b1c539330639d69ba580f6e4166b09c43 100644
--- a/app/repositories/orient_db/base.rb
+++ b/app/repositories/orient_db/base.rb
@@ -1,12 +1,67 @@
 class OrientDb::Base
+  include OrientDb::Methods::GenericMethods
 
   def initialize(orientdb_connection)
     @connection = orientdb_connection
   end
 
-
   def connection
     @connection
   end
 
+  def find(id)
+    result = get_by_rid(id)
+    build_object result
+  end
+
+  # Example:
+  #   list = repository.for(:learning_objects).all
+  #   list.each do |learning_object|
+  #     learning_object.inspect <LearningObject model>
+  #   end
+  def all
+    objects_hash = connection.query "SELECT FROM #{odb_class}", :limit => -1
+    objects = build_objects(objects_hash) || []
+  end
+
+  def all_from_offset_to_limit(offset, limit)
+    objects_hash = connection.query "SELECT FROM #{odb_class} SKIP #{offset}", :limit => limit
+    objects = build_objects(objects_hash) || []
+  end
+
+  def create(object)
+    hash = build_hash(object)
+    result = connection.create_document(hash)
+    object.id = result["@rid"]
+    object
+  end
+
+  def build_objects(hash=[])
+    objects = []
+    hash.each do |h|
+      objects << build_object(h)
+    end
+    objects
+  end
+
+  def build_hash(object)
+    hash = {}
+    hash["@class"] = odb_class
+    object.instance_variables.each do |var|
+      var_name = var.to_s.gsub(/\A@/, "")
+      hash[var_name] = object.instance_variable_get(var)
+    end
+    hash
+  end
+
+  def build_object(args={})
+    raise NoMethodError, "You must implement this method"
+  end
+
+  private
+
+  def odb_class
+    raise NoMethodError, "You must implement this method"
+  end
+
 end
diff --git a/app/repositories/orient_db/carousel_repository.rb b/app/repositories/orient_db/carousel_repository.rb
deleted file mode 100644
index a8a2d8c0a0c529dba2d7a43e4d02a0adfe9f5dd5..0000000000000000000000000000000000000000
--- a/app/repositories/orient_db/carousel_repository.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module OrientDb
-  class CarouselRepository < Base
-
-    def find_all
-      connection.query "SELECT FROM Carousel"
-    end
-
-    def find_by_id(id)
-      connection.query "SELECT FROM Carousel where @rid = '#{id}'"
-    end
-
-    def insert_data (name,url)
-       connection.command "INSERT INTO Carousel (name,URL) VALUES ('#{name}','#{url}')"
-    end
-
-
-    def destroy_data(id)
-        return @connection.command "DELETE VERTEX Carousel where @rid = '#{id}'"
-      rescue
-        return nil
-    end
-
-  end
-end
diff --git a/app/repositories/orient_db/collection_repository.rb b/app/repositories/orient_db/collection_repository.rb
index a597b2ca3db07e288434284982510cccedbef7a6..80e6b177add29920a2b038400e8267d5baee9449 100644
--- a/app/repositories/orient_db/collection_repository.rb
+++ b/app/repositories/orient_db/collection_repository.rb
@@ -2,18 +2,6 @@ module OrientDb
   class CollectionRepository < Base
     include OrientDb::Methods::EdgeMethods
 
-    def all
-      hash = connection.query "SELECT FROM Collection"
-      collections = build_collections(hash)
-    end
-
-    # Usage:
-    #   collection = repository.for(:collections).find '#14:14'
-    def find(id)
-      result = connection.query "SELECT FROM #{id}"
-      build_collection result.first
-    end
-
     # Usage:
     #   repository.for(:collections).destroy collection
     #
@@ -21,22 +9,17 @@ module OrientDb
       connection.command sprintf("DELETE VERTEX %s", collection.id)
     end
 
-    private
-
-    def build_collection(args={})
+    def build_object(args={})
       Collection.new(
           :id => args["@rid"],
           :name => args["name"]
       )
     end
 
-    def build_collections(hash=[])
-      collections = []
-      hash.each do |h|
-        collections << build_collection(h)
-      end
+    private
 
-      collections
+    def odb_class
+      "Collection"
     end
 
   end
diff --git a/app/repositories/orient_db/highlight_repository.rb b/app/repositories/orient_db/highlight_repository.rb
deleted file mode 100644
index 046f724c400c0c75f1314c937999432d4cbb6936..0000000000000000000000000000000000000000
--- a/app/repositories/orient_db/highlight_repository.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-module OrientDb
-  class HighlightRepository < Base
-
-    def find_all
-      connection.query "Select highlights FROM MainPage"
-    end
-
-    def insert_data (name, url)
-      connection.command "INSERT INTO Highlight (name,URL) VALUES ('#{name}','#{url}')"
-    end
-
-
-    def destroy_data(id)
-      @connection.command "DELETE VERTEX Highlight where @rid = '#{id}'"
-    end
-
-  end
-end
diff --git a/app/repositories/orient_db/institution_repository.rb b/app/repositories/orient_db/institution_repository.rb
index 6bc0e470f058a2ff7d0dce33ec002053c7472200..028e13b96f04e1747c3e2825ad6e2638be70bb41 100644
--- a/app/repositories/orient_db/institution_repository.rb
+++ b/app/repositories/orient_db/institution_repository.rb
@@ -2,24 +2,6 @@ module OrientDb
   class InstitutionRepository < Base
     include OrientDb::Methods::EdgeMethods
 
-    # Example:
-    #   list = repository.for(:institutions).all
-    #   list.each do |institution|
-    #     institution_object.inspect <LearningObject model>
-    #   end
-    def all
-      hash = connection.query "SELECT FROM Institution"
-      institutions = build_institutions(hash)
-    end
-
-    # Usage:
-    #   institution = repository.for(:institutions).get_by_dspace_id 123
-    #
-    def find(id)
-      result = connection.query "SELECT FROM #{id}"
-      build_institution result.first
-    end
-
     def create(name, url)
       connection.command sprintf("INSERT INTO Institution (name) VALUES ('%s')", name)
     end
@@ -31,21 +13,17 @@ module OrientDb
       connection.command sprintf("DELETE VERTEX %s", institution.id)
     end
 
-    private
-
-    def build_institution(args={})
+    def build_object(args={})
       return Institution.new(
         :id => args["@rid"],
         :title => args["title"],
       )
     end
 
-    def build_institutions(hash=[])
-      institutions = []
-      hash.each do |h|
-        institutions << build_institution(h)
-      end
-      return institutions
+    private
+
+    def odb_class
+      "Institution"
     end
 
   end
diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb
index 6a0e0c8721e6c45cdf511fccccadffb9c002ca0e..2114a7a2340796759bf22fd40b26aacf40043f5b 100644
--- a/app/repositories/orient_db/learning_object_repository.rb
+++ b/app/repositories/orient_db/learning_object_repository.rb
@@ -65,12 +65,6 @@ module OrientDb
       connection.command sprintf("DELETE VERTEX LearningObject where @rid = '%s'", learning_object.id)
     end
 
-    def update_property(learning_object,property,value)
-      if accepted_properties.include? property
-        connection.command "UPDATE LearningObject SET #{property}='#{value}' WHERE @rid = #{learning_object.id}"
-      end
-    end
-
     def search(qry)
       # TO CREATE "index:learningobject_search" ON OrientDB, USE THE COMMAND:
       #   CREATE INDEX learningobject_search
diff --git a/app/repositories/orient_db/main_page_repository.rb b/app/repositories/orient_db/main_page_repository.rb
index 3b27e083e1bd9a4aa921ededa4827a67321d2a79..ab8e0b6cb28dae44779c4df32eab1ffc03ab45c1 100644
--- a/app/repositories/orient_db/main_page_repository.rb
+++ b/app/repositories/orient_db/main_page_repository.rb
@@ -1,11 +1,11 @@
 module OrientDb
   class MainPageRepository < Base
 
-    def find_all
+    def all
       connection.query "SELECT FROM MainPage"
     end
 
-    def find_by_id(id)
+    def find(id)
       connection.query "SELECT FROM MainPage where @rid = '#{id}'"
     end
 
@@ -20,9 +20,15 @@ module OrientDb
         return nil
     end
 
-    def update(id,operation,atributte,new)
-      puts "update #{id} #{operation} #{atributte} = #{new}"
-      connection.command "update #{id} #{operation} #{atributte} = #{new}"
+    #def update(id,operation,atributte,new)
+    #  puts "update #{id} #{operation} #{atributte} = #{new}"
+    #  connection.command "update #{id} #{operation} #{atributte} = #{new}"
+    #end
+
+    private
+
+    def odb_class
+      "MainPage"
     end
 
   end
diff --git a/app/repositories/orient_db/subject_repository.rb b/app/repositories/orient_db/subject_repository.rb
index b7889fc55699145ad441d9729a9e7ebde0d12b8b..b90fa2b919efcb4a884cb3ea1a2c9744decef128 100644
--- a/app/repositories/orient_db/subject_repository.rb
+++ b/app/repositories/orient_db/subject_repository.rb
@@ -1,27 +1,57 @@
 module OrientDb
   class SubjectRepository < Base
+    include OrientDb::Methods::EdgeMethods
+    include RepositoriesProxy
 
-    def find_all
-      connection.query "SELECT FROM Subject", limit: -1
+    def find_by_name(name)
+      result = select_by_property(odb_class, "name", name)
+      build_object(result.first)
     end
 
-    def find_by_id(id)
-      connection.query "SELECT FROM Subject where @rid = '#{id}'"
+    def destroy(id)
+      connection.command "DELETE VERTEX Subject where @rid = '#{id}'"
     end
 
-    def destroy_data(id)
-        return @connection.command "DELETE VERTEX Subject where @rid = '#{id}'"
-      rescue
-        return nil
+    #def update(id, operation, atributte, new_value)
+    #  puts "update #{id} #{operation} #{atributte} = #{new_value}"
+    #  connection.command "update #{id} #{operation} #{atributte} = #{new_value}"
+    #end
+
+    def get_learning_objects(subject)
+      result = get_edges_end("IsAbout", "in", subject.id)
+      learning_object_repository.build_objects(result)
+    end
+
+    def get_highlights(subject)
+      result = connection.query "SELECT expand(highlights) FROM #{subject.id}"
+      learning_object_repository.build_objects(result)
     end
 
-    def get_objects(id)
-      connection.query "select expand(in('IsAbout')) from #{id}"
+    def build_hash
+      hash = super
+      hash.delete("learning_objects")
+      hash
     end
 
-    def update(id,operation,atributte,new)
-      puts "update #{id} #{operation} #{atributte} = #{new}"
-      return @connection.command "update #{id} #{operation} #{atributte} = #{new}"
+    def build_object(args={})
+      subject = nil
+      unless args.nil?
+        subject = Subject.new(:id => args["@rid"])
+        args.each do |var, val|
+          var_name = "@"+var
+          if subject.respond_to?(var) && var != 'highlights'
+            subject.instance_variable_set(var_name, val)
+          end
+        end
+      end
+      subject
     end
+
+    private
+
+    def odb_class
+      "Subject"
+    end
+
   end
 end
diff --git a/app/repositories/orient_db/user_repository.rb b/app/repositories/orient_db/user_repository.rb
index 28d930e8fe63de55ae83da66a0adc94188e25555..8068a3f257520146b9ee68607ad1773452c4dca3 100644
--- a/app/repositories/orient_db/user_repository.rb
+++ b/app/repositories/orient_db/user_repository.rb
@@ -24,5 +24,11 @@ module OrientDb
       (result.count > 0)
     end
 
+    private
+
+    def odb_class
+      "User"
+    end
+
   end
 end
diff --git a/app/repositories/orient_db/weblink_repository.rb b/app/repositories/orient_db/weblink_repository.rb
deleted file mode 100644
index 4141dc96de6761ccfe87e0d0e7da4d40c3691ff7..0000000000000000000000000000000000000000
--- a/app/repositories/orient_db/weblink_repository.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module OrientDb
-  class WeblinkRepository < Base
-
-    def find_all
-      connection.query "SELECT FROM WebLink"
-    end
-
-    def find_by_id(id)
-      connection.query "SELECT FROM WebLink where @rid = '#{id}'"
-    end
-
-    def insert_data (name,url)
-       connection.command "INSERT INTO WebLink (name,URL) VALUES ('#{name}','#{url}')"
-    end
-
-
-    def destroy_data(id)
-        return @connection.command "DELETE VERTEX WebLink where @rid = '#{id}'"
-      rescue
-        return nil
-    end
-
-  end
-end
diff --git a/app/repositories/repositories_proxy.rb b/app/repositories/repositories_proxy.rb
new file mode 100644
index 0000000000000000000000000000000000000000..3fdfe2cbe2e1cc077a3a16fc271f99194a17d1bf
--- /dev/null
+++ b/app/repositories/repositories_proxy.rb
@@ -0,0 +1,43 @@
+# This proxy will keep postgres and orientdb syncronized
+#   When some client call UserRepositoryProxy, it will delegate the missing methods for ActiveRecord User model
+module RepositoriesProxy
+
+  def learning_object_repository
+    application_repository.for(:learning_object)
+  end
+
+  def attribute_repository
+    application_repository.for(:attribute)
+  end
+
+  def subject_repository
+    application_repository.for(:subject)
+  end
+
+  def collection_repository
+    application_repository.for(:collection)
+  end
+
+  def institution_repository
+    application_repository.for(:institution)
+  end
+
+  def carousel_repository
+    application_repository.for(:carousel)
+  end
+
+  def main_page_repository
+    application_repository.for(:mainPage)
+  end
+
+  def user_repository
+    application_repository.for(:user)
+  end
+
+  private
+
+  def application_repository
+    Portalmec::Application.repository
+  end
+
+end
diff --git a/app/repositories/user_repository_proxy.rb b/app/repositories/user_repository_proxy.rb
index 94e18c596c39b2349b66304edb9fae371caa0bd8..27643d6e0d5d88182d8f86ba33e35e009557f805 100644
--- a/app/repositories/user_repository_proxy.rb
+++ b/app/repositories/user_repository_proxy.rb
@@ -24,6 +24,14 @@ class UserRepositoryProxy
     orientdb_user_repository.destroy_graph_node user
   end
 
+  def save(user)
+    user.save
+  end
+
+  def save!(user)
+    user.save!
+  end
+
   def method_missing(method_name, *arguments, &block)
     User.send(method_name, *arguments, &block)
   end
diff --git a/app/views/collections/_collection.html.erb b/app/views/collections/_collection.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..0688d28bd7fde662a155ec4953731a16b17c2685
--- /dev/null
+++ b/app/views/collections/_collection.html.erb
@@ -0,0 +1,5 @@
+<div class="row collections">
+  <h2><%= collection.title %></h2>
+
+  <p><%= collection_length collection %></p>
+</div>
\ No newline at end of file
diff --git a/app/views/collections/_create.html.erb b/app/views/collections/_create.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..cf67f6c19e68f176968fd05e7e54c15804fdd47b
--- /dev/null
+++ b/app/views/collections/_create.html.erb
@@ -0,0 +1,9 @@
+<a href="#" id="create_collection_popover">Criar coleção</a>
+
+<div id="create_collection_popover_content" style="display: none">
+  <%= render 'collections/form' %>
+</div>
+
+<div id="create_collection_popover_title" style="display: none">
+  Criar coleção
+</div>
\ No newline at end of file
diff --git a/app/views/collections/_form.html.erb b/app/views/collections/_form.html.erb
index 91c6545768704012706b4c7578b3534c7c2a7ef6..7330b0254f3ba93c7b437ec76db29a8ae8689ffb 100644
--- a/app/views/collections/_form.html.erb
+++ b/app/views/collections/_form.html.erb
@@ -1,17 +1,14 @@
-<%= form_for(@collection) do |f| %>
-  <% if @collection.errors.any? %>
-    <div id="error_explanation">
-      <h2><%= pluralize(@collection.errors.count, "error") %> prohibited this learning_object from being saved:</h2>
+<%= form_for @collection do |f| %>
 
-      <ul>
-      <% @collection.errors.full_messages.each do |message| %>
-        <li><%= message %></li>
-      <% end %>
-      </ul>
-    </div>
-  <% end %>
+    <%= f.label :title %>
+    <%= f.text_field :title, required: true, style: 'width: 250px;' %>
+
+    <%= f.label :privacy %>
+    <select name="collection[privacy]">
+      <option value="public">Público</option>
+      <option value="followers">Meus seguidores</option>
+      <option value="only_me">Somente eu</option>
+    </select>
 
-  <div class="actions">
     <%= f.submit %>
-  </div>
-<% end %>
+<% end %>
\ No newline at end of file
diff --git a/app/views/collections/edit.html.erb b/app/views/collections/edit.html.erb
deleted file mode 100644
index 6146cc3a11722b79aac7b51e2467f85d2e406c13..0000000000000000000000000000000000000000
--- a/app/views/collections/edit.html.erb
+++ /dev/null
@@ -1,6 +0,0 @@
-<h1>Editing Institution</h1>
-
-<%= render 'form' %>
-
-<%= link_to 'Show', @institution %> |
-<%= link_to 'Back', institutions_path %>
diff --git a/app/views/collections/index.html.erb b/app/views/collections/index.html.erb
index 68aebfd77d68d1e74c4b6af2e9ea566d8babac6a..17a6fc78e9ac25830ddafd57c38714d7c5ad5f93 100644
--- a/app/views/collections/index.html.erb
+++ b/app/views/collections/index.html.erb
@@ -1,229 +1,245 @@
 <h1>Coleções de Recursos</h1>
 
-<div class="row recommend-collections">
-  <h2>Recomendamos para você</h2>
-
-  <!-- item -->
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Compreensão oral</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
+<% if @collections.count == 0 %>
+    <div class="row no-collections">
+      <p>Nenhuma coleção foi criada, seja o primeiro!</p>
+    </div>
+<% else %>
+
+    <div class="row recommend-collections">
+      <h2>Recomendamos para você</h2>
+
+      <!-- item -->
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Compreensão oral</b></h4>
+
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
+          </div>
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
-    </div>
-  </div>
-  <!-- /item -->
-
-
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Educação Básica</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
+      <!-- /item -->
+
+
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Educação Básica</b></h4>
+
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
+          </div>
+
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
 
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
-    </div>
-  </div>
 
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Ensino Médio</b></h4>
 
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Ensino Médio</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
           </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
-        </div>
-      </div>
 
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
-    </div>
-  </div>
-</div>
-
-<div class="row newest-collections">
-  <h2>Últimas coleções</h2>
-
-  <!-- item -->
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Compreensão oral</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
     </div>
-  </div>
-  <!-- /item -->
-
 
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Educação Básica</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
+    <div class="row newest-collections">
+      <h2>Últimas coleções</h2>
+
+      <!-- item -->
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Compreensão oral</b></h4>
+
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
+          </div>
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
+        </div>
+      </div>
+      <!-- /item -->
+
+
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Educação Básica</b></h4>
+
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
+          </div>
+
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
 
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
-    </div>
-  </div>
 
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Ensino Médio</b></h4>
 
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Ensino Médio</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
           </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
-        </div>
-      </div>
 
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
-    </div>
-  </div>
-</div>
-
-<div class="row newest-collections">
-  <h2>Últimas coleções</h2>
-
-  <!-- item -->
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Compreensão oral</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
     </div>
-  </div>
-  <!-- /item -->
 
-
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Educação Básica</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
-          </div>
+    <div class="row newest-collections">
+      <h2>Últimas coleções</h2>
+
+      <!-- item -->
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Compreensão oral</b></h4>
+
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
+          </div>
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
+        </div>
+      </div>
+      <!-- /item -->
+
+
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Educação Básica</b></h4>
+
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
+          </div>
+
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
 
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
-    </div>
-  </div>
 
+      <div class="col-sm-4">
+        <div class="row">
+          <h4><b>Ensino Médio</b></h4>
 
-  <div class="col-sm-4">
-    <div class="row">
-      <h4><b>Ensino Médio</b></h4>
-      <div class="object-vertical">
-        <div class="panel">
-          <div>
-            <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
-          </div>
-          <div class="panel-body">
-            <h4 class="media-heading">Los derechos del animal (1)</h4>
-            <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-            <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
-            <span>Por <a>Usuário&nbsp;</a></span>
+          <div class="object-vertical">
+            <div class="panel">
+              <div>
+                <img src="http://dummyimage.com/250x150/363336/fff" alt="dummy image" class="img-responsive">
+              </div>
+              <div class="panel-body">
+                <h4 class="media-heading">Los derechos del animal (1)</h4>
+                <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
+                <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+                <span>Por <a>Usuário&nbsp;</a></span>
+              </div>
+            </div>
           </div>
+
+          <p>
+            <a href="#">Ver Mais</a>
+          </p>
         </div>
       </div>
-
-      <p>
-        <a href="#">Ver Mais</a>
-      </p>
     </div>
-  </div>
-</div>
\ No newline at end of file
+<% end %>
\ No newline at end of file
diff --git a/app/views/collections/new.html.erb b/app/views/collections/new.html.erb
deleted file mode 100644
index 75bb5679fb942a774c05f839b972258a94ad2610..0000000000000000000000000000000000000000
--- a/app/views/collections/new.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<h1>New Institution</h1>
-
-<%= render 'form' %>
-
-<%= link_to 'Back', institutions_path %>
diff --git a/app/views/learning_objects/_add_to_collection_btn.html.erb b/app/views/learning_objects/_add_to_collection_btn.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..1a51fc019d59cc3dbf46e704bf3a2c3bcbda3feb
--- /dev/null
+++ b/app/views/learning_objects/_add_to_collection_btn.html.erb
@@ -0,0 +1,13 @@
+<a href="#" id="add_to_collection">Adicionar as coleções</a>
+
+<div id="collections_list_popover" style="display: none">
+  <ul>
+    <% collections.each do |c| %>
+    <li><%= c.name %></li>
+    <% end %>
+  </ul>
+</div>
+
+<div id="collections_list_popover_title" style="display: none">
+  Adicione esse objeto a uma coleção
+</div>
\ No newline at end of file
diff --git a/app/views/learning_objects/_learning_object.erb b/app/views/learning_objects/_learning_object.erb
new file mode 100644
index 0000000000000000000000000000000000000000..db67c9c3b6b5b6f3e7e351ae921e2b7dbb388565
--- /dev/null
+++ b/app/views/learning_objects/_learning_object.erb
@@ -0,0 +1 @@
+<%= render_learning_object orientation, learning_object %>
diff --git a/app/views/learning_objects/_learning_object_horizontal.erb b/app/views/learning_objects/_learning_object_horizontal.erb
new file mode 100644
index 0000000000000000000000000000000000000000..20c78f620a324ae5f3b77b6d2de6539df7fd76ff
--- /dev/null
+++ b/app/views/learning_objects/_learning_object_horizontal.erb
@@ -0,0 +1,28 @@
+<div class="learning-object-horizontal">
+  <div class="media">
+    <div class="media-left media-middle">
+      <a href="#">
+        <img src="http://dummyimage.com/250x150/363336/fff" alt='dummy image'>
+      </a>
+    </div>
+    <div class="media-body">
+      <a href="<%= learning_object_path(id: learning_object.id) %>">
+        <% if learning_object.name.nil? %>
+            <h4 class="media-heading">Sem Título</h4>
+        <% else %>
+            <h4 class="media-heading"><%= learning_object.name %></h4>
+        <% end %>
+      </a>
+
+      <span>Por <a>Usuário&nbsp;</a></span><br/>
+      <span class="glyphicon glyphicon-eye-open"><%= learning_object.views %>&nbsp;</span>
+      <span class="glyphicon glyphicon-star"><%= learning_object.likes %>&nbsp;</span><br>
+      <% unless learning_object.description.nil? %>
+          <%= learning_object.description %>
+          <br/>
+      <% end %>
+      <br/>
+      Em<b> <%= show_categories learning_object.categories %></b>
+    </div>
+  </div>
+</div>
diff --git a/app/views/shared/application/_object_vertical.html.erb b/app/views/learning_objects/_learning_object_vertical.erb
similarity index 50%
rename from app/views/shared/application/_object_vertical.html.erb
rename to app/views/learning_objects/_learning_object_vertical.erb
index 8a4b66c025827a3d651e3e28869f32d58b3341b7..ff0bc2740338a08f42eda2dc7754a8732f515cbe 100644
--- a/app/views/shared/application/_object_vertical.html.erb
+++ b/app/views/learning_objects/_learning_object_vertical.erb
@@ -1,16 +1,16 @@
-<div class="object-vertical">
+<div class="learning-object-vertical">
   <div class="panel">
     <div>
       <img src="http://dummyimage.com/250x150/363336/fff" alt='dummy image' class="img-responsive">
     </div>
     <div class="panel-body">
-      <% if object.name.nil? %>
+      <% if learning_object.name.nil? %>
         <h4 class="media-heading">Sem Título</h4>
       <% else %>
-        <h4 class="media-heading"><%= object.name %></h4>
+        <h4 class="media-heading"><%= learning_object.name %></h4>
       <% end %>
-      <span class="glyphicon glyphicon-eye-open">200&nbsp;</span>
-      <span class="glyphicon glyphicon-star">4,5&nbsp;</span>
+      <span class="glyphicon glyphicon-eye-open"><%= learning_object.views %>&nbsp;</span>
+      <span class="glyphicon glyphicon-star"><%= learning_object.likes %>&nbsp;</span>
       <span>Por <a>Usuário&nbsp;</a></span>
     </div>
   </div>
diff --git a/app/views/management/carousels/_form.html.erb b/app/views/management/carousels/_form.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..9c4fa033325ca034ee30381bc9fdc017379a6001
--- /dev/null
+++ b/app/views/management/carousels/_form.html.erb
@@ -0,0 +1,41 @@
+<%= form_for([:management, @carousel], html: {class: 'ls-form row'}) do |f| %>
+
+    <% if @carousel.errors.any? %>
+        <div class="ls-alert-danger">
+          <h2><%= pluralize(@carousel.errors.count, "erro") %> <%= "happened".pluralize(@carousel.errors.count) %>:</h2>
+          <ul>
+            <% @carousel.errors.full_messages.each do |message| %>
+                <li><%= message %></li>
+            <% end %>
+          </ul>
+        </div>
+    <% end %>
+
+    <fieldset>
+      <label class="ls-label col-md-3">
+        <b class="ls-label-text">Título</b>
+
+        <p>Digite o titulo deste destaque</p>
+        <%= f.text_field :title, {required: true} %>
+      </label>
+      <label class="ls-label col-md-5">
+        <b class="ls-label-text">URL</b>
+
+        <p>Digite a URL que o usuário será redirecionado</p>
+        <%= f.url_field :url, {required: true} %>
+      </label>
+
+      <label class="ls-label col-md-5">
+        <b class="ls-label-text">Imagem</b>
+
+        <p>Escolha uma imagem para o destaque</p>
+        <%= f.file_field :image %>
+      </label>
+    </fieldset>
+
+    <div class="ls-actions-btn">
+      <button class="ls-btn">Salvar</button>
+      <%= link_to "Cancelar", management_carousels_path,class: "ls-btn-danger"%>
+    </div>
+
+<% end %>
diff --git a/app/views/management/carousels/edit.html.erb b/app/views/management/carousels/edit.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..e4195ad934da723acd597466b952f9b07b96a7b7
--- /dev/null
+++ b/app/views/management/carousels/edit.html.erb
@@ -0,0 +1,8 @@
+<h1 class="ls-title-intro ls-ico-users">Carousels</h1>
+
+<ol class="ls-breadcrumb">
+  <li><%= link_to 'Carousels', management_carousels_path %></li>
+  <li>Administrar</li>
+</ol>
+
+<%= render 'form' %>
diff --git a/app/views/management/carousels/index.html.erb b/app/views/management/carousels/index.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..7f36d3e0d777f652869e7cd9a40696d1f7ff0a99
--- /dev/null
+++ b/app/views/management/carousels/index.html.erb
@@ -0,0 +1,45 @@
+<h1 class="ls-title-intro ls-ico-users">Carousels</h1>
+
+<a href="<%= new_management_carousel_path %>" class="ls-btn-primary" aria-expanded="false" role="combobox">Cadastrar
+  novo</a>
+<table class="ls-table">
+  <thead>
+  <tr>
+    <th>
+      Imagem
+    </th>
+    <th>Título</th>
+    <th>
+      URL
+    </th>
+    <th>
+    </th>
+    <th></th>
+  </tr>
+  </thead>
+  <tbody>
+
+  <% @carousels.each do |c| %>
+      <tr>
+        <td>
+          <%= image_tag c.image.url(:thumbnail) %>
+        </td>
+
+        <td>
+          <%= c.title %>
+        </td>
+        <td>
+          <%= c.url %>
+        </td>
+
+        <td class="ls-txt-right ls-regroup">
+          <%= link_to 'Modificar', edit_management_carousel_path(c) %>
+        </td>
+        <td>
+          <%= link_to 'Excluir', management_carousel_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-color-danger', role: 'option'} %>
+        </td>
+      </tr>
+  <% end %>
+
+  </tbody>
+</table>
diff --git a/app/views/management/carousels/new.html.erb b/app/views/management/carousels/new.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..5cac49569c1a8729509a601370ed1d1bc9bfc4f7
--- /dev/null
+++ b/app/views/management/carousels/new.html.erb
@@ -0,0 +1,8 @@
+<h1 class="ls-title-intro ls-ico-users">Usuários</h1>
+
+<ol class="ls-breadcrumb">
+  <li><a href="#">Usuários</a></li>
+  <li>Novo usuário</li>
+</ol>
+
+<%= render 'form' %>
\ No newline at end of file
diff --git a/app/views/management/highlights/_form_delete.html.erb b/app/views/management/highlights/_form_delete.html.erb
deleted file mode 100644
index 58312ed0bc411e780c6fc336fcdda0084da9717f..0000000000000000000000000000000000000000
--- a/app/views/management/highlights/_form_delete.html.erb
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<body>
-
-<div>
-  <class="ls-info-header">
-  <class="ls-title-2"><h3>Remover destaque</h3><br>
-
-
-
-  <%= form_tag(:action => "destroy", :method => "get") do %>
-    <fieldset>
-<!-- Exemplo com Radio button -->
-    <div class="ls-label col-md-5">
-      <p>Escolha os destaques a remover:</p>
-      <% @highlights.each do |highlight| %>
-        <label class="ls-label-text">
-          <input type="checkbox" name="id[]" value= <%= highlight['@rid'] %>>
-            <%= highlight['name'] %>
-          </label>
-      <%end%>
-    </div>
-  </fieldset>
-
-
-  <div class="ls-actions-btn">
-    <%= submit_tag "Salvar", class: "ls-btn" %>
-    <%= link_to "Cancelar", management_highlights_index_path, class: "ls-btn-danger" %>
-  </div>
-  <%end%>
-</div>
-
-
-</body>
diff --git a/app/views/management/highlights/_form_new.html.erb b/app/views/management/highlights/_form_new.html.erb
deleted file mode 100644
index ad4e8e5092da2ff313ebd84d61f3854f5e521879..0000000000000000000000000000000000000000
--- a/app/views/management/highlights/_form_new.html.erb
+++ /dev/null
@@ -1,43 +0,0 @@
-<body>
-  <div>
-    <!--
-    <class="ls-info-header">
-    <class="ls-title-2"><h3>Adicionar destaque</h3><br>
-
-    <form action="" class="ls-form row">
-    <fieldset>
-      <label class="ls-label col-md-3">
-        <b class="ls-label-text">Título</b>
-        <p>Digite o título do destaque</p>
-        <input type="text" name="name" placeholder="Título" required >
-      </label>
-      <label class="ls-label col-md-4">
-        <b class="ls-label-text">URL</b>
-        <p>Cole a url do destaque no portal</p>
-        <input type="url" name="url" placeholder="URL do destaque no portal" required >
-      </label>
-
-    </fieldset>
-  </form>
--->
-
-
-
-  <%= form_tag( :action => "create", method: "post") do %>
-      <%= label_tag :name, "Título do destaque"  %><br><br>
-      <%= text_field_tag :name,'', placeholder: "título  " %>
-      <br><br><br>
-
-      <%= label_tag :url, "URL da coleção no portal" %><br><br>
-      <%= text_field_tag :url, '', placeholder: "url" %>
-      <%= submit_tag "Salvar", class: "ls-btn" %>
-
-  <% end %>
-
-
-<div class="ls-actions-btn">
-
-  <%= link_to "Cancelar", management_highlights_index_path, class: "ls-btn-danger" %>
-
-</div>
-</body>
diff --git a/app/views/management/highlights/delete.html.erb b/app/views/management/highlights/delete.html.erb
deleted file mode 100644
index d1a58f61228d1a95c4808227b39ce450e7f9f6cc..0000000000000000000000000000000000000000
--- a/app/views/management/highlights/delete.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<ol class="ls-breadcrumb">
-  <li><%= link_to  "Início", management_root_path %></li>
-  <li><%= link_to  "Destaques", management_highlights_index_path %></li>
-  <li> Remover </li>
-</ol>
-<br>
-
-<%= render 'form_delete' %>
diff --git a/app/views/management/highlights/index.html.erb b/app/views/management/highlights/index.html.erb
deleted file mode 100644
index 36865eb4f5d4c001462b1fc26df0c992d3d85ac0..0000000000000000000000000000000000000000
--- a/app/views/management/highlights/index.html.erb
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-<ol class="ls-breadcrumb">
-  <li><%= link_to  "Início", management_root_path %></li>
-  <li> Destaques </li>
-</ol>
-<br>
-
-<div>
-  <header class="ls-info-header">
-    <h2 class="ls-title-3">Destaques</h2>
-    <p class="ls-float-right ls-float-none-xs ls-small-info"> <strong><%= Date.today.to_s %></strong></p>
-  </header>
-
-</div>
-
-
-
-
-      <div class="ls-list-title ">
-        <b>Destaques atuais no carrosel:</b>
-      </div>
-      <div class="ls-list-description">
-        <ul>
-          <% if @highlights.present? %>
-            <% @highlights.each do |highlight| %>
-              <br>
-              <li> <%= highlight['name'] %></li>
-          <% end %>
-          <% else %>
-          <li>
-            Não existe nenhuma destaque ainda.
-          </li>
-        <%end%>
-        </ul>
-      </div>
-
-
-
-<br><br><br>
-<%= link_to "Adicionar destaques", management_highlights_new_path, class: "ls-btn ls-btn-lg" %>
-
-
-<%= link_to "Remover destaques", management_highlights_delete_path, class: "ls-btn ls-btn-lg" %>
diff --git a/app/views/management/highlights/new.html.erb b/app/views/management/highlights/new.html.erb
deleted file mode 100644
index 9356f7932651a572f51416b85b2d8b48e9978c02..0000000000000000000000000000000000000000
--- a/app/views/management/highlights/new.html.erb
+++ /dev/null
@@ -1,8 +0,0 @@
-<ol class="ls-breadcrumb">
-  <li><%= link_to  "Início", management_root_path %></li>
-  <li><%= link_to  "Destaques", management_highlights_index_path %></li>
-  <li> Novo </li>
-</ol>
-<br>
-
-<%= render 'form_new' %>
diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb
index 30d1d8d357007af118e561ce7455aefa588c9db4..46f39ee39908c84a87445daf64decea7d72434ff 100644
--- a/app/views/search/index.html.erb
+++ b/app/views/search/index.html.erb
@@ -1,24 +1,24 @@
 <script type="text/javascript">
-  $(document).ready(function() {
-    $(".select-tag-container").select2();
+    $(document).ready(function () {
+        $(".select-tag-container").select2();
 
-    var runDropdown = function(element) {
-      if ($(element).next().is(':hidden')) {
-        $('> .caret', element).addClass('caret-up');
-        $(element).next().slideDown();
-      }
-      else {
-        $('> .caret', element).removeClass('caret-up');
-        $(element).next().slideUp();
-      }
-    };
+        var runDropdown = function (element) {
+            if ($(element).next().is(':hidden')) {
+                $('> .caret', element).addClass('caret-up');
+                $(element).next().slideDown();
+            }
+            else {
+                $('> .caret', element).removeClass('caret-up');
+                $(element).next().slideUp();
+            }
+        };
 
-    runDropdown($('#nestedAccordion .dropdown'));
+        runDropdown($('#nestedAccordion .dropdown'));
 
-    $('#nestedAccordion .dropdown').click(function () {
-      runDropdown(this);
+        $('#nestedAccordion .dropdown').click(function () {
+            runDropdown(this);
+        });
     });
-  });
 </script>
 
 <div class="row">
@@ -35,9 +35,11 @@
     </div> -->
 
     <div id="nestedAccordion">
-      <h3 class="dropdown">Matérias<span class="caret caret-align-right" /></h3>
-      <div class='aberto'>
-        <h4 class="dropdown">Matemática<span class="caret caret-align-right" /></h4>
+      <h3 class="dropdown open">Matérias<span class="caret caret-align-right"/></h3>
+
+      <div class="dropdown-element">
+        <h4 class="dropdown">Matemática<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -51,7 +53,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">Biologia<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">Biologia<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -64,7 +67,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">História<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">História<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -77,7 +81,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">Língua Portuguesa<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">Língua Portuguesa<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -90,7 +95,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">Geografia<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">Geografia<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -103,7 +109,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">Ciências<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">Ciências<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -116,7 +123,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">Educação Física<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">Educação Física<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -129,7 +137,8 @@
             </optgroup>
           </select>
         </div>
-        <h4 class="dropdown">Inglês<span class="caret caret-align-right" /></h4>
+        <h4 class="dropdown">Inglês<span class="caret caret-align-right"/></h4>
+
         <div>
           <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
@@ -142,12 +151,13 @@
             </optgroup>
           </select>
         </div>
-      </div><!--fim materias -->
-      <h3 class="dropdown">Conteúdo<span class="caret caret-align-right" /></h3><!--Tipo 1-->
-      <div class='aberto'>
+      </div>
+      <!--fim materias -->
+      <h3 class="dropdown open">Conteúdo<span class="caret caret-align-right"/></h3><!--Tipo 1-->
+      <div class="dropdown-element">
         <table class="tipo1" style="width:100%">
           <tr>
-            <td><p>Mídia</p> </td>
+            <td><p>Mídia</p></td>
             <td></td>
           </tr>
           <tr>
@@ -251,8 +261,9 @@
               <input type="checkbox">Planos de Aula
             </div>
         </div> -->
-      <h3 class="dropdown">Ano escolar<span class="caret caret-align-right" /></h3>
-      <div>
+      <h3 class="dropdown">Ano escolar<span class="caret caret-align-right"/></h3>
+
+      <div class="dropdown-element">
         <table style="width:100%">
           <tr>
             <td><input type="checkbox">1º</td>
@@ -272,20 +283,23 @@
           </tr>
         </table>
       </div>
-      <h3 class="dropdown">Ano de Publicação<span class="caret caret-align-right" /></h3>
-      <div>
+      <h3 class="dropdown">Ano de Publicação<span class="caret caret-align-right"/></h3>
+
+      <div class="dropdown-element">
         <input type="radio" name="ano" value="single" checked>Ano:<br/>
         <input type="text" name="ano1" size="8">
         <br/>
         <input type="radio" name="ano" value="range">Intervalo:<br/>
         <input type="text" name="ano2" size="8"> - <input type="text" name="ano2" size="8">
       </div>
-    </div><!-- fim div id="nestedAccordion"-->
+    </div>
+    <!-- fim div id="nestedAccordion"-->
 
     <div id="nestedAccordion">
-      <h3 class="dropdown">Pesquisa Avançada<span class="caret caret-align-right" /></h3>
+      <h3 class="dropdown">Pesquisa Avançada<span class="caret caret-align-right"/></h3>
+
       <form method="get">
-        <div>
+        <div class="dropdown-element">
           <table style="width:100%">
             <tr>
               <td>Todas estas palavras:</td>
@@ -305,51 +319,55 @@
             </tr>
             <tr>
               <td></td>
-              <td align="right"><br><button type="submit" class="btn btn-default">Pesquisar</button></td>
+              <td align="right"><br>
+                <button type="submit" class="btn btn-default">Pesquisar</button>
+              </td>
             </tr>
           </table>
         </div>
       </form>
     </div>
-  </div><!--/span col sm-4-->
+  </div>
+  <!--/span col sm-4-->
 
   <!-- search results -->
   <div class="col-sm-8">
     <% unless @results.empty? %>
-        <h4>Objetos encontrados: <%= @numFound %></h4>
-        <nav class="navbar navbar-default">
-          <div class="container-fluid" >
-            Mostrando resultados <%= @start+1 %>-<%= if (@start+@npagnac) > @numFound then @numFound else (@npagnac+@start) end %> de <%= @numFound %>
-            <form method="get">
-              <input type="hidden" name="qry" value="<%=params["qry"]%>">
+        <div>
+          Mostrando resultados <%= @start+1 %>-<%= if (@start+@npagnac) > @numFound then
+                                                     @numFound
+                                                   else
+                                                     (@npagnac+@start)
+                                                   end %> de <%= @numFound %>
+          <form method="get">
+            <input type="hidden" name="qry" value="<%= params["qry"] %>">
 
-              <select name="paginacao" onchange='this.form.submit()'>
-                <option value="<%=@npagnac%>">Resultados por Página</option>
-                <option value="10">10</option>
-                <option value="25">25</option>
-                <option value="50">50</option>
-              </select>
+            <select name="paginacao" onchange='this.form.submit()'>
+              <option value="<%= @npagnac %>">Resultados por Página</option>
+              <option value="10">10</option>
+              <option value="25">25</option>
+              <option value="50">50</option>
+            </select>
+
+            <select name="sort" onchange='this.form.submit()'>
+              <option value=<%= @ordena %>>Ordenar por</option>
+              <option value="author">Autores</option>
+              <option value="publicationasc">Mais novos</option>
+              <option value="publicationdesc">Mais velhos</option>
+              <option value="relevance">Relevância</option>
+              <option value="type">Tipo</option>
+              <option value="title">Título</option>
+            </select>
+          </form>
+          <br/>
+        </div>
+        <br/>
 
-              <select name="sort" onchange='this.form.submit()'>
-                <option value=<%=@ordena%>>Ordenar por</option>
-                <option value="author">Autores</option>
-                <option value="publicationasc">Mais novos</option>
-                <option value="publicationdesc">Mais velhos</option>
-                <option value="relevance">Relevância</option>
-                <option value="type">Tipo</option>
-                <option value="title">Título</option>
-              </select>
-            </form>
-          </div>
-        </nav>
-        <br />
         <div class="container-fluid">
-          <%= will_paginate @results %>
-          <% @results.each do |o| %>
-              <%= render partial: "shared/application/object_tag", locals: {obj: o} %>
-          <% end %>
+          <%= render @results, orientation: "horizontal" %>
           <%= will_paginate @results %>
         </div>
     <% end %>
-  </div><!-- col-sm-8 -->
+  </div>
+  <!-- col-sm-8 -->
 </div><!-- /container -->
diff --git a/app/views/shared/application/_header.html.erb b/app/views/shared/application/_header.html.erb
index 81a44137b95d79115859210d4afa93c880e1f3f3..0936cdd336eb45b8b6955f85b302eb5ca5798356 100644
--- a/app/views/shared/application/_header.html.erb
+++ b/app/views/shared/application/_header.html.erb
@@ -2,10 +2,14 @@
   <div class="barra-brasil">
     <div class="container">
       <div id="barra-brasil">
-      	<ul id="menu-barra-temp" style="list-style:none;">
-      		<li style="display:inline; float:left;padding-right:10px; margin-right:10px; border-right:1px solid #EDEDED"><a href="http://brasil.gov.br" style="font-family:sans,sans-serif; text-decoration:none; color:white;">Portal do Governo Brasileiro</a></li>
-      		<li><a style="font-family:sans,sans-serif; text-decoration:none; color:white;" href="http://epwg.governoeletronico.gov.br/barra/atualize.html">Atualize sua Barra de Governo</a></li>
-      	</ul>
+        <ul id="menu-barra-temp" style="list-style:none;">
+          <li style="display:inline; float:left;padding-right:10px; margin-right:10px; border-right:1px solid #EDEDED">
+            <a href="http://brasil.gov.br" style="font-family:sans,sans-serif; text-decoration:none; color:white;">Portal
+              do Governo Brasileiro</a></li>
+          <li>
+            <a style="font-family:sans,sans-serif; text-decoration:none; color:white;" href="http://epwg.governoeletronico.gov.br/barra/atualize.html">Atualize
+              sua Barra de Governo</a></li>
+        </ul>
       </div>
     </div>
   </div>
@@ -13,23 +17,28 @@
   <div class="search-bar">
     <div class="container">
       <div class="row">
-        <div class="col-md-3 logo-text">
-          <%= link_to root_path do %>
-              CONTEÚDO<br>EDUCACIONAL
-          <% end %>
+        <div class="col-md-3 logo-container">
+          <div class="logo">
+            <%= link_to root_path do %>
+                <%= image_tag image_path("logo.png"), class: "logo-image" %><br/>
+
+                <h3>CONTEÚDO EDUCACIONAL</h3>
+            <% end %>
+          </div>
         </div>
 
         <div class="col-md-6">
           <div class="search-accessibility">
-            <%= image_tag 'fonte_mais.png', onclick: 'resizeText(1)' %>&nbsp;&nbsp;
-            <%= image_tag 'fonte_inicial.png', onclick: 'resizeText(0)' %>&nbsp;&nbsp;
-            <%= image_tag 'fonte_menos.png', onclick: 'resizeText(-1)' %>&nbsp;&nbsp;
-            <%= image_tag 'contraste.png', onclick: 'changeContrast()' %>
+            <%= image_tag 'fonte_mais.png', onclick: 'fontSize.resizeText(1)' %>&nbsp;&nbsp;
+            <%= image_tag 'fonte_inicial.png', onclick: 'fontSize.resizeText(0)' %>&nbsp;&nbsp;
+            <%= image_tag 'fonte_menos.png', onclick: 'fontSize.resizeText(-1)' %>&nbsp;&nbsp;
+            <%= image_tag 'contraste.png', onclick: 'contrast.change()' %>
           </div>
           <div class="search-input">
             <form action="/search" method="get">
               <div class="input-group" id="search">
                 <input type="text" placeholder="buscar" class="form-control" name="qry">
+
                 <div class="input-group-btn">
                   <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
                 </div>
@@ -41,24 +50,24 @@
 
         <div class="col-md-3 status-text">
           <% if user_signed_in? %>
-            <div class="media">
-              <div class="media-body">
-                <h4 class="media-heading"><%= link_to current_user.name.split(" ").first, edit_user_registration_path %></h4>
-                <%= link_to 'sair', destroy_user_session_path, method: 'delete', class: "quit-link" %>
-              </div>
-              <div class="media-right">
-                <a href="#">
-                  <img class="circular-image" src="<%= current_user.avatar.url(:thumb) %>" alt="Foto do usuário"/>
-                </a>
+              <div class="media">
+                <div class="media-body">
+                  <h2 class="media-heading"><%= link_to current_user.name.split(" ").first, edit_user_registration_path %></h2>
+                  <h4><%= link_to 'sair', destroy_user_session_path, method: 'delete', class: "quit-link" %></h4>
+                </div>
+                <div class="media-right">
+                  <a href="#">
+                    <img class="user-image" src="<%= current_user.avatar.url(:thumb) %>" alt="Foto do usuário"/>
+                  </a>
+                </div>
               </div>
-            </div>
           <% else %>
-            <div class="media">
-              <div class="media-body">
-                <h4 class="media-heading"><%= link_to 'entre', new_user_session_path %></h4>
-                ou <%= link_to 'cadastre-se', new_user_registration_path, class: "register-link" %>
+              <div class="media">
+                <div class="media-body">
+                  <h2 class="media-heading"><%= link_to 'entre', new_user_session_path %></h2>
+                  <h4>ou <%= link_to 'cadastre-se', new_user_registration_path, class: "register-link" %></h4>
+                </div>
               </div>
-            </div>
           <% end %>
         </div>
       </div>
@@ -69,10 +78,11 @@
     <div class="container">
       <div class="row">
         <ul class="nav navbar-nav">
-          <li class="nav-button nav-button-first"><%= link_to 'Assuntos' %></li>
+          <li class="nav-button nav-button-first"><h3><%= link_to 'Assuntos' %></h3></li>
           <li role="separator" class="divider"></li>
           <li class="dropdown nav-button">
-            <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">Níveis de Ensino&nbsp;<span class="caret" /></a>
+            <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">Níveis de
+              Ensino&nbsp;<span class="caret"/></a>
             <ul class="dropdown-menu">
               <li>
                 <div class="row" style="width: 400px;">
@@ -101,10 +111,44 @@
             </ul>
           </li>
           <li role="separator" class="divider"></li>
-          <li class="nav-button"><%= link_to 'FAQ', faq_path %></li>
+          <li class="nav-button"><h3><%= link_to 'FAQ', faq_path %></h3></li>
           <li role="separator" class="divider"></li>
-          <li class="nav-button"><%= link_to 'Contato', contact_path %></li>
+          <li class="nav-button"><h3><%= link_to 'Contato', contact_path %></h3></li>
           <li role="separator" class="divider"></li>
+          <li class="dropdown nav-button">
+            <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">Links
+              úteis&nbsp;<span class="caret"/></a>
+            <ul class="dropdown-menu">
+              <li>
+                <div class="row" style="width: 400px;">
+                  <ul class="list-unstyled col-md-6 col-md-offset-1">
+                    <li><b>Portais nacionais e internacionais</b></li>
+                    <li role="separator" class="divider"></li>
+                    <li><a href="">Portais Educacionais</a></li>
+                    <li><a href="">Museus</a></li>
+                    <li><a href="">Bibliotecas</a></li>
+                    <li><a href="">Revistas</a></li>
+                    <li><a href="">Projetos Inovadores</a></li>
+                    <li><a href="">Jornais</a></li>
+                    <li><a href="">Projeto de escolas</a></li>
+                    <li><a href="">Um computador por aluno</a></li>
+                    <li><a href="">Geoprocessamento</a></li>
+                    <li><a href="">Prêmio Professores do Brasil</a></li>
+                    <li><a href="">Capacitação ProInfo Integrado</a></li>
+                  </ul>
+                  <ul class="list-unstyled col-md-5">
+                    <li><b>Visite também</b></li>
+                    <li role="separator" class="divider"></li>
+                    <li><a href="">Domínio Público</a></li>
+                    <li><a href="">E-ProInfo</a></li>
+                    <li><a href="">Objetos Educacionais</a></li>
+                    <li><a href="">Plataforma Freire</a></li>
+                    <li><a href="">TV Escola</a></li>
+                  </ul>
+                </div>
+              </li>
+            </ul>
+          </li>
         </ul>
       </div>
     </div>
diff --git a/app/views/shared/application/_object_horizontal.html.erb b/app/views/shared/application/_object_horizontal.html.erb
deleted file mode 100644
index c1793e23a0fce3830b385ad18f4f37c2ccdc2d05..0000000000000000000000000000000000000000
--- a/app/views/shared/application/_object_horizontal.html.erb
+++ /dev/null
@@ -1,25 +0,0 @@
-<div class="object-horizontal">
-  <div class="media">
-    <div class="media-left media-middle">
-      <a href="#">
-        <img src="http://dummyimage.com/250x150/363336/fff" alt='dummy image'>
-      </a>
-    </div>
-    <div class="media-body">
-      <% if object.name.nil? %>
-        <h4 class="media-heading">Sem Título</h4>
-      <% else %>
-        <h4 class="media-heading"><%= object.name %></h4>
-      <% end %>
-      <span>Por <a>Usuário&nbsp;</a></span><br/>
-      <span class="glyphicon glyphicon-eye-open"><%= object.views %>&nbsp;</span>
-      <span class="glyphicon glyphicon-star"><%= object.likes %>&nbsp;</span><br>
-      <% unless object.description.nil? %>
-        <%= object.description %>
-        <br/>
-      <% end %>
-      <br/>
-      Em<b> Biologia</b>, <b>Biologia Marinha</b>
-    </div>
-  </div>
-</div>
diff --git a/app/views/shared/application/_object_single.html.erb b/app/views/shared/application/_object_single.html.erb
deleted file mode 100644
index 27de179726caf4aa86256bd361cadf7f76e49fc9..0000000000000000000000000000000000000000
--- a/app/views/shared/application/_object_single.html.erb
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--<%=debug obj%>-->
-
-<div class="row">
-      <div class="col-sm-3">
-        <a href="app/assets/images/logo.png" class="thumbnail">
-          <p><% unless obj["title"].nil? %>
-              <p><%= obj["title"][0] %></p>
-              <% end %>
-          </p>
-        <!--  <%= link_to image_tag("logo.png", :class => "img-responsive"), :class => "thumbnail" %><img src="app/assets/images/logo.png" alt="" width="284" height="213">-->
-        <%= image_tag("logo.png") %>
-        </a>
-      </div>
-      <div class="col-sm-9">
-          <div class="col-sm-12">
-            <% unless obj["dc.description"].nil? %>
-              <%= obj["dc.description"][0] %>
-            <% end %>
-          </div>
-          <div class="col-sm-12">
-            <div align="right"><%= link_to "Ver mais...", learning_object_path(obj["search.resourceid"]), :class => "btn btn-primary" %></div>
-          <br/>
-          <table class="table ">
-            <tr>
-              <td class="stars">Avaliações:</td><td>Postado por:</td><td class="visualis">Visualizações:</td>
-            </tr>
-            <tr>
-              <td>
-              <span class="starRating">
-                <input id="rating5" type="radio" name="rating" value="5" disabled>
-                <label for="rating5">5</label>
-                <input id="rating4" type="radio" name="rating" value="4" checked disabled>
-                <label for="rating4">4</label>
-                <input id="rating3" type="radio" name="rating" value="3" disabled>
-                <label for="rating3">3</label>
-                <input id="rating2" type="radio" name="rating" value="2" disabled>
-                <label for="rating2">2</label>
-                <input id="rating1" type="radio" name="rating" value="1" disabled>
-                <label for="rating1">1</label>
-              </span>
-              ()
-            </td>
-            <td><%= link_to obj["author"][0] %> Há ... anos</td>
-            <td>333</td>
-          </tr>
-        </table>
-      </div>
-      </div>
-    </div>
diff --git a/app/views/shared/application/_object_tag.html.erb b/app/views/shared/application/_object_tag.html.erb
deleted file mode 100644
index c117569976df7ec75f87225f39877e2f6252d65c..0000000000000000000000000000000000000000
--- a/app/views/shared/application/_object_tag.html.erb
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--<%=debug obj%>-->
-
-<div class="row">
-      <div class="col-sm-3">
-        <a href="app/assets/images/logo.png" class="thumbnail">
-          <p><%= obj.name %></p>
-        <!--  <%= link_to image_tag("logo.png", :class => "img-responsive"), :class => "thumbnail" %><img src="app/assets/images/logo.png" alt="" width="284" height="213">-->
-        <%= image_tag("logo.png") %>
-        </a>
-      </div>
-      <div class="col-sm-9">
-          <div class="col-sm-12">
-            <%= obj.description %>
-          </div>
-          <div class="col-sm-12">
-            <div align="right"><%= link_to "Ver mais...", learning_object_path(obj.id_dspace), :class => "btn btn-primary" %></div>
-          <br/>
-          <table class="table ">
-            <tr>
-              <td class="stars">Avaliações:</td><td>Postado por:</td><td class="visualis">Visualizações:</td>
-            </tr>
-            <tr>
-              <td>
-              <span class="starRating">
-                <input id="rating5" type="radio" name="rating" value="5" disabled>
-                <label for="rating5">5</label>
-                <input id="rating4" type="radio" name="rating" value="4" checked disabled>
-                <label for="rating4">4</label>
-                <input id="rating3" type="radio" name="rating" value="3" disabled>
-                <label for="rating3">3</label>
-                <input id="rating2" type="radio" name="rating" value="2" disabled>
-                <label for="rating2">2</label>
-                <input id="rating1" type="radio" name="rating" value="1" disabled>
-                <label for="rating1">1</label>
-              </span>
-              ()
-            </td>
-            <td><%= link_to "<<Autor>>" %> Há ... anos</td>
-            <td><%= obj.views %></td>
-          </tr>
-        </table>
-      </div>
-      </div>
-    </div>
diff --git a/app/views/shared/management/_nav_menu.html.erb b/app/views/shared/management/_nav_menu.html.erb
index 3b8b8e725bf19176df73c3708fbb023960be7485..d0d4771c0081723c44365d60045adc66b0270470 100644
--- a/app/views/shared/management/_nav_menu.html.erb
+++ b/app/views/shared/management/_nav_menu.html.erb
@@ -1,17 +1,17 @@
 <nav class="ls-menu">
   <ul>
     <li><%= link_to "Início", management_root_path, class: 'ls-ico-home' %></li>
-    <li><%= link_to "Objetos em destaque", management_highlights_path, class: 'ls-ico-star' %>
+    <li><%= link_to "Objetos em destaque", management_carousels_path, class: 'ls-ico-star' %>
     <li>
 
     <li class="ls-submenu">
       <a href="#" class="ls-ico-stats">Estatísticas</a>
       <ul role="menu">
-        <li><%= link_to "Geral", management_index_statistics_path, class: 'ls-submenu-item' %></li>
-        <li><%= link_to "Usuários", management_users_statistics_path, class: 'ls-submenu-item' %></li>
-        <li><%= link_to "Coleções", management_collections_statistics_path, class: 'ls-submenu-item' %></li>
-        <li><%= link_to "Downloads", management_downloads_statistics_path, class: 'ls-submenu-item' %></li>
-        <li><%= link_to "Acessos", management_accesses_statistics_path, class: 'ls-submenu-item' %></li>
+        <li><%= link_to "Geral", management_statistics_path, class: 'ls-submenu-item' %></li>
+        <li><%= link_to "Usuários", users_management_statistics_path, class: 'ls-submenu-item' %></li>
+        <li><%= link_to "Coleções", collections_management_statistics_path, class: 'ls-submenu-item' %></li>
+        <li><%= link_to "Downloads", downloads_management_statistics_path, class: 'ls-submenu-item' %></li>
+        <li><%= link_to "Acessos", accesses_management_statistics_path, class: 'ls-submenu-item' %></li>
       </ul>
     </li>
     <li class="ls-submenu">
@@ -25,4 +25,4 @@
     <li><%= link_to "Denúncias", '#', class: 'ls-ico-bullhorn' %>
     <li>
   </ul>
-</nav>
\ No newline at end of file
+</nav>
diff --git a/app/views/shared/management/_user_account.html.erb b/app/views/shared/management/_user_account.html.erb
index 6fc0661f8492d67f5b0d11b9e67ec1664982416e..1dcf6fd40effd41a70b48bebd0b2afec2705aa59 100644
--- a/app/views/shared/management/_user_account.html.erb
+++ b/app/views/shared/management/_user_account.html.erb
@@ -1,7 +1,6 @@
 <div data-ls-module="dropdown" class="ls-dropdown ls-user-account">
   <a href="#" class="ls-ico-user">
-    Carlos Marques
-    <small>(lstyle)</small>
+    <%= current_user.name || current_user.email %>
   </a>
   <nav class="ls-dropdown-nav ls-user-menu">
     <ul>
diff --git a/app/views/subjects/index.html.erb b/app/views/subjects/index.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..5d16dbd2375c44be23f42257dde4a1820dd12fc4
--- /dev/null
+++ b/app/views/subjects/index.html.erb
@@ -0,0 +1,8 @@
+<p id="notice"><%= notice %></p>
+
+<h1>Listing Subject</h1>
+
+
+<%for subject in @subjects%>
+    <%= render 'shared/application/object_vertical', object: subject %>
+<%end%>
diff --git a/app/views/subjects/show.html.erb b/app/views/subjects/show.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..d3c806d7f6dada08241f3860aaeedf6d3fa844d8
--- /dev/null
+++ b/app/views/subjects/show.html.erb
@@ -0,0 +1 @@
+<h1><%= @subject.name %></h1>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..e915c351cd710310db12b2195ba69ee0ef6ba67a
--- /dev/null
+++ b/app/views/users/show.html.erb
@@ -0,0 +1,85 @@
+<div class="row">
+  <div class="user-header">
+    <div class="col-md-6">
+      <div class="media">
+        <div class="media-left">
+          <a href="#">
+            <img class="user-image" src="<%= image_path("user-anon.png") %>" alt="Foto do usuário">
+          </a>
+        </div>
+        <div class="media-body">
+          <h4 class="media-heading">Usuário</h4>
+          <span>nome da instituição</span>
+
+          <p>
+            x items
+          </p>
+        </div>
+      </div>
+    </div>
+    <div class="col-md-6 right-column">
+      <button type="button" class="btn btn-default">Seguir</button>
+    </div>
+  </div>
+
+  <div class="user-files">
+    <div class="row">
+      <div class="col-md-6">
+        <div class="media">
+          <div class="media-body">
+            <h4 class="media-heading">Arquivos do usuário</h4>
+
+            <p>
+              x items
+            </p>
+          </div>
+        </div>
+      </div>
+      <div class="col-md-6 right-column">
+      </div>
+    </div>
+
+    <div class="row learning-object-columns">
+      <%= render @objects[0], orientation: "vertical" %>
+      <%= render @objects[1], orientation: "vertical" %>
+      <%= render @objects[2], orientation: "vertical" %>
+      <%= render @objects[0], orientation: "vertical" %>
+      <%= render @objects[1], orientation: "vertical" %>
+      <%= render @objects[2], orientation: "vertical" %>
+    </div>
+  </div>
+</div>
+
+
+<div class="row">
+  <div class="user-collections">
+    <div class="row">
+      <div class="col-md-6">
+        <div class="media">
+          <div class="media-body">
+            <h4 class="media-heading">Coleções</h4>
+
+            <p>
+              x items
+            </p>
+          </div>
+        </div>
+      </div>
+      <div class="col-md-6 right-column">
+      </div>
+    </div>
+
+    <div class="row learning-object-columns">
+      <%= render @objects[0], orientation: "vertical" %>
+      <%= render @objects[1], orientation: "vertical" %>
+      <%= render @objects[2], orientation: "vertical" %>
+      <%= render @objects[0], orientation: "vertical" %>
+      <%= render @objects[1], orientation: "vertical" %>
+      <%= render @objects[2], orientation: "vertical" %>
+    </div>
+  </div>
+</div>
+
+<div class="row">
+  <%= render 'collections/create' %>
+</div>
diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb
index 7275f6c893bc8910c135648718c276c2d379aeef..61f5baf9c874a36a4b2bfd853eef62a6269791ce 100644
--- a/app/views/welcome/index.html.erb
+++ b/app/views/welcome/index.html.erb
@@ -23,12 +23,11 @@
                 <% highlight_class="item" %>
               <% end %>
             <div class="<%= highlight_class %>">
-              <%= image_tag 'mecshow_logo.jpg'%>
+              <%= image_tag highlight.image.url(:larger) %>
               <div class="container">
                 <div class="carousel-caption">
-                  <h1><%= highlight['title'] %></h1>
-                  <p id="carrousel-new-description"><%= highlight['description'] %> </p>
-                  <p><a class="btn btn-lg btn-primary" href=<%= highlight['URL'] %> role="button">Mais informações</a></p>
+                  <h1><%= highlight.title %></h1>
+                  <p><a class="btn btn-lg btn-primary" href=<%= highlight.url %> role="button">Mais informações</a></p>
                 </div>
               </div>
             </div>
@@ -49,9 +48,7 @@
       <% if @General.present? %>
       <ul class="list-unstyled">
         <h2>Destaques</h2>
-          <% @General.each do |object| %>
-            <%= render 'shared/application/object_horizontal', object: object  %>
-          <% end %>
+          <%= render @General, orientation: 'horizontal'  %>
         <% end %>
       </ul>
     </div>
@@ -69,8 +66,8 @@
         <% @Subjects.each do |subject|%>
           <div class="col-sm-4">
           <div class="row">
-            <h4><b><%= subject["name"] %></b></h4>
-            <%= render 'shared/application/object_vertical', object: subject["first_highlight"]  %>
+            <h4><b><%= subject.name %></b></h4>
+            <%= render subject.highlights.first, orientation: 'vertical'%>
             <p>
               <a href="#">Ver Mais</a>
             </p>
@@ -80,4 +77,4 @@
       </div>
     <% end %>
   </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/config/initializers/repositories/dspace.rb b/config/initializers/repositories/dspace.rb
index f2a71dbd217f0bff4b7c836afa4107a2859cbd94..48a75aab0f7308207fba630d98dd22130408b31c 100644
--- a/config/initializers/repositories/dspace.rb
+++ b/config/initializers/repositories/dspace.rb
@@ -15,4 +15,4 @@ else
   config = dspace_configs.fetch(Rails.env)
 
   set_dspace_config config['host'], config['port'], config['rest_webapp_name'], config['solr_webapp_name']
-end
+end
\ No newline at end of file
diff --git a/config/initializers/repositories/repositories.rb b/config/initializers/repositories/repositories.rb
index caebcb6b5995c78904a92585f573b3f540cd2990..f6666e218bec5ea09b18d95b0217612a57577a43 100644
--- a/config/initializers/repositories/repositories.rb
+++ b/config/initializers/repositories/repositories.rb
@@ -22,27 +22,31 @@ end
 Repository::Environments.create :development do |repository|
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.new(OrientDb::Client.instance)
-  repository.register :webLink, OrientDb::WeblinkRepository.new(OrientDb::Client.instance)
   repository.register :user, UserRepositoryProxy.new(OrientDb::UserRepository.new(OrientDb::Client.instance))
   repository.register :subject, OrientDb::SubjectRepository.new(OrientDb::Client.instance)
   repository.register :institution, OrientDb::InstitutionRepository.new(OrientDb::Client.instance)
+  repository.register :subject, OrientDb::SubjectRepository.new(OrientDb::Client.instance)
+  repository.register :attribute, OrientDb::AttributeRepository.new(OrientDb::Client.instance)
   repository.register :collection, OrientDb::CollectionRepository.new(OrientDb::Client.instance)
+  repository.register :carousel, ActiveRecord::CarouselRepository.new
 end
 
 Repository::Environments.create :test do |repository|
+  repository.register :carousel, ActiveRecord::CarouselRepository.new
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.new(OrientDb::Client.instance)
-  repository.register :webLink, OrientDb::WeblinkRepository.new(OrientDb::Client.instance)
   repository.register :user, UserRepositoryProxy.new(OrientDb::UserRepository.new(OrientDb::Client.instance))
   repository.register :subject, OrientDb::SubjectRepository.new(OrientDb::Client.instance)
+  repository.register :attribute, OrientDb::AttributeRepository.new(OrientDb::Client.instance)
   repository.register :collection, OrientDb::CollectionRepository.new(OrientDb::Client.instance)
 end
 
 Repository::Environments.create :production do |repository|
+  repository.register :carousel, ActiveRecord::CarouselRepository.new
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.new(OrientDb::Client.instance)
-  repository.register :webLink, OrientDb::WeblinkRepository.new(OrientDb::Client.instance)
   repository.register :user, UserRepositoryProxy.new(OrientDb::UserRepository.new(OrientDb::Client.instance))
   repository.register :subject, OrientDb::SubjectRepository.new(OrientDb::Client.instance)
+  repository.register :attribute, OrientDb::AttributeRepository.new(OrientDb::Client.instance)
   repository.register :collection, OrientDb::CollectionRepository.new(OrientDb::Client.instance)
 end
diff --git a/config/orientdb.yml b/config/orientdb.yml
index 33d7dae7cccd737915522aaa7ff9abc3ac34f4fb..07945002eacbdb755ce3058bf6ff217959fc76e8 100644
--- a/config/orientdb.yml
+++ b/config/orientdb.yml
@@ -1,6 +1,6 @@
 development: &development
   host: localhost
-  database: portalmec
+  database: PortalMEC
   username: admin
   password: admin
   port: 2480
diff --git a/config/routes.rb b/config/routes.rb
index 057436b6ad50525c71d94e5f42c893e2f3c8d7f3..551b85fd6560ef73fd4c25f2ded7c77e1263b807 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -10,27 +10,35 @@ Rails.application.routes.draw do
   namespace :management do
     root 'welcome#index'
 
-    # statistics
-    get 'statistics/', to: 'statistics#index', as: 'index_statistics'
-    get 'statistics/users/' => 'statistics#users', as: 'users_statistics'
-    get 'statistics/collections' => 'statistics#collections', as: 'collections_statistics'
-    get 'statistics/accesses' => 'statistics#accesses', as: 'accesses_statistics'
-    get 'statistics/downloads' => 'statistics#downloads', as: 'downloads_statistics'
+    resources :statistics do
+      collection do
+        get :users
+        get :collections
+        get :accesses
+        get :downloads
+      end
+    end
 
     resources :users
     resources :highlights
+    resources :carousels
 
     mount Sidekiq::Web, at: '/sidekiq'
   end
 
   root 'welcome#index'
 
-  resources :learning_objects
-  post '/learning_objects/:id/like' => 'learning_objects#like', as: 'like_learning_object'
+  resources :learning_objects do
+    member do
+      post :like
+    end
+  end
 
   resources :institutions
   resources :collections
+  resources :subjects, only: [:index, :show]
 
+  get 'users/:id', to: 'users#show', as: 'users_show'
 
   get '/faq' => 'welcome#faq'
   get '/contact' => 'welcome#contact', as: 'contact'
diff --git a/db/migrate/20150922141008_create_carousels.rb b/db/migrate/20150922141008_create_carousels.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4e0e3bfa95e6d95a57b3691e5af9d560a6007063
--- /dev/null
+++ b/db/migrate/20150922141008_create_carousels.rb
@@ -0,0 +1,10 @@
+class CreateCarousels < ActiveRecord::Migration
+  def change
+    create_table :carousels do |t|
+      t.string :title
+      t.text :url
+
+      t.timestamps null: false
+    end
+  end
+end
diff --git a/db/migrate/20150922141009_add_image_column_to_carousels.rb b/db/migrate/20150922141009_add_image_column_to_carousels.rb
new file mode 100644
index 0000000000000000000000000000000000000000..704b097e49bb25c7fee7edba4d2369b8b59d9fcd
--- /dev/null
+++ b/db/migrate/20150922141009_add_image_column_to_carousels.rb
@@ -0,0 +1,9 @@
+class AddImageColumnToCarousels < ActiveRecord::Migration
+  def up
+   add_attachment :carousels, :image
+ end
+
+ def down
+   remove_attachment :carousels, :image
+ end
+end
diff --git a/lib/orient_db/methods/edge_methods.rb b/lib/orient_db/methods/edge_methods.rb
index 0784e472dcadd44dd8f858ef478248aed7319e7c..0e5c8c448fe1059c3b09917ae569dd2c3d340731 100644
--- a/lib/orient_db/methods/edge_methods.rb
+++ b/lib/orient_db/methods/edge_methods.rb
@@ -13,6 +13,15 @@ module OrientDb
         connection.command "CREATE EDGE #{edge_class} FROM #{from_id} TO #{to_id}"
       end
 
+      def get_edges_end(edge_class, type, vertex_id)
+        connection.query sprintf("SELECT expand(%s('%s')) FROM %s", type, edge_class, vertex_id)
+      end
+
+      def edge_exists?(edge_class, from_id, to_id)
+        edge = connection.query sprintf("SELECT outE('%s') FROM %s WHERE out('%s') CONTAINS %s", edge_class, from_id, edge_class, to_id)
+        !edge.empty?
+      end
+
     end
   end
 end
diff --git a/lib/orient_db/methods/generic_methods.rb b/lib/orient_db/methods/generic_methods.rb
new file mode 100644
index 0000000000000000000000000000000000000000..fe39c0f59a86e6f4bd672ef4186c2dfc632feee6
--- /dev/null
+++ b/lib/orient_db/methods/generic_methods.rb
@@ -0,0 +1,15 @@
+module OrientDb
+  module Methods
+    module GenericMethods
+
+      def get_by_rid(rid)
+        connection.get_document(rid)
+      end
+
+      def select_by_property(from, prop_name, prop_value)
+        connection.query sprintf("SELECT FROM %s WHERE %s = '%s'", from, prop_name, prop_value)
+      end
+
+    end
+  end
+end
\ No newline at end of file
diff --git a/lib/search_engine/orientdb_lucene.rb b/lib/search_engine/orientdb_lucene.rb
index 565a04963787ea9c8628e0aed87a490dd1256f42..672c05ee70050f873aa2742e6c7a6d0538cbe405 100644
--- a/lib/search_engine/orientdb_lucene.rb
+++ b/lib/search_engine/orientdb_lucene.rb
@@ -5,11 +5,5 @@ module SearchEngine
       learning_object_repository.search(qry)
     end
 
-    private
-
-    def learning_object_repository
-      repository.for(:learning_object)
-    end
-
   end
 end
diff --git a/lib/tasks/mainPage.rake b/lib/tasks/mainPage.rake
index 3f2ca563b1a1ba69ad6b3a6dfd63da927295759e..28340ebb86146c1bd67f767e7020207ff13a4607 100644
--- a/lib/tasks/mainPage.rake
+++ b/lib/tasks/mainPage.rake
@@ -4,15 +4,13 @@ namespace :mainPage do
     repository = Portalmec::Application.repository
     puts 'Generate the main page subject highlights'
     general_highlights = Array.new
-    subjects = repository.for(:subject).find_all
+    subjects = repository.for(:subject).all
     subjects.each do |subject|
       # select all the learning objects about that subject
-      objects = repository.for(:subject).get_objects(subject['@rid'])
+      objects = subject.learning_objects
       # transform the objects to RankingItem
       objects = objects.collect do |object|
-        downloads = 0
-        object = repository.for(:learning_object).find(object['@rid'])
-        Ranking::Item.new(object.id,object.views.first["COUNT"],downloads,object.likes.first["COUNT"])
+        Ranking::Item.new(object.id,object.views,object.downloads,object.likes)
       end
       # rank them
       rater = Ranking::Rater.new(Ranking::Strategies::BasicRater.new(0,1,100))
@@ -21,14 +19,14 @@ namespace :mainPage do
       (general_highlights << objects.take(5)).flatten!
 
       # add the object to the subject highlight
-      puts subject['name']
-      repository.for(:subject).update(subject['@rid'],'set','highlights','[]')
+      puts subject.name
+      repository.for(:subject).update(subject.id,'set','highlights','[]')
       objects.each do |object|
-        repository.for(:subject).update(subject['@rid'],'add','highlights',object.name)
+        repository.for(:subject).update(subject.id,'add','highlights',object.name)
       end
     end
     puts 'Generating the main page highlights'
-    mainPage = repository.for(:mainPage).find_all.first
+    mainPage = repository.for(:mainPage).all.first
     rid = mainPage['@rid']
     repository.for(:mainPage).update(rid,'set','highlights','[]')
     general_highlights.each do |general_highlight|
diff --git a/lib/tasks/orientdb.rake b/lib/tasks/orientdb.rake
index 504aa1f120363f4c7d471ca017e70808a053ad6f..3960b089c79d4eb241ba65c0995d26ddbc2e123c 100644
--- a/lib/tasks/orientdb.rake
+++ b/lib/tasks/orientdb.rake
@@ -8,4 +8,78 @@ namespace :orientdb do
     migrations.run
   end
 
+  task create_learning_object_relations: :environment do
+    desc "Create LearningObject relations based on its metadata"
+
+    lo_repo = Portalmec::Application.repository.for(:learning_object)
+    subject_repo = Portalmec::Application.repository.for(:subject)
+    attr_repo = Portalmec::Application.repository.for(:attribute)
+
+    # Quantity of LearningObjects fetched on each iteration
+    limit = 1000
+    # Starting point from where LearningObjects will be fetched
+    offset = 0
+
+    loop do
+      p " --> importing LearningObjects from #{offset} to #{offset+limit}"
+
+      begin
+        # Get LearningObjects from OrientDB (from offset to offset+limit)
+        learning_objects = lo_repo.all_from_offset_to_limit(offset,limit)
+      rescue
+        # Sleeps for a while to wait database's recovery
+        sleep(30.seconds)
+        # Goes to next iteration to retry
+        next
+      else
+        # Terminate loop if there are no more LearningObjects
+        break if learning_objects.empty?
+
+        learning_objects.each do |lo|
+          metadata = get_unique_matadata_keys(lo)
+          subjects = metadata["dc.subject.category"]
+          subjects ||= []
+          metadata.delete("dc.subject.category")
+          lo.subjects=[]
+          lo.attributes=[]
+
+          subjects.each do |subject_name|
+            subject = subject_repo.find_by_name(subject_name)
+            if subject.nil?
+              subject = Subject.new(:name => subject_name)
+              subject_repo.create(subject)
+            end
+            lo.subjects << subject
+          end
+
+          metadata.each do |key, value|
+            value.each do |v|
+              attribute = attr_repo.find_by_key_and_value(key,v).first
+              if attribute.nil?
+                attribute = Attribute.new(:key => key, :value => v)
+                attr_repo.create(attribute)
+              end
+              lo.attributes << attribute
+            end
+          end
+            
+          p lo_repo.create_relations(lo)
+        end
+        
+        offset += limit
+      end
+    end
+
+  end
+
+  def get_unique_matadata_keys(lo)
+    hash = {}
+    lo.metadata.each do |m|
+      unless hash.has_key?(m['key'])
+        hash[m['key']] = lo.get_metadata_values_of(m['key'])
+      end
+    end
+    hash
+  end
+
 end
\ No newline at end of file
diff --git a/test/controllers/management/carousel_controller_test.rb b/test/controllers/management/carousel_controller_test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..5ef47df22551ab99c7d5e8bfd325783d84fc806a
--- /dev/null
+++ b/test/controllers/management/carousel_controller_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class Management::CarouselControllerTest < ActionController::TestCase
+  # test "the truth" do
+  #   assert true
+  # end
+end
diff --git a/test/fixtures/carousels.yml b/test/fixtures/carousels.yml
new file mode 100644
index 0000000000000000000000000000000000000000..874eb455b15023db983a48bf8a96c01aaa9acde1
--- /dev/null
+++ b/test/fixtures/carousels.yml
@@ -0,0 +1,9 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+one:
+  title: MyString
+  url: MyText
+
+two:
+  title: MyString
+  url: MyText
diff --git a/test/models/carousel_test.rb b/test/models/carousel_test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..26c20b1e122e221fdec4d8ab8789e1a060cbeb11
--- /dev/null
+++ b/test/models/carousel_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class CarouselTest < ActiveSupport::TestCase
+  # test "the truth" do
+  #   assert true
+  # end
+end
diff --git a/test/models/learning_object_test.rb b/test/models/learning_object_test.rb
index 10d349407170226579f52f7a5395e55c37b82958..3c3932c319c6291c1023d103d84bf24a0ba765e7 100644
--- a/test/models/learning_object_test.rb
+++ b/test/models/learning_object_test.rb
@@ -2,7 +2,7 @@ require 'test_helper'
 
 class LearningObjectTest < ActiveSupport::TestCase
   should validate_presence_of(:name)
-  should validate_presence_of(:date_creation)
+  should validate_presence_of(:created_at)
   should validate_presence_of(:type)
   should validate_presence_of(:likes)
   should validate_presence_of(:views)