diff --git a/app/models/user.rb b/app/models/user.rb
index 8e9bc581280d71a08681b41ea3e04f17039f5d57..2b6fdd7ff8a447267b13fcd8117ff5aed621ce43 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -18,14 +18,33 @@
 #    When devise create user, the active record hooks will sync with user repository
 #    And, when the application call the user repository, it will keep sync with active record user model
 class User < ActiveRecord::Base
+  include RepositoriesProxy
+
   # Include default devise modules. Others available are:
   # :confirmable, :lockable, :timeoutable and :omniauthable
   devise :database_authenticatable, :registerable,
          :recoverable, :rememberable, :trackable, :validatable
   has_and_belongs_to_many :roles
+
   after_create SyncUserRepositoryService.new
   after_destroy SyncUserRepositoryService.new
 
-  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "60x60>" }, default_url: lambda { |image| ActionController::Base.helpers.asset_path('user-anon.png') }
+  after_create CreateUserBookmarksService.new
+  after_destroy CreateUserBookmarksService.new
+
+  has_attached_file :avatar, styles: {medium: "300x300>", thumb: "60x60>"}, default_url: lambda { |image| ActionController::Base.helpers.asset_path('user-anon.png') }
   validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/
+
+  def collections
+    collection_repository.all self
+  end
+
+  def bookmarks
+    collection_repository.bookmarks self
+  end
+
+  def learning_objects
+    learning_object_repository.all self
+  end
+
 end
diff --git a/app/repositories/orient_db/collection_repository.rb b/app/repositories/orient_db/collection_repository.rb
index 5082f6b7bf5b96ca8b66bc6c3fe00f34fbdf7a90..dadf63ac157daa2bce1f6112a15ca3778a595e41 100644
--- a/app/repositories/orient_db/collection_repository.rb
+++ b/app/repositories/orient_db/collection_repository.rb
@@ -17,15 +17,35 @@ module OrientDb
       end
     end
 
+    def destroy_bookmarks_collection(user)
+      bookmarks = Bookmarks.new(owner: user)
+
+      if has_bookmarks?(user)
+        destroy bookmarks
+      end
+    end
+
     def create(object)
       super(object)
-
-      # the collection belongs to user
       create_edge "BelongsTo", object.id, object.owner.rid
     end
 
+    def destroy(object)
+      super(object)
+      destroy_edge "BelongsTo", object.id, object.owner.rid
+    end
+
     def all(user)
-      []
+      [Collection.new(name: 'Aula física quantica - turma b', owner: user),
+       Collection.new(name: 'Aula segunda lei de newton - turma a', owner: user)]
+    end
+
+    def bookmarks(user)
+      Bookmarks.new(owner: user)
+    end
+
+    def has_bookmarks?(user)
+      false
     end
 
     private
diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb
index 8220c254c5474cd156e0059ee831e7bc176d10f8..50ee87a2dc3b572a77823e202f7b723c88915b28 100644
--- a/app/repositories/orient_db/learning_object_repository.rb
+++ b/app/repositories/orient_db/learning_object_repository.rb
@@ -60,6 +60,11 @@ module OrientDb
       build_object result.first
     end
 
+    def all(user)
+      result = select_by_property(odb_class, "p_id", user.id)
+      build_objects result
+    end
+
     def get_subjects(learning_object)
       result = get_edges_end("IsAbout", "out", learning_object.id)
       subject_repository.build_objects(result)
diff --git a/app/services/create_user_bookmarks_service.rb b/app/services/create_user_bookmarks_service.rb
new file mode 100644
index 0000000000000000000000000000000000000000..588df67d83fa382fac0dd6b5f5a033690e160a89
--- /dev/null
+++ b/app/services/create_user_bookmarks_service.rb
@@ -0,0 +1,12 @@
+class CreateUserBookmarksService
+  include RepositoriesProxy
+
+  def after_create(user)
+    collection_repository.create_bookmarks_collection user
+  end
+
+  def after_destroy(user)
+    collection_repository.destroy_bookmarks_collection user
+  end
+
+end
\ No newline at end of file