diff --git a/app/builders/learning_object_builder.rb b/app/builders/learning_object_builder.rb
index e494291a7d981a88c53460dcae78e2e62df2edd0..840711e9cab1c55cf794389abdab1521c8c9f339 100644
--- a/app/builders/learning_object_builder.rb
+++ b/app/builders/learning_object_builder.rb
@@ -7,7 +7,7 @@ class LearningObjectBuilder
   #
   def self.build(objects = [])
     lo = []
-    objects = [objects] if objects.class == String
+    objects = [objects] if objects.class == String || objects.class == Hash
     objects.each do |object|
       unless object['rid'].blank?
         o = Rails.cache.fetch(cache_key(object['rid'], object['last_modified'])) unless object['last_modified'].blank?
@@ -31,15 +31,15 @@ class LearningObjectBuilder
       # cache object when build
       lo = Rails.cache.fetch(cache_key(args['@rid'], args['last_modified']), expires_in: 12.hours) do
         obj = LearningObject.new(
-          id: args['@rid'],
-          name: args['name'],
-          description: args['description'],
-          thumbnail: (args['thumbnail'] or ''),
-          id_dspace: args['id_dspace'],
-          type: args['type'],
-          bitstreams: args['bitstreams'],
-          last_modified: args['last_modified'],
-          metadata: JSON.parse(args['metadata'])
+            id: args['@rid'],
+            name: args['name'],
+            description: args['description'],
+            thumbnail: (args['thumbnail'] or ''),
+            id_dspace: args['id_dspace'],
+            type: args['type'],
+            bitstreams: args['bitstreams'],
+            last_modified: args['last_modified'],
+            metadata: JSON.parse(args['metadata'])
         )
         obj.created_at = DateTime.strptime(args['created_at'], "%Y-%m-%d %H:%M:%S") unless args['created_at'].nil?
         obj.last_modified = DateTime.strptime(args['last_modified'], "%Y-%m-%d %H:%M:%S") unless args['last_modified'].nil?
diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index 7d813085d557f243edc4b552fede99d4e433f2e7..f2288acb2cf378597270251ed189ffa6d6213261 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -1,7 +1,7 @@
 class LearningObjectsController < ApplicationController
   before_action :set_learning_object, only: [:show, :edit, :update, :destroy, :like, :bookmarks, :collections]
   after_action :increment_learning_object_views, only: [:show]
-  before_action :authenticate_user!, except: [:index, :show, :like]
+  before_action :authenticate_user!, except: [:index, :show]
   before_action :set_complaint_messages, only: :show
 
   # GET /learning_objects
diff --git a/app/repositories/orient_db/collection_repository.rb b/app/repositories/orient_db/collection_repository.rb
index c1d6f2636feb0d61517fd756da61cb0bdb2d611f..a64af220cbdac2fe35f088e27a26d983472b0167 100644
--- a/app/repositories/orient_db/collection_repository.rb
+++ b/app/repositories/orient_db/collection_repository.rb
@@ -13,7 +13,7 @@ module OrientDb
       end
 
       connection.command sprintf('update %s REMOVE learning_objects', collection.id)
-      connection.command sprintf("update %s ADD learning_objects = [%s] SET last_modified='#{Time.now()}'", collection.id, collection.learning_objects.map(&:id).join(','))
+      connection.command sprintf("update %s ADD learning_objects = [%s] SET last_modified='%s'", collection.id, collection.learning_objects.map(&:id).join(','), Time.now())
     end
 
     def get_number_of_collections
@@ -46,8 +46,8 @@ module OrientDb
     ##
     # Select all collections in context
     def all(context = Collections::PublicContext.new)
-      query = sprintf("select * from %s where name<>'Bookmarks'", context.from)
-      query += sprintf("and privacy = '%s'", context.privacy) unless context.privacy.blank?
+      query = sprintf("select * from %s where name<>'Bookmarks' ", context.from)
+      query += sprintf(" and privacy = '%s'", context.privacy) unless context.privacy.blank?
       build_objects connection.query(query)
     end
 
diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb
index 96eb55b717ea2c4eb741e6ad30f304d42a7bc9ec..524422f8673cf22fcb7b894caf87cdd0aa975052 100644
--- a/app/repositories/orient_db/learning_object_repository.rb
+++ b/app/repositories/orient_db/learning_object_repository.rb
@@ -17,7 +17,7 @@ module OrientDb
       if !edge_exists? "Views", user.rid, learning_object.id
         create_and_set_edge "Views", user.rid, learning_object.id, values
         learning_object.views = learning_object.views + 1
-      # If exists, update the date property of view
+        # If exists, update the date property of view
       else
         edge = get_edges "Views", "in", learning_object.id
         edge = edge.first
@@ -132,16 +132,8 @@ module OrientDb
       build_object result.first
     end
 
-    ##
-    # This method return all learning objects of +user+ scope.
-    #
-    # No users have objects.
-    # Learning Object submission was not implemented yet.
-    # For now, an empty array is returned.
     def all(user)
-      #result = select_by_property(odb_class, "p_id", user.id)
-      #build_objects result
-      []
+      build_objects(get_edges_end('PublishedBy', 'out', user.rid) || [])
     end
 
     def all_by_score_from_offset_to_limit(offset, limit)
@@ -305,19 +297,19 @@ module OrientDb
 
     def max_likes
       Rails.cache.fetch('max_likes', expires_in: 6.hours) do
-        get_max_from_edge("Likes","in")
+        get_max_from_edge("Likes", "in")
       end
     end
 
     def max_views
       Rails.cache.fetch('max_views', expires_in: 6.hours) do
-        get_max_from_edge("Views","in")
+        get_max_from_edge("Views", "in")
       end
     end
 
     def max_downloads
       Rails.cache.fetch('max_downloads', expires_in: 6.hours) do
-        get_max_from_edge("Downloads","in")
+        get_max_from_edge("Downloads", "in")
       end
     end
 
diff --git a/app/views/welcome/collection.html.erb b/app/views/welcome/collection.html.erb
deleted file mode 100644
index c8d1afb594127908b3cd8312488fa5bb4113aab2..0000000000000000000000000000000000000000
--- a/app/views/welcome/collection.html.erb
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-<nav class="navigation navbar-default "><br/>
-<div class="container-fluid">
-  <div class="navbar-right">
-     <%= link_to 'http://www.fnde.gov.br/' do %>
-       <%= image_tag 'icons/collection-download.png', style: 'width: auto;	height: 40px; margin-right: 20px;' %><span style="margin-right: 30px;"><button class="but but-shadow but-rc">Editar Coleção</button></span>
-     <% end %>
-   </div>
-  <div class="navbar-header">
-      <%= image_tag image_path("icons/collection.png"), class: "logo-image",size: "90x66" %>
-      <ul class="nav navbar-nav navbar-right"><h1>&nbsp;<b>Coleção 1</b></h1> <br/>
-      &nbsp;  <%= image_tag image_path("icons/square.png"), class: "logo-image",size: "20x20" %> 200 itens</ul>
-  </div>
-</div>
-<br/></nav>
-<nav class="navigation navbar-inverse ">
-  <div class="container-fluid">
-  <a class="navbar-brand" href="#"><font color="FFFFFF">x arquivo(s) selecionado(s)</font></a>
-  <ul class="nav navbar-nav navbar-right">
-    <li class="set-align"><a href="#"><span class="left-edge"><%= image_tag image_path("icons/Download_01.png"), class: "logo-image",size: "35x35" %></span><font color="FFFFFF"> Salvar no <br>computador</font></br></a></li>
-    <li class="set-align"><a href="#"><span class="left-edge"><%= image_tag image_path("icons/Copiar_Seleção.png"), class: "logo-image",size: "35x35" %></span><font color="FFFFFF"> Copiar <br>para</font></br></a></li>
-    <li class="set-align"><a href="#"><span class="left-edge"><%= image_tag image_path("icons/Mover_Seleção.png"), class: "logo-image",size: "35x35" %></span><font color="FFFFFF"> Mover <br>para</font></br></a></li>
-    <li class="set-align"><a href="#"><span class="left-edge"><%= image_tag image_path("icons/Remover_da_Coleção_Seleção.png"), class: "logo-image",size: "35x35" %></span><font color="FFFFFF"> Remover da <br>coleção</font></br></a></li>
-  </ul>
-  </div>
-</nav>
-
-<div class="row mainpage-subjects">
-  <br/>
-  <div class="col-md-4">
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj1
-    </div><br/>
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj4
-    </div><br/>
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj7
-    </div>
-  </div>
-  <div class="col-md-4">
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj2
-    </div><br/>
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj5
-    </div><br/>
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj8
-    </div>
-  </div>
-  <div class="col-md-4">
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj3
-    </div><br/>
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj6
-    </div><br/>
-    <div class="thumb">
-      <input type="checkbox" class="chk " checked="checked"  name="" value="0" />
-      <%= image_tag image_path('learning-object-preview.png'), class: "logo" %>Obj9
-    </div>
-  </div>
-</div>
diff --git a/config/initializers/repositories/repositories.rb b/config/initializers/repositories/repositories.rb
index f7d3c35d3a535fbda79aab1fc23ca0e80bc2451b..8938e4a2a3ad7aabef8a236e7e80a69b6a7cd4b0 100644
--- a/config/initializers/repositories/repositories.rb
+++ b/config/initializers/repositories/repositories.rb
@@ -33,23 +33,27 @@ Repository::Environments.create :development do |repository|
 end
 
 Repository::Environments.create :test do |repository|
-  repository.register :carousel, ActiveRecord::CarouselRepository.new
-  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.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
+  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
 end
 
 Repository::Environments.create :production do |repository|
-  repository.register :carousel, ActiveRecord::CarouselRepository.new
-  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
   repository.register :learning_object, OrientDb::LearningObjectRepository.new(OrientDb::Client.instance)
   repository.register :mainPage, OrientDb::MainPageRepository.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
+  repository.register :complaint, OrientDb::ComplaintRepository.new(OrientDb::Client.instance)
 end
diff --git a/config/routes.rb b/config/routes.rb
index 987b61e4ce300c1a7afd4769f6ca3349289ebd77..eedad4187f98b92e4f00fcdebbd5c4cddd21586d 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -9,9 +9,10 @@ Rails.application.routes.draw do
 
   namespace :management do
     root 'welcome#index'
-
     resource :complaints
     resources :institutions
+    resources :highlights
+    resources :carousels
 
     resources :statistics do
       collection do
@@ -31,13 +32,13 @@ Rails.application.routes.draw do
         get :admins
       end
     end
-    resources :highlights
-    resources :carousels
 
     mount Sidekiq::Web, at: '/sidekiq'
   end
 
   root 'welcome#index'
+  resources :subjects, only: [:index, :show]
+  resources :institutions
 
   resources :learning_objects do
     member do
@@ -47,7 +48,6 @@ Rails.application.routes.draw do
     end
   end
 
-  resources :institutions
   resources :collections do
     member do
       # add a learning object for some collection
@@ -58,9 +58,6 @@ Rails.application.routes.draw do
     end
   end
 
-  resources :subjects, only: [:index, :show]
-  #resources :complaints, only: [:create, :destroy]
-
   resources :users, only: [:show] do
     collection do
       get :me