diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a9bfca32ac80b1a1e89e4d07acb77337d1fbcffe..77de73f11720be54934bd6edd98a657f15fd6b1e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,23 @@
+services:
+  - postgres
+
+variables:
+  POSTGRES_DB: portalmec_test
+  DATABASE_URL: "postgresql://postgres:5432/portalmec_test"
+
+before_script:
+  - apt-get update -y
+  - apt-get install default-jre postgresql-client -y
+  - gem install bundler
+  - bundle install --jobs $(nproc) --path=/cache/bundler
+  - bundle exec rake db:create
+
 test:
+  stage: test
   script:
-  - export $BUNDLE_PATH='~/'
-  - export BUNDLE_PATH='~/'
-  - bundle install
-  - bundle exec rake db:migrate RAILS_ENV=test
-  - bundle exec rake test
\ No newline at end of file
+    - rake test
+  tags:
+    - ruby
+    - postgres
+    - elasticsearch
+    - redis
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index 1dbf4e5c68edd12eb5a5319179007566d2e37f22..b62bcf9210790bae96ccc68e9b49277f74c4d477 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -47,7 +47,7 @@ GEM
       descendants_tracker (~> 0.0.4)
       ice_nine (~> 0.11.0)
       thread_safe (~> 0.3, >= 0.3.1)
-    bcrypt (3.1.10)
+    bcrypt (3.1.11)
     bcrypt-ruby (3.1.5)
       bcrypt (>= 3.1.3)
     best_in_place (3.1.0)
@@ -202,7 +202,8 @@ GEM
     ffi (1.9.10)
     flamegraph (0.1.0)
       fast_stack
-    flay (2.6.1)
+    flay (2.7.0)
+      erubis (~> 2.7.0)
       ruby_parser (~> 3.0)
       sexp_processor (~> 4.0)
     flog (4.3.2)
@@ -229,8 +230,8 @@ GEM
     jbuilder (2.4.1)
       activesupport (>= 3.0.0, < 5.1)
       multi_json (~> 1.2)
-    jquery-rails (4.1.0)
-      rails-dom-testing (~> 1.0)
+    jquery-rails (4.1.1)
+      rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
     jquery-turbolinks (2.1.0)
@@ -249,7 +250,7 @@ GEM
       addressable (~> 2.3)
     libarchive-static (1.0.5)
     libv8 (3.16.14.13)
-    locastyle (0.0.3)
+    locastyle (0.0.4)
     logger-colors (1.0.0)
     loofah (2.0.3)
       nokogiri (>= 1.5.9)
@@ -282,8 +283,8 @@ GEM
       rack (>= 1.0, < 3)
     omniauth-facebook (3.0.0)
       omniauth-oauth2 (~> 1.2)
-    omniauth-google-oauth2 (0.3.1)
-      jwt (~> 1.0)
+    omniauth-google-oauth2 (0.4.0)
+      jwt (~> 1.5.0)
       multi_json (~> 1.3)
       omniauth (>= 1.1.1)
       omniauth-oauth2 (>= 1.3.1)
@@ -298,7 +299,7 @@ GEM
       omniauth-oauth (~> 1.1)
     open4 (1.3.4)
     orm_adapter (0.5.0)
-    paperclip (4.3.5)
+    paperclip (4.3.6)
       activemodel (>= 3.2.0)
       activesupport (>= 3.2.0)
       cocaine (~> 0.5.5)
@@ -308,17 +309,16 @@ GEM
       ast (~> 2.2)
     pg (0.18.4)
     phantomjs (2.1.1.0)
-    private_attr (1.1.0)
     ptools (1.3.3)
-    puma (3.0.2)
+    puma (3.1.0)
     pundit (1.1.0)
       activesupport (>= 3.0.0)
     quiet_assets (1.1.0)
       railties (>= 3.1, < 5.0)
     rack (1.6.4)
     rack-cors (0.4.0)
-    rack-mini-profiler (0.9.8)
-      rack (>= 1.1.3)
+    rack-mini-profiler (0.9.9.2)
+      rack (>= 1.2.0)
     rack-protection (1.5.3)
       rack
     rack-test (0.6.3)
@@ -348,16 +348,15 @@ GEM
       rake (>= 0.8.7)
       thor (>= 0.18.1, < 2.0)
     rainbow (2.1.0)
-    rake (10.5.0)
-    rake-compiler (0.9.5)
+    rake (11.1.1)
+    rake-compiler (0.9.6)
       rake
     rdoc (4.2.2)
       json (~> 1.4)
     redis (3.2.2)
-    reek (3.10.1)
+    reek (3.11)
       codeclimate-engine-rb (~> 0.3.1)
-      parser (~> 2.3)
-      private_attr (~> 1.1)
+      parser (~> 2.3, >= 2.3.0.6)
       rainbow (~> 2.0)
     ref (2.0.0)
     resource_kit (0.1.4)
@@ -372,13 +371,14 @@ GEM
       sexp_processor (~> 4.0)
     ruby_parser (3.8.1)
       sexp_processor (~> 4.1)
-    rubycritic (2.7.1)
+    rubycritic (2.8.0)
       colorize
-      flay (= 2.6.1)
+      flay (= 2.7.0)
       flog (= 4.3.2)
       launchy (= 2.4.3)
       parser (~> 2.3)
-      reek (= 3.10.1)
+      reek (= 3.11)
+      ruby_parser (~> 3.8)
       virtus (~> 1.0)
     safe_yaml (1.0.4)
     sass (3.4.21)
@@ -397,7 +397,7 @@ GEM
       activemodel
       elasticsearch (>= 1)
       hashie
-    select2-rails (4.0.1)
+    select2-rails (4.0.1.1)
       thor (~> 0.14)
     sexp_processor (4.7.0)
     shoulda (3.5.0)
@@ -406,7 +406,7 @@ GEM
     shoulda-context (1.2.1)
     shoulda-matchers (2.8.0)
       activesupport (>= 3.0.0)
-    sidekiq (4.1.0)
+    sidekiq (4.1.1)
       concurrent-ruby (~> 1.0)
       connection_pool (~> 2.2, >= 2.2.0)
       redis (~> 3.2, >= 3.2.1)
@@ -424,7 +424,7 @@ GEM
     sprockets (3.5.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-rails (3.0.3)
+    sprockets-rails (3.0.4)
       actionpack (>= 4.0)
       activesupport (>= 4.0)
       sprockets (>= 3.0.0)
diff --git a/app/assets/javascripts/application/collections.coffee b/app/assets/javascripts/application/collections.coffee
index 3dc93bc7f8bc010afb059000f4ee3a9177b3d5a9..0289e4e56c771c88f98948a2259740103a4cf2af 100644
--- a/app/assets/javascripts/application/collections.coffee
+++ b/app/assets/javascripts/application/collections.coffee
@@ -91,20 +91,23 @@ $(document).on 'ready page:load', ->
 $(document).on 'add_collection_selector', (e) ->
   $('.learning-object-vertical').each (e) ->
     loid = $(this).data('loid')
-    $('.learning-object-thumbnail', this).append '<input class="collection-selector" type="checkbox" value="' + loid + '"></input>'
+    type = $(this).data('type')
+    $('.learning-object-thumbnail', this).append '<input class="collection-selector" type="checkbox" value="' + loid + '" data-type="' + type + '" ></input>'
     return
 
 # add/remove object to array when click checkbox
 $(document).on 'click', '.collection-selector', ->
   if this.checked
     if selected_objects.indexOf(this.value) < 0
-      selected_objects.push this.value
+      selected_objects.push { "class" : $(this).attr('data-type'), "value" : this.value}
       $(document).trigger('check_selected_collection')
     return
   else
-    index = selected_objects.indexOf(this.value)
-    if !!(~index)
-      selected_objects.splice(index, 1)
+    i = 0
+    while i < selected_objects.length
+      if (selected_objects[i].value == this.value)
+        selected_objects.splice(i, 1)
+      i++
       $(document).trigger('check_selected_collection')
     return
 
@@ -113,11 +116,16 @@ $(document).on 'mark_all_collections', ->
   selected_objects = []
   $('.collection-selector').prop('checked', true)
   $('.collection-selector').each () ->
-    selected_objects.push this.value
+    selected_objects.push { "class" : $(this).attr('data-type'), "value" : this.value}
+    console.log(selected_objects)
   $(document).trigger('check_selected_collection')
 
-$(document).on 'click', '.count-collections-objects', ->
-  $(document).trigger('mark_all_collections')
+$(document).on 'change', '.count-collections-objects', ->
+  if ($(this).prop('checked'))
+    $(document).trigger('mark_all_collections')
+  else
+    $(document).trigger('clear_collections')
+
 
 # clear selected objects
 $(document).on 'clear_collections', ->
@@ -125,21 +133,33 @@ $(document).on 'clear_collections', ->
   $('.collection-selector').attr('checked', false)
   $(document).trigger('check_selected_collection')
 
-$(document).on 'click', '.collection-show-select-nav .navbar-brand', ->
-  $(document).trigger('clear_collections')
-
 # manipulation buttons
 $(document).on 'click', '.collection-button', ->
   collection = $('.collection-show-page').data('cid')
   index = permitted_types.indexOf($(this).data('action'))
+  urls = []
+  learning_objects = []
   if permitted_types[index] == 'remove'
-    url = '/collections/' + encodeURIComponent(collection) + '/learning_objects/' + encodeURIComponent(selected_objects.join())
+    if ($('.collection-button').data('class') == 'collections')
+      i = 0
+      while i < selected_objects.length
+        learning_objects.push selected_objects[i]["value"]
+        i++
+      urls.push '/collections/' + encodeURIComponent(collection) + '/learning_objects/' + encodeURIComponent(learning_objects.join(','))
+    else
+      i = 0
+      while i < selected_objects.length
+        urls.push '/bookmarks/' + encodeURIComponent(selected_objects[i]["class"]) + '/' + encodeURIComponent(selected_objects[i]["value"])
+        i++
     if confirm('Você tem certeza?')
-      $.ajax { method: 'DELETE', url: url }
-      .done ->
-        $(document).trigger 'refresh_comments'
-  else
-    $(document).trigger('open_collections_modal', [collection: collection, type: permitted_types[index], learning_object: selected_objects ]) if !!(~index)
+      i = 0
+      while i < urls.length
+        $.ajax { method: 'DELETE', url: urls[i] }
+        .done ->
+          $(document).trigger 'refresh_comments'
+        i++
+    else
+      $(document).trigger('open_collections_modal', [collection: collection, type: permitted_types[index], learning_object: selected_objects ]) if !!(~index)
 
 # refresh comments via ajax
 $(document).on 'refresh_comments', (e) ->
@@ -159,6 +179,7 @@ $(document).on 'refresh_comments', (e) ->
 $(document).on 'check_selected_collection', (e) ->
   length = selected_objects.length
   if length == 0
+    $('.count-collections-objects').prop('checked',false)
     return $('.collection-show-select-nav').slideUp('slow')
   else if (length == 1)
     html = "1 objeto selecionado"
diff --git a/app/controllers/bookmarks_controller.rb b/app/controllers/bookmarks_controller.rb
index 487cbfd5baed5cfd16afd3755b2da4525d926e55..0dccaf5650ce3f19e62f7958053fe880caca1741 100644
--- a/app/controllers/bookmarks_controller.rb
+++ b/app/controllers/bookmarks_controller.rb
@@ -9,6 +9,7 @@ class BookmarksController < ApplicationController
   # GET /bookmarks/1
   # GET /bookmarks/1.json
   def show
+    render partial: 'list' if params[:list] == 'true'
   end
 
   # POST /bookmarks/1/learning_object
@@ -19,10 +20,14 @@ class BookmarksController < ApplicationController
     render json: { status: true } if request.xhr?
   end
 
+  def list
+    render layout: false
+  end
+
   # DELETE /bookmarks/1/learning_object
   def remove_object
     authorize @object
-    Bookmark.destroy(user: @user, bookmarkable: @object)
+    Bookmark.destroy Bookmark.where(user: @user, bookmarkable: @object)
 
     render json: { status: true } if request.xhr?
   end
diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb
index 86489177db78044d1650583bea381767497346c6..d4aee9e51cf831e20da805bc0db77e8362173dd3 100644
--- a/app/controllers/collections_controller.rb
+++ b/app/controllers/collections_controller.rb
@@ -118,10 +118,11 @@ class CollectionsController < ApplicationController
     @new_collection = Collection.new
 
     @publishers = publishers_for current_user
+    @bookmark = (current_user.bookmarks.nil? || current_user.bookmarks.first.nil?) ? [] : [current_user.bookmarks.first]
 
     @groups = [
         CollectionsGroup.new(title: 'Coleções Automáticas',
-                             collections: [current_user.bookmarks.first]),
+                             collections: @bookmark ),
         CollectionsGroup.new(title: 'Coleções Adicionadas',
                              collections: current_user.collections.includes(:owner))
     ]
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index e721429a17d2d91c07125608879877053217d595..cbc5a878c07baa6e6e5c1bb038c2a901a49d1839 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -13,8 +13,8 @@ class UsersController < ApplicationController
 
     if @user == current_user
       @publishers = @user.institutions
-      @bookmarks = @user.bookmarks.first
-      @groups.unshift(CollectionsGroup.new(title: 'Coleções Automáticas', collections: [@bookmarks]))
+      @bookmarks = (@user.bookmarks.nil? || @user.bookmarks.first.nil?) ? [] : [@user.bookmarks.first]
+      @groups.unshift(CollectionsGroup.new(title: 'Coleções Automáticas', collections: @bookmarks))
     end
   end
 
diff --git a/app/policies/collection_policy.rb b/app/policies/collection_policy.rb
index e24b8c1ce29c0469397484ac0306466c1d841cac..c986524944e3f652bb26bfa706c7ddaf0218dcbd 100644
--- a/app/policies/collection_policy.rb
+++ b/app/policies/collection_policy.rb
@@ -23,7 +23,7 @@ class CollectionPolicy < ApplicationPolicy
   end
 
   def add_learning_object?
-    record if owns?
+    record if user_exists?
   end
 
   def remove_learning_object?
diff --git a/app/views/bookmarks/_list.html.erb b/app/views/bookmarks/_list.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..622dcb1d1f55703db09a2a9e315e1f770c67e8cb
--- /dev/null
+++ b/app/views/bookmarks/_list.html.erb
@@ -0,0 +1,3 @@
+<% @user.bookmark_learning_objects.each do |object| %>
+  <%= render object, orientation: 'vertical' %>
+<% end %>
diff --git a/app/views/bookmarks/show.html.erb b/app/views/bookmarks/show.html.erb
index 764dc5519603bfb2874dcebef68a9db16a7093ab..db21f6fefae40a4476214574027cbdbf157b6a8b 100644
--- a/app/views/bookmarks/show.html.erb
+++ b/app/views/bookmarks/show.html.erb
@@ -6,10 +6,8 @@
       <ul class="nav navbar-nav navbar-right collection-header" style="margin-left: 30px;">
         <li><h2>Favoritos</h2></li>
         <li>
-          <a class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos">
-            <%= image_tag image_path("icons/square.png"), class: "logo-image", size: "20x20" %>
+          <input type="checkbox" class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos">
             <%= bookmark_length @user %>
-          </a>
         </li>
       </ul>
     </div>
@@ -18,21 +16,21 @@
 </nav>
 <nav class="navigation navbar-inverse collection-show-select-nav" style="display:none;">
   <div class="container-fluid">
-    <a class="navbar-brand" href="javascript:void(0);" data-toggle="tooltip" data-placement="bottom" title="Limpar seleção"></a>
+    <a class="navbar-brand" data-toggle="tooltip" data-placement="bottom" ></a>
     <ul class="nav navbar-nav navbar-right">
-      <li class="set-align collection-button" data-action="download">
+      <li class="set-align collection-button" data-action="download" data-class="bookmarks">
         <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Download_01.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
           Salvar no <br>computador</span></a>
       </li>
-      <li class="set-align collection-button" data-action="copy">
+      <li class="set-align collection-button" data-action="copy" data-class="bookmarks">
         <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Copiar_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
           Copiar <br>para</span></a>
       </li>
-      <li class="set-align collection-button" data-action="move">
+      <li class="set-align collection-button" data-action="move" data-class="bookmarks">
         <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Mover_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
           Mover <br>para</span></a>
       </li>
-      <li class="set-align collection-button" data-action="remove">
+      <li class="set-align collection-button" data-action="remove" data-class="bookmarks">
         <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Remover_da_Coleção_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
           Remover da <br>coleção</span></a>
       </li>
@@ -40,11 +38,9 @@
   </div>
 </nav>
 
-<div class= "row">
+<div class="row">
   <div class="learning-object-columns">
     <br/>
-    <% @user.bookmark_learning_objects.each do |object| %>
-      <%= render object, orientation: 'vertical' %>
-    <% end %>
+    <%= render partial: 'list' %>
   </div>
 </div>
diff --git a/app/views/collections/show.html.erb b/app/views/collections/show.html.erb
index dbcbb382e780785aac38462b6ab1b717cadf207e..3e6359ec6c75b3f5a19ffbaf4979325c0f9a7dfa 100644
--- a/app/views/collections/show.html.erb
+++ b/app/views/collections/show.html.erb
@@ -26,8 +26,7 @@
       <ul class="nav navbar-nav navbar-right collection-header" style="margin-left: 30px;">
         <li><h2><%= (@collection.class != Bookmark) ? @collection.name : "Favoritos" %></h2></li>
         <li>
-          <a class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos">
-            <%= image_tag image_path("icons/square.png"), class: "logo-image", size: "20x20" %>
+          <input type="checkbox" class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos">
             <%= collection_length @collection %>
           </a>
         </li>
@@ -38,24 +37,24 @@
 </nav>
 <nav class="navigation navbar-inverse collection-show-select-nav" style="display:none;">
   <div class="container-fluid">
-    <a class="navbar-brand" href="javascript:void(0);" data-toggle="tooltip" data-placement="bottom" title="Limpar seleção"></a>
+    <a class="navbar-brand"  data-toggle="tooltip" data-placement="bottom" ></a>
     <ul class="nav navbar-nav navbar-right">
-      <li class="set-align collection-button" data-action="download">
+      <li class="set-align collection-button" data-action="download" data-class="collections">
         <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Download_01.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
           Salvar no <br>computador</span></a>
       </li>
       <% if user_signed_in? %>
-      <li class="set-align collection-button" data-action="copy">
+      <li class="set-align collection-button" data-action="copy" data-class="collections">
         <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Copiar_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
           Copiar <br>para</span></a>
       </li>
       <% end %>
       <% if @own %>
-        <li class="set-align collection-button" data-action="move">
+        <li class="set-align collection-button" data-action="move" data-class="collections">
           <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Mover_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
             Mover <br>para</span></a>
         </li>
-        <li class="set-align collection-button" data-action="remove">
+        <li class="set-align collection-button" data-action="remove" data-class="collections">
           <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Remover_da_Coleção_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white">
             Remover da <br>coleção</span></a>
         </li>
diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb
index 01d3d53a8683c88e9a71a230441933c4bca79f1f..5eca08657ad41165b2a2ceb551823ff224eba1b1 100644
--- a/app/views/devise/registrations/new.html.erb
+++ b/app/views/devise/registrations/new.html.erb
@@ -57,17 +57,17 @@
   $('.Facebook-button').click(function(){
     $('#social-modal-continue').empty();
     $('#social-modal-continue').append('<button type="button" class="btn btn-danger" style="float:left;" data-dismiss="modal">Recusar</button>');
-    $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:facebook), class: 'btn btn-primary' %>');
+    $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:facebook), class: 'btn btn-success' %>');
   });
   $('.Google-button').click(function(){
     $('#social-modal-continue').empty();
     $('#social-modal-continue').append('<button type="button" class="btn btn-danger" style="float:left;" data-dismiss="modal">Recusar</button>');
-    $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:google_oauth2), class: 'btn btn-primary' %>');
+    $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:google_oauth2), class: 'btn btn-success' %>');
   });
   $('.Twitter-button').click(function(){
     $('#social-modal-continue').empty();
     $('#social-modal-continue').append('<button type="button" class="btn btn-danger" style="float:left;" data-dismiss="modal">Recusar</button>');
-    $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:twitter), class: 'btn btn-primary' %>');
+    $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:twitter), class: 'btn btn-success' %>');
   });
 
 </script>
diff --git a/app/views/learning_objects/_form.html.erb b/app/views/learning_objects/_form.html.erb
index 0a9ed4b0d81072e96587730b8708202aa596aa7a..2561430cab7b0f677bc559aaefda06097c21c659 100644
--- a/app/views/learning_objects/_form.html.erb
+++ b/app/views/learning_objects/_form.html.erb
@@ -74,7 +74,7 @@
       linkInput = $("#link-input");
 
   radioButtons.change(function (e) {
-    if ("Website externo" == $(this).nextSibling) {
+    if ("Website externo" == ($("input:radio:checked")[0].nextSibling.textContent)) {
       linkInput.slideDown();
     } else {
       linkInput.slideUp();
diff --git a/app/views/learning_objects/_learning_object_vertical.erb b/app/views/learning_objects/_learning_object_vertical.erb
index 91f12fba15cb7f9f8bce04a6ea82eec8426d25b5..5319ca6735e835e96ae00b41db508fa07681cd81 100644
--- a/app/views/learning_objects/_learning_object_vertical.erb
+++ b/app/views/learning_objects/_learning_object_vertical.erb
@@ -1,4 +1,4 @@
-<div class="learning-object-vertical" data-loid="<%= learning_object.id %>">
+<div class="learning-object-vertical" data-loid="<%= learning_object.id %>" data-type="LearningObject" >
   <div class="panel">
     <div class="learning-object-thumbnail">
       <%= link_to learning_object_path(id: learning_object.id) do
diff --git a/app/views/reviews/_review.html.erb b/app/views/reviews/_review.html.erb
index 26be687014198af12376919b3c2b1046f6af1426..761733968ea78c21e499f006af787b6fc12aadbb 100644
--- a/app/views/reviews/_review.html.erb
+++ b/app/views/reviews/_review.html.erb
@@ -63,11 +63,23 @@
             <% end %>
           </span> 
 
-          <%= link_to rate_review_path(id: review.id, approves: true), class: ("btn btn-default btn-xs review-button review-button-approve " + (review.user_approves?(current_user) ? "approved" : "") ), method: :post, remote: true do %>
+          
+          <% approves = review.user_approves?(current_user) %>
+          <% button_approves_class = "btn btn-default btn-xs review-button review-button-approve " %>
+          <% button_desapproves_class = "btn btn-default btn-xs review-button review-button-desapprove " %>
+          <% if !approves.nil? %>
+            <% if approves%>
+              <%button_approves_class += "approved" %>
+            <%else%>
+              <%button_desapproves_class += "desapproved" %>
+            <%end%>
+          <%end%>
+
+          <%= link_to rate_review_path(id: review.id, approves: true), class: button_approves_class, method: :post, remote: true do %>
           <i class="fa fa-thumbs-up fa-2x" aria-hidden="true"></i>
           <% end %>
           
-          <%= link_to rate_review_path(id: review.id, approves: false), class: ("btn btn-default btn-xs review-button review-button-desapprove " + (review.user_approves?(current_user) ? "": "desapproved")), method: :post, remote: true do %>
+          <%= link_to rate_review_path(id: review.id, approves: false), class: button_desapproves_class, method: :post, remote: true do %>
           <i class="fa fa-thumbs-down fa-2x" aria-hidden="true"></i>
           <% end %>
 
diff --git a/app/views/shared/application/_search.erb b/app/views/shared/application/_search.erb
index da844e70f8941b027f89828617add63475ed9553..e239aa2859cdbd26ddca883903044f91c9141e3a 100644
--- a/app/views/shared/application/_search.erb
+++ b/app/views/shared/application/_search.erb
@@ -1,7 +1,7 @@
 <div class="search-input">
   <form action="/search" method="get">
     <div class="input-group" id="search">
-      <input type="text" data-lo="<%=number_with_delimiter(LearningObject.count, delimiter: ".") %>" data-user="<%= number_with_delimiter(User.count, delimiter: ".") %>" data-collection="<%= number_with_delimiter(Collection.count, delimiter: ".") %>" placeholder="" class="form-control" name="query" id="main_search">
+      <input type="text" data-lo="<%=number_with_delimiter(LearningObject.count, delimiter: ".") %>" data-user="<%= number_with_delimiter(User.count, delimiter: ".") %>" data-collection="<%= number_with_delimiter(Collection.where(privacy: 'public').count, delimiter: ".") %>" placeholder="" class="form-control" name="query" id="main_search">
       <select name="search_class" id="search_class" class="form-control">
         <option value="LearningObject" selected>Conteúdos Educacionais</option>
         <option value="Collection">Coleções</option>
diff --git a/config/database.yml b/config/database.yml
index 3b40ba589c8c0f29a9563677dafa1bfaa7db72e7..d224689f8e16ec2e9ad4f9d709b9ee59cc906fd9 100644
--- a/config/database.yml
+++ b/config/database.yml
@@ -10,10 +10,7 @@ development: &development
   password:
 
 test:
-  <<: *defaults
-  database: portalmec_test
-  username:
-  password:
+  url: <%= ENV['DATABASE_URL'] %>
 
 production:
   <<: *defaults
diff --git a/config/database.yml.gitlab b/config/database.yml.gitlab
new file mode 100644
index 0000000000000000000000000000000000000000..fb08e1e402d9f56a785d86d5c18cee25eb90c3cb
--- /dev/null
+++ b/config/database.yml.gitlab
@@ -0,0 +1,24 @@
+default: &defaults
+  adapter: postgresql
+  encoding: unicode
+  pool: 5
+
+development: &development
+  <<: *defaults
+  database: portalmec_dev
+  username:
+  password:
+
+test:
+  <<: *defaults
+  host: localhost
+  database: <%= ENV['POSTGRES_DB'] %>
+  username: <%= ENV['POSTGRES_USER'] %>
+  password: <%= ENV['POSTGRES_PASSWORD'] %>
+
+production:
+  <<: *defaults
+  host: <%= ENV['PORTALMEC_DB_HOST'] %>
+  database: <%= ENV['PORTALMEC_DB_NAME'] %>
+  username: <%= ENV['PORTALMEC_DB_USERNAME'] %>
+  password: <%= ENV['PORTALMEC_DB_PASSWORD'] %>
diff --git a/config/routes.rb b/config/routes.rb
index 47da59df4fc0cc5d82eb98d0e445f283c7980015..3a6aa06ca2fa0df06f61e6a951b020bbb5bc468f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -110,6 +110,7 @@ Rails.application.routes.draw do
   end
 
   get '/bookmarks' => 'bookmarks#show', as: 'bookmark'
+  get '/bookmarks/list' => 'bookmarks#list', as: 'list'
   post '/bookmarks/:type/:id' => 'bookmarks#add_object', as: :bookmark_add
   delete '/bookmarks/:type/:id' => 'bookmarks#remove_object', as: :bookmark_remove