diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee
index ce53d14d6713947a3c430253f861487c9c590717..8ce13e6851e65c1dc25672ece3fa3334b3021117 100644
--- a/app/assets/javascripts/dispatcher.js.coffee
+++ b/app/assets/javascripts/dispatcher.js.coffee
@@ -18,19 +18,19 @@ class Dispatcher
     path = page.split(':')
 
     switch page
-      when 'issues:index'
+      when 'projects:issues:index'
         Issues.init()
       when 'dashboard:show'
         new Dashboard()
-      when 'commit:show'
+      when 'projects:commit:show'
         new Commit()
-      when 'groups:show', 'teams:show', 'projects:show'
+      when 'groups:show', 'projects:show'
         Pager.init(20, true)
       when 'projects:new', 'projects:edit'
         new Project()
-      when 'walls:show'
+      when 'projects:walls:show'
         new Wall(project_id)
-      when 'teams:members:index'
+      when 'projects:teams:members:index'
         new TeamMembers()
       when 'groups:people'
         new GroupMembers()
diff --git a/app/controllers/project_resource_controller.rb b/app/controllers/project_resource_controller.rb
deleted file mode 100644
index ea78b3ff7c4684720abf1c4657cb487c63cc6df2..0000000000000000000000000000000000000000
--- a/app/controllers/project_resource_controller.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-class ProjectResourceController < ApplicationController
-  before_filter :project
-  before_filter :repository
-end
diff --git a/app/controllers/projects/application_controller.rb b/app/controllers/projects/application_controller.rb
index 86e4a7cbd6b9d15d88f33ad2ecc69caad22d8866..1f2a75175cf83b852525f9021af37244767e2231 100644
--- a/app/controllers/projects/application_controller.rb
+++ b/app/controllers/projects/application_controller.rb
@@ -1,4 +1,5 @@
 class Projects::ApplicationController < ApplicationController
   before_filter :project
   before_filter :repository
+  layout 'projects'
 end
diff --git a/app/controllers/blame_controller.rb b/app/controllers/projects/blame_controller.rb
similarity index 84%
rename from app/controllers/blame_controller.rb
rename to app/controllers/projects/blame_controller.rb
index c950af56e2695ed922133e556c0fd3fa17d8d257..e58b450720212df28c4726230d7c461d26bfa45b 100644
--- a/app/controllers/blame_controller.rb
+++ b/app/controllers/projects/blame_controller.rb
@@ -1,5 +1,5 @@
 # Controller for viewing a file's blame
-class BlameController < ProjectResourceController
+class Projects::BlameController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/blob_controller.rb b/app/controllers/projects/blob_controller.rb
similarity index 81%
rename from app/controllers/blob_controller.rb
rename to app/controllers/projects/blob_controller.rb
index 3547dfe23235c28d82dcdf7991448cbf65dd01a8..b1329c01ce77c83144df87b4dc6bd7546dc67540 100644
--- a/app/controllers/blob_controller.rb
+++ b/app/controllers/projects/blob_controller.rb
@@ -1,5 +1,5 @@
 # Controller for viewing a file's blame
-class BlobController < ProjectResourceController
+class Projects::BlobController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/commit_controller.rb b/app/controllers/projects/commit_controller.rb
similarity index 94%
rename from app/controllers/commit_controller.rb
rename to app/controllers/projects/commit_controller.rb
index a164de33107a9a40a9c5334c461ae898f35a6537..6a2d2315c1da5bf5b102888887b79d25bdab0add 100644
--- a/app/controllers/commit_controller.rb
+++ b/app/controllers/projects/commit_controller.rb
@@ -1,7 +1,7 @@
 # Controller for a specific Commit
 #
 # Not to be confused with CommitsController, plural.
-class CommitController < ProjectResourceController
+class Projects::CommitController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
diff --git a/app/controllers/commits_controller.rb b/app/controllers/projects/commits_controller.rb
similarity index 87%
rename from app/controllers/commits_controller.rb
rename to app/controllers/projects/commits_controller.rb
index cde1f459d76c779cacf07a0518dd0d7db59c7b41..bdffc940ea5241ba714101d6c829f0486d531f13 100644
--- a/app/controllers/commits_controller.rb
+++ b/app/controllers/projects/commits_controller.rb
@@ -1,6 +1,6 @@
 require "base64"
 
-class CommitsController < ProjectResourceController
+class Projects::CommitsController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/compare_controller.rb b/app/controllers/projects/compare_controller.rb
similarity index 88%
rename from app/controllers/compare_controller.rb
rename to app/controllers/projects/compare_controller.rb
index 750e9c2380ef821c6835547c51d80f3d2fd8887d..126a2ea50c9dd821d264d6460b4bf788e43cd83a 100644
--- a/app/controllers/compare_controller.rb
+++ b/app/controllers/projects/compare_controller.rb
@@ -1,4 +1,4 @@
-class CompareController < ProjectResourceController
+class Projects::CompareController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
diff --git a/app/controllers/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb
similarity index 94%
rename from app/controllers/deploy_keys_controller.rb
rename to app/controllers/projects/deploy_keys_controller.rb
index 4bd810f20c043eb856746f25cbf224f7e8296987..0750e0a146fe409787617f511242004a5fadd8ce 100644
--- a/app/controllers/deploy_keys_controller.rb
+++ b/app/controllers/projects/deploy_keys_controller.rb
@@ -1,4 +1,4 @@
-class DeployKeysController < ProjectResourceController
+class Projects::DeployKeysController < Projects::ApplicationController
   respond_to :html
 
   # Authorize
diff --git a/app/controllers/edit_tree_controller.rb b/app/controllers/projects/edit_tree_controller.rb
similarity index 95%
rename from app/controllers/edit_tree_controller.rb
rename to app/controllers/projects/edit_tree_controller.rb
index 9ed7a2143e41f189da7d732611172181810ef274..11c972912963416ee3cd481090bf55f2b5dc4582 100644
--- a/app/controllers/edit_tree_controller.rb
+++ b/app/controllers/projects/edit_tree_controller.rb
@@ -1,5 +1,5 @@
 # Controller for edit a repository's file
-class EditTreeController < ProjectResourceController
+class Projects::EditTreeController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/graphs_controller.rb b/app/controllers/projects/graphs_controller.rb
similarity index 85%
rename from app/controllers/graphs_controller.rb
rename to app/controllers/projects/graphs_controller.rb
index 6c2ac5fcbf42a6e71b81b219faeb755525b385c9..5ff330ba6caa85bd559a1539bc8522676830f4cf 100644
--- a/app/controllers/graphs_controller.rb
+++ b/app/controllers/projects/graphs_controller.rb
@@ -1,4 +1,4 @@
-class GraphsController < ProjectResourceController
+class Projects::GraphsController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
diff --git a/app/controllers/hooks_controller.rb b/app/controllers/projects/hooks_controller.rb
similarity index 91%
rename from app/controllers/hooks_controller.rb
rename to app/controllers/projects/hooks_controller.rb
index feaa16b6875624823eec884a40e4d7fb192fac0a..3367ddb5d141f3e8b0c0fa6291e1ae5ade7078b1 100644
--- a/app/controllers/hooks_controller.rb
+++ b/app/controllers/projects/hooks_controller.rb
@@ -1,4 +1,4 @@
-class HooksController < ProjectResourceController
+class Projects::HooksController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :authorize_admin_project!, only: [:new, :create, :destroy]
diff --git a/app/controllers/issues_controller.rb b/app/controllers/projects/issues_controller.rb
similarity index 97%
rename from app/controllers/issues_controller.rb
rename to app/controllers/projects/issues_controller.rb
index 65e727929242106bd0ebefa3bbb9e73ec54611b9..06f8a1233a365f73aa658da9b2f2022f575fda46 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -1,4 +1,4 @@
-class IssuesController < ProjectResourceController
+class Projects::IssuesController < Projects::ApplicationController
   before_filter :module_enabled
   before_filter :issue, only: [:edit, :update, :show]
 
diff --git a/app/controllers/labels_controller.rb b/app/controllers/projects/labels_controller.rb
similarity index 85%
rename from app/controllers/labels_controller.rb
rename to app/controllers/projects/labels_controller.rb
index 0e78cecf4d1334de712922b46ab7aa0cbd7a0d34..65f9e2b9d572264f3e1b67ee991b72c2485bebde 100644
--- a/app/controllers/labels_controller.rb
+++ b/app/controllers/projects/labels_controller.rb
@@ -1,4 +1,4 @@
-class LabelsController < ProjectResourceController
+class Projects::LabelsController < Projects::ApplicationController
   before_filter :module_enabled
 
   # Allow read any issue
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
similarity index 98%
rename from app/controllers/merge_requests_controller.rb
rename to app/controllers/projects/merge_requests_controller.rb
index 8d19e1b8b0b4ba3b8cc45001d5f5890224c09f34..0aa8bc8a6df2a28859b8bc85702647b71e45b8d3 100644
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -1,6 +1,6 @@
 require 'gitlab/satellite/satellite'
 
-class MergeRequestsController < ProjectResourceController
+class Projects::MergeRequestsController < Projects::ApplicationController
   before_filter :module_enabled
   before_filter :merge_request, only: [:edit, :update, :show, :commits, :diffs, :automerge, :automerge_check, :ci_status]
   before_filter :validates_merge_request, only: [:show, :diffs]
diff --git a/app/controllers/milestones_controller.rb b/app/controllers/projects/milestones_controller.rb
similarity index 96%
rename from app/controllers/milestones_controller.rb
rename to app/controllers/projects/milestones_controller.rb
index 25647f97576b9d0a085db7a84084237ce7f75ca8..f4ee7427d29f831a55f213428fbfeece0b4a4b4e 100644
--- a/app/controllers/milestones_controller.rb
+++ b/app/controllers/projects/milestones_controller.rb
@@ -1,4 +1,4 @@
-class MilestonesController < ProjectResourceController
+class Projects::MilestonesController < Projects::ApplicationController
   before_filter :module_enabled
   before_filter :milestone, only: [:edit, :update, :destroy, :show]
 
diff --git a/app/controllers/network_controller.rb b/app/controllers/projects/network_controller.rb
similarity index 87%
rename from app/controllers/network_controller.rb
rename to app/controllers/projects/network_controller.rb
index 3c8e747ba4e3461aa289bb5b279f4b2cec6f1493..e4a84f80787027fd899169e30557556e6cdbd01c 100644
--- a/app/controllers/network_controller.rb
+++ b/app/controllers/projects/network_controller.rb
@@ -1,4 +1,4 @@
-class NetworkController < ProjectResourceController
+class Projects::NetworkController < Projects::ApplicationController
   include ExtractsPath
   include ApplicationHelper
 
diff --git a/app/controllers/notes_controller.rb b/app/controllers/projects/notes_controller.rb
similarity index 96%
rename from app/controllers/notes_controller.rb
rename to app/controllers/projects/notes_controller.rb
index 15ca963f281f82bfcae78ac588508c4df090f1d4..ef15e419dbe3475b466d8b9466d58195668fb8ef 100644
--- a/app/controllers/notes_controller.rb
+++ b/app/controllers/projects/notes_controller.rb
@@ -1,4 +1,4 @@
-class NotesController < ProjectResourceController
+class Projects::NotesController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_note!
   before_filter :authorize_write_note!, only: [:create]
diff --git a/app/controllers/protected_branches_controller.rb b/app/controllers/projects/protected_branches_controller.rb
similarity index 89%
rename from app/controllers/protected_branches_controller.rb
rename to app/controllers/projects/protected_branches_controller.rb
index fd2734eff849bba5d224452286dd0a564e179ed4..81531bb0ac0a92a3b45905beaa8fd6b8609056b6 100644
--- a/app/controllers/protected_branches_controller.rb
+++ b/app/controllers/projects/protected_branches_controller.rb
@@ -1,4 +1,4 @@
-class ProtectedBranchesController < ProjectResourceController
+class Projects::ProtectedBranchesController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :require_non_empty_project
diff --git a/app/controllers/raw_controller.rb b/app/controllers/projects/raw_controller.rb
similarity index 88%
rename from app/controllers/raw_controller.rb
rename to app/controllers/projects/raw_controller.rb
index 18b401fe6112416fbcb82860c0fe7da2df6b0517..0d35f373e9c7511e10b12c69b1705019f7ff97fd 100644
--- a/app/controllers/raw_controller.rb
+++ b/app/controllers/projects/raw_controller.rb
@@ -1,5 +1,5 @@
 # Controller for viewing a file's raw
-class RawController < ProjectResourceController
+class Projects::RawController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/refs_controller.rb b/app/controllers/projects/refs_controller.rb
similarity index 94%
rename from app/controllers/refs_controller.rb
rename to app/controllers/projects/refs_controller.rb
index cae9193a1daca86fcf5d76173f932f9aaa15d166..e5c090e1f4dab63e565723a5d107d78d4518865d 100644
--- a/app/controllers/refs_controller.rb
+++ b/app/controllers/projects/refs_controller.rb
@@ -1,4 +1,4 @@
-class RefsController < ProjectResourceController
+class Projects::RefsController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
similarity index 91%
rename from app/controllers/repositories_controller.rb
rename to app/controllers/projects/repositories_controller.rb
index a7d393af82b91e01437d933dd8b82a80d4095a76..b65af029803ffdc894bafa599ab8552ee6d87872 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/projects/repositories_controller.rb
@@ -1,4 +1,4 @@
-class RepositoriesController < ProjectResourceController
+class Projects::RepositoriesController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :authorize_code_access!
diff --git a/app/controllers/services_controller.rb b/app/controllers/projects/services_controller.rb
similarity index 91%
rename from app/controllers/services_controller.rb
rename to app/controllers/projects/services_controller.rb
index 5710f553fa4e9392e122d6fbbc246499d8640a88..6db22186c14f58eaaee10ba4133e1ef3f7b49d53 100644
--- a/app/controllers/services_controller.rb
+++ b/app/controllers/projects/services_controller.rb
@@ -1,4 +1,4 @@
-class ServicesController < ProjectResourceController
+class Projects::ServicesController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_admin_project!
   before_filter :service, only: [:edit, :update, :test]
diff --git a/app/controllers/projects/snippets_controller.rb b/app/controllers/projects/snippets_controller.rb
index 1165fa1c583a2734f6225b6807b6c2c6ca49e813..59063103ecb78a91d58e168db7964cb8cab9586b 100644
--- a/app/controllers/projects/snippets_controller.rb
+++ b/app/controllers/projects/snippets_controller.rb
@@ -14,7 +14,7 @@ class Projects::SnippetsController < Projects::ApplicationController
   # Allow destroy snippet
   before_filter :authorize_admin_project_snippet!, only: [:destroy]
 
-  layout 'project_resource'
+  layout 'projects'
 
   respond_to :html
 
diff --git a/app/controllers/team_members_controller.rb b/app/controllers/projects/team_members_controller.rb
similarity index 95%
rename from app/controllers/team_members_controller.rb
rename to app/controllers/projects/team_members_controller.rb
index 5f2493137c139457cebaeb1a82c683232611dc39..07ad7d861530d86892dcecf3a7ff0a62045964f5 100644
--- a/app/controllers/team_members_controller.rb
+++ b/app/controllers/projects/team_members_controller.rb
@@ -1,4 +1,4 @@
-class TeamMembersController < ProjectResourceController
+class Projects::TeamMembersController < Projects::ApplicationController
   # Authorize
   before_filter :authorize_read_project!
   before_filter :authorize_admin_project!, except: [:index, :show]
diff --git a/app/controllers/tree_controller.rb b/app/controllers/projects/tree_controller.rb
similarity index 85%
rename from app/controllers/tree_controller.rb
rename to app/controllers/projects/tree_controller.rb
index 24e1329f926ad710be51725728f3a3f5099661c6..5d543f356658059e39421267adad8a4dc69bc1de 100644
--- a/app/controllers/tree_controller.rb
+++ b/app/controllers/projects/tree_controller.rb
@@ -1,5 +1,5 @@
 # Controller for viewing a repository's file structure
-class TreeController < ProjectResourceController
+class Projects::TreeController < Projects::ApplicationController
   include ExtractsPath
 
   # Authorize
diff --git a/app/controllers/walls_controller.rb b/app/controllers/projects/walls_controller.rb
similarity index 79%
rename from app/controllers/walls_controller.rb
rename to app/controllers/projects/walls_controller.rb
index 5993a5e240937045eede8e67bb648b5a381e24a5..834215a1473cfcaff0befd91420de37c0b3f9d3c 100644
--- a/app/controllers/walls_controller.rb
+++ b/app/controllers/projects/walls_controller.rb
@@ -1,4 +1,4 @@
-class WallsController < ProjectResourceController
+class Projects::WallsController < Projects::ApplicationController
   before_filter :module_enabled
 
   respond_to :js, :html
diff --git a/app/controllers/wikis_controller.rb b/app/controllers/projects/wikis_controller.rb
similarity index 97%
rename from app/controllers/wikis_controller.rb
rename to app/controllers/projects/wikis_controller.rb
index be9ae4f37a4a6cc6f865115d326ac932168607ec..797f3d3dd41fa387b117cb4dcc8c6be10dadcb13 100644
--- a/app/controllers/wikis_controller.rb
+++ b/app/controllers/projects/wikis_controller.rb
@@ -1,4 +1,4 @@
-class WikisController < ProjectResourceController
+class Projects::WikisController < Projects::ApplicationController
   before_filter :authorize_read_wiki!
   before_filter :authorize_write_wiki!, only: [:edit, :create, :history]
   before_filter :authorize_admin_wiki!, only: :destroy
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 858a638c7be5a7fdbd4c7b4e763429c32d4629c8..34b1d708ba722014fd2c0892a7ff9d89c9e3afce 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -1,4 +1,4 @@
-class ProjectsController < ProjectResourceController
+class ProjectsController < Projects::ApplicationController
   skip_before_filter :project, only: [:new, :create]
   skip_before_filter :repository, only: [:new, :create]
 
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 95ca294cd2d6bd9ca8049da927c4f79e160494d0..2bc618941935f6fae5ae3151cfe4bd8f35d12cf8 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -109,7 +109,7 @@ module CommitsHelper
   end
 
   def commit_to_html commit
-    escape_javascript(render 'commits/commit', commit: commit)
+    escape_javascript(render 'projects/commits/commit', commit: commit)
   end
 
   def diff_line_content(line)
diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb
index af633f6fd04b2a484260fdbc8c557bf159874245..d41f83775593dd6040cbd1d08966c893e334c753 100644
--- a/app/helpers/tree_helper.rb
+++ b/app/helpers/tree_helper.rb
@@ -10,13 +10,13 @@ module TreeHelper
     tree = ""
 
     # Render folders if we have any
-    tree += render partial: 'tree/tree_item', collection: folders, locals: {type: 'folder'} if folders.present?
+    tree += render partial: 'projects/tree/tree_item', collection: folders, locals: {type: 'folder'} if folders.present?
 
     # Render files if we have any
-    tree += render partial: 'tree/blob_item', collection: files, locals: {type: 'file'} if files.present?
+    tree += render partial: 'projects/tree/blob_item', collection: files, locals: {type: 'file'} if files.present?
 
     # Render submodules if we have any
-    tree += render partial: 'tree/submodule_item', collection: submodules if submodules.present?
+    tree += render partial: 'projects/tree/submodule_item', collection: submodules if submodules.present?
 
     tree.html_safe
   end
diff --git a/app/views/dashboard/issues.html.haml b/app/views/dashboard/issues.html.haml
index b41edb9eb606b727f8d16e820df3b79ae7539b76..356e0847ae755f498d58a778c70e92ab4c393c93 100644
--- a/app/views/dashboard/issues.html.haml
+++ b/app/views/dashboard/issues.html.haml
@@ -22,7 +22,7 @@
 
           %ul.well-list.issues-list
             - group[1].each do |issue|
-              = render issue
+              = render 'projects/issues/issue', issue: issue
       %hr
       = paginate @issues, theme: "gitlab"
     - else
diff --git a/app/views/groups/issues.html.haml b/app/views/groups/issues.html.haml
index 6d642b65cbd43bfec3fc4959e16b941747686044..38dac634bf934c49cc5cb003bbba51d9ba0162ed 100644
--- a/app/views/groups/issues.html.haml
+++ b/app/views/groups/issues.html.haml
@@ -16,7 +16,7 @@
             = link_to_project project
           %ul.well-list.issues-list
             - group[1].each do |issue|
-              = render issue
+              = render 'projects/issues/issue', issue: issue
       %hr
       = paginate @issues, theme: "gitlab"
     - else
diff --git a/app/views/layouts/project_resource.html.haml b/app/views/layouts/projects.html.haml
similarity index 100%
rename from app/views/layouts/project_resource.html.haml
rename to app/views/layouts/projects.html.haml
diff --git a/app/views/blame/_head.html.haml b/app/views/projects/blame/_head.html.haml
similarity index 100%
rename from app/views/blame/_head.html.haml
rename to app/views/projects/blame/_head.html.haml
diff --git a/app/views/blame/show.html.haml b/app/views/projects/blame/show.html.haml
similarity index 96%
rename from app/views/blame/show.html.haml
rename to app/views/projects/blame/show.html.haml
index 297e30356a78dbed88d368e67f06cbeb1280d902..3f68db659fca5fca86fcd1e937a8d2585960f258 100644
--- a/app/views/blame/show.html.haml
+++ b/app/views/projects/blame/show.html.haml
@@ -17,7 +17,7 @@
       %span.file_name
         = @blob.name
         %small= number_to_human_size @blob.size
-      %span.options= render "blob/actions"
+      %span.options= render "projects/blob/actions"
     .file_content.blame
       %table
         - current_line = 1
diff --git a/app/views/blob/_actions.html.haml b/app/views/projects/blob/_actions.html.haml
similarity index 100%
rename from app/views/blob/_actions.html.haml
rename to app/views/projects/blob/_actions.html.haml
diff --git a/app/views/blob/_blob.html.haml b/app/views/projects/blob/_blob.html.haml
similarity index 100%
rename from app/views/blob/_blob.html.haml
rename to app/views/projects/blob/_blob.html.haml
diff --git a/app/views/blob/_download.html.haml b/app/views/projects/blob/_download.html.haml
similarity index 100%
rename from app/views/blob/_download.html.haml
rename to app/views/projects/blob/_download.html.haml
diff --git a/app/views/blob/_image.html.haml b/app/views/projects/blob/_image.html.haml
similarity index 100%
rename from app/views/blob/_image.html.haml
rename to app/views/projects/blob/_image.html.haml
diff --git a/app/views/blob/_text.html.haml b/app/views/projects/blob/_text.html.haml
similarity index 100%
rename from app/views/blob/_text.html.haml
rename to app/views/projects/blob/_text.html.haml
diff --git a/app/views/blob/show.html.haml b/app/views/projects/blob/show.html.haml
similarity index 100%
rename from app/views/blob/show.html.haml
rename to app/views/projects/blob/show.html.haml
diff --git a/app/views/commit/_commit_box.html.haml b/app/views/projects/commit/_commit_box.html.haml
similarity index 100%
rename from app/views/commit/_commit_box.html.haml
rename to app/views/projects/commit/_commit_box.html.haml
diff --git a/app/views/commit/huge_commit.html.haml b/app/views/projects/commit/huge_commit.html.haml
similarity index 100%
rename from app/views/commit/huge_commit.html.haml
rename to app/views/projects/commit/huge_commit.html.haml
diff --git a/app/views/commit/show.html.haml b/app/views/projects/commit/show.html.haml
similarity index 68%
rename from app/views/commit/show.html.haml
rename to app/views/projects/commit/show.html.haml
index 6cb1a6905cad2fc7032aa8f02abef1985b07a078..603406202ca27d569a26dd50c0167ea35042ad9b 100644
--- a/app/views/commit/show.html.haml
+++ b/app/views/projects/commit/show.html.haml
@@ -7,5 +7,5 @@
     and
     %span.cred #{@commit.stats.deletions} deletions
 
-= render "commits/diffs", diffs: @commit.diffs
-= render "notes/notes_with_form"
+= render "projects/commits/diffs", diffs: @commit.diffs
+= render "projects/notes/notes_with_form"
diff --git a/app/views/commits/_commit.html.haml b/app/views/projects/commits/_commit.html.haml
similarity index 100%
rename from app/views/commits/_commit.html.haml
rename to app/views/projects/commits/_commit.html.haml
diff --git a/app/views/commits/_commits.html.haml b/app/views/projects/commits/_commits.html.haml
similarity index 100%
rename from app/views/commits/_commits.html.haml
rename to app/views/projects/commits/_commits.html.haml
diff --git a/app/views/commits/_diff_head.html.haml b/app/views/projects/commits/_diff_head.html.haml
similarity index 100%
rename from app/views/commits/_diff_head.html.haml
rename to app/views/projects/commits/_diff_head.html.haml
diff --git a/app/views/commits/_diffs.html.haml b/app/views/projects/commits/_diffs.html.haml
similarity index 89%
rename from app/views/commits/_diffs.html.haml
rename to app/views/projects/commits/_diffs.html.haml
index 3f4d51f753a4e8121d450cce1f3a2a9808eb249d..8e3cbff8f3e8a03ec8c00ee9ef5e5bc7b239c491 100644
--- a/app/views/commits/_diffs.html.haml
+++ b/app/views/projects/commits/_diffs.html.haml
@@ -10,7 +10,7 @@
 %p.cgray
   Showing #{pluralize(diffs.count, "changed file")}
 .file-stats
-  = render "commits/diff_head", diffs: diffs
+  = render "projects/commits/diff_head", diffs: diffs
 
 .files
   - unless @suppress_diff
@@ -41,9 +41,9 @@
           -# Skipp all non non-supported blobs
           - next unless file.respond_to?('text?')
           - if file.text?
-            = render "commits/text_file", diff: diff, index: i
+            = render "projects/commits/text_file", diff: diff, index: i
           - elsif file.image?
             - old_file = Gitlab::Git::Blob.new(@repository, @commit.parent_id, @ref, diff.old_path) if @commit.parent_id
-            = render "commits/image", diff: diff, old_file: old_file, file: file, index: i
+            = render "projects/commits/image", diff: diff, old_file: old_file, file: file, index: i
           - else
             %p.nothing_here_message No preview for this file type
diff --git a/app/views/commits/_head.html.haml b/app/views/projects/commits/_head.html.haml
similarity index 100%
rename from app/views/commits/_head.html.haml
rename to app/views/projects/commits/_head.html.haml
diff --git a/app/views/commits/_image.html.haml b/app/views/projects/commits/_image.html.haml
similarity index 100%
rename from app/views/commits/_image.html.haml
rename to app/views/projects/commits/_image.html.haml
diff --git a/app/views/commits/_text_file.html.haml b/app/views/projects/commits/_text_file.html.haml
similarity index 86%
rename from app/views/commits/_text_file.html.haml
rename to app/views/projects/commits/_text_file.html.haml
index 8f737e43887971625611d2d9f776ff7c23c62269..bfc3180a84cb6d1f546d927aa811736b2c062898 100644
--- a/app/views/commits/_text_file.html.haml
+++ b/app/views/projects/commits/_text_file.html.haml
@@ -13,11 +13,11 @@
         %td.old_line
           = link_to raw(type == "new" ? "&nbsp;" : line_old), "##{line_code}", id: line_code
           - if @comments_allowed
-            = render "notes/diff_note_link", line_code: line_code
+            = render "projects/notes/diff_note_link", line_code: line_code
         %td.new_line= link_to raw(type == "old" ? "&nbsp;" : line_new) , "##{line_code}", id: line_code
         %td.line_content{class: "noteable_line #{type} #{line_code}", "line_code" => line_code}= raw diff_line_content(line)
 
     - if @reply_allowed
       - comments = @line_notes.select { |n| n.line_code == line_code }.sort_by(&:created_at)
       - unless comments.empty?
-        = render "notes/diff_notes_with_reply", notes: comments
+        = render "projects/notes/diff_notes_with_reply", notes: comments
diff --git a/app/views/commits/show.atom.builder b/app/views/projects/commits/show.atom.builder
similarity index 100%
rename from app/views/commits/show.atom.builder
rename to app/views/projects/commits/show.atom.builder
diff --git a/app/views/commits/show.html.haml b/app/views/projects/commits/show.html.haml
similarity index 100%
rename from app/views/commits/show.html.haml
rename to app/views/projects/commits/show.html.haml
diff --git a/app/views/commits/show.js.haml b/app/views/projects/commits/show.js.haml
similarity index 100%
rename from app/views/commits/show.js.haml
rename to app/views/projects/commits/show.js.haml
diff --git a/app/views/compare/_form.html.haml b/app/views/projects/compare/_form.html.haml
similarity index 100%
rename from app/views/compare/_form.html.haml
rename to app/views/projects/compare/_form.html.haml
diff --git a/app/views/compare/index.html.haml b/app/views/projects/compare/index.html.haml
similarity index 61%
rename from app/views/compare/index.html.haml
rename to app/views/projects/compare/index.html.haml
index 6c9a5fd83054aeaf4509f0b3f40c632631721137..95cfb60d88567473ee2db4a196387e47b068fc95 100644
--- a/app/views/compare/index.html.haml
+++ b/app/views/projects/compare/index.html.haml
@@ -1,4 +1,4 @@
-= render "commits/head"
+= render "projects/commits/head"
 
 %h3.page_title
   Compare View
diff --git a/app/views/compare/show.html.haml b/app/views/projects/compare/show.html.haml
similarity index 82%
rename from app/views/compare/show.html.haml
rename to app/views/projects/compare/show.html.haml
index 56c4a113ea0d0d3cf9d48569d9bae496e451c9f9..51e88d1c47d78916a46f4834b30e21ee2afcf376 100644
--- a/app/views/compare/show.html.haml
+++ b/app/views/projects/compare/show.html.haml
@@ -1,4 +1,4 @@
-= render "commits/head"
+= render "projects/commits/head"
 
 %h3.page_title
   Compare View
@@ -20,4 +20,4 @@
 
   - unless @diffs.empty?
     %h4 Diff
-    = render "commits/diffs", diffs: @diffs
+    = render "projects/commits/diffs", diffs: @diffs
diff --git a/app/views/deploy_keys/_deploy_key.html.haml b/app/views/projects/deploy_keys/_deploy_key.html.haml
similarity index 100%
rename from app/views/deploy_keys/_deploy_key.html.haml
rename to app/views/projects/deploy_keys/_deploy_key.html.haml
diff --git a/app/views/deploy_keys/_form.html.haml b/app/views/projects/deploy_keys/_form.html.haml
similarity index 100%
rename from app/views/deploy_keys/_form.html.haml
rename to app/views/projects/deploy_keys/_form.html.haml
diff --git a/app/views/deploy_keys/index.html.haml b/app/views/projects/deploy_keys/index.html.haml
similarity index 100%
rename from app/views/deploy_keys/index.html.haml
rename to app/views/projects/deploy_keys/index.html.haml
diff --git a/app/views/deploy_keys/new.html.haml b/app/views/projects/deploy_keys/new.html.haml
similarity index 100%
rename from app/views/deploy_keys/new.html.haml
rename to app/views/projects/deploy_keys/new.html.haml
diff --git a/app/views/deploy_keys/show.html.haml b/app/views/projects/deploy_keys/show.html.haml
similarity index 100%
rename from app/views/deploy_keys/show.html.haml
rename to app/views/projects/deploy_keys/show.html.haml
diff --git a/app/views/edit_tree/show.html.haml b/app/views/projects/edit_tree/show.html.haml
similarity index 100%
rename from app/views/edit_tree/show.html.haml
rename to app/views/projects/edit_tree/show.html.haml
diff --git a/app/views/graphs/show.html.haml b/app/views/projects/graphs/show.html.haml
similarity index 100%
rename from app/views/graphs/show.html.haml
rename to app/views/projects/graphs/show.html.haml
diff --git a/app/views/graphs/show.js.haml b/app/views/projects/graphs/show.js.haml
similarity index 100%
rename from app/views/graphs/show.js.haml
rename to app/views/projects/graphs/show.js.haml
diff --git a/app/views/hooks/_data_ex.html.erb b/app/views/projects/hooks/_data_ex.html.erb
similarity index 100%
rename from app/views/hooks/_data_ex.html.erb
rename to app/views/projects/hooks/_data_ex.html.erb
diff --git a/app/views/hooks/index.html.haml b/app/views/projects/hooks/index.html.haml
similarity index 100%
rename from app/views/hooks/index.html.haml
rename to app/views/projects/hooks/index.html.haml
diff --git a/app/views/issues/_filter.html.haml b/app/views/projects/issues/_filter.html.haml
similarity index 100%
rename from app/views/issues/_filter.html.haml
rename to app/views/projects/issues/_filter.html.haml
diff --git a/app/views/issues/_form.html.haml b/app/views/projects/issues/_form.html.haml
similarity index 100%
rename from app/views/issues/_form.html.haml
rename to app/views/projects/issues/_form.html.haml
diff --git a/app/views/issues/_head.html.haml b/app/views/projects/issues/_head.html.haml
similarity index 100%
rename from app/views/issues/_head.html.haml
rename to app/views/projects/issues/_head.html.haml
diff --git a/app/views/issues/_issue.html.haml b/app/views/projects/issues/_issue.html.haml
similarity index 100%
rename from app/views/issues/_issue.html.haml
rename to app/views/projects/issues/_issue.html.haml
diff --git a/app/views/issues/_issues.html.haml b/app/views/projects/issues/_issues.html.haml
similarity index 100%
rename from app/views/issues/_issues.html.haml
rename to app/views/projects/issues/_issues.html.haml
diff --git a/app/views/issues/edit.html.haml b/app/views/projects/issues/edit.html.haml
similarity index 100%
rename from app/views/issues/edit.html.haml
rename to app/views/projects/issues/edit.html.haml
diff --git a/app/views/issues/index.atom.builder b/app/views/projects/issues/index.atom.builder
similarity index 100%
rename from app/views/issues/index.atom.builder
rename to app/views/projects/issues/index.atom.builder
diff --git a/app/views/issues/index.html.haml b/app/views/projects/issues/index.html.haml
similarity index 98%
rename from app/views/issues/index.html.haml
rename to app/views/projects/issues/index.html.haml
index bf33769349afd13b62789fd014373068e589c896..d3fd9886d45dba977783b48513aedcda4025c3e1 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/projects/issues/index.html.haml
@@ -1,4 +1,4 @@
-= render "issues/head"
+= render "head"
 .issues_content
   %h3.page_title
     Issues
diff --git a/app/views/issues/index.js.haml b/app/views/projects/issues/index.js.haml
similarity index 100%
rename from app/views/issues/index.js.haml
rename to app/views/projects/issues/index.js.haml
diff --git a/app/views/issues/new.html.haml b/app/views/projects/issues/new.html.haml
similarity index 100%
rename from app/views/issues/new.html.haml
rename to app/views/projects/issues/new.html.haml
diff --git a/app/views/issues/show.html.haml b/app/views/projects/issues/show.html.haml
similarity index 97%
rename from app/views/issues/show.html.haml
rename to app/views/projects/issues/show.html.haml
index 2e204b8240dc933edb132f4a591aa01b4a145c9f..138db92eac03ac16f311571ea98c7dbd3800ca1b 100644
--- a/app/views/issues/show.html.haml
+++ b/app/views/projects/issues/show.html.haml
@@ -65,4 +65,4 @@
     - else
       = link_to 'Close Issue', project_issue_path(@project, @issue, issue: {state_event: :close }, status_only: true), method: :put, class: "btn grouped close_issue", title: "Close Issue"
 
-.voting_notes#notes= render "notes/notes_with_form"
+.voting_notes#notes= render "projects/notes/notes_with_form"
diff --git a/app/views/issues/update.js.haml b/app/views/projects/issues/update.js.haml
similarity index 100%
rename from app/views/issues/update.js.haml
rename to app/views/projects/issues/update.js.haml
diff --git a/app/views/labels/_label.html.haml b/app/views/projects/labels/_label.html.haml
similarity index 100%
rename from app/views/labels/_label.html.haml
rename to app/views/projects/labels/_label.html.haml
diff --git a/app/views/labels/index.html.haml b/app/views/projects/labels/index.html.haml
similarity index 91%
rename from app/views/labels/index.html.haml
rename to app/views/projects/labels/index.html.haml
index 53f411d932cff007318c16ec8c5a329ee10673ff..b6a4b07b9ae9783645d57324036711cfd6023ac9 100644
--- a/app/views/labels/index.html.haml
+++ b/app/views/projects/labels/index.html.haml
@@ -1,4 +1,4 @@
-= render "issues/head"
+= render "projects/issues/head"
 
 %h3.page_title
   Labels
diff --git a/app/views/merge_requests/_filter.html.haml b/app/views/projects/merge_requests/_filter.html.haml
similarity index 100%
rename from app/views/merge_requests/_filter.html.haml
rename to app/views/projects/merge_requests/_filter.html.haml
diff --git a/app/views/merge_requests/_form.html.haml b/app/views/projects/merge_requests/_form.html.haml
similarity index 100%
rename from app/views/merge_requests/_form.html.haml
rename to app/views/projects/merge_requests/_form.html.haml
diff --git a/app/views/merge_requests/_head.html.haml b/app/views/projects/merge_requests/_head.html.haml
similarity index 100%
rename from app/views/merge_requests/_head.html.haml
rename to app/views/projects/merge_requests/_head.html.haml
diff --git a/app/views/merge_requests/_merge_request.html.haml b/app/views/projects/merge_requests/_merge_request.html.haml
similarity index 100%
rename from app/views/merge_requests/_merge_request.html.haml
rename to app/views/projects/merge_requests/_merge_request.html.haml
diff --git a/app/views/merge_requests/_show.html.haml b/app/views/projects/merge_requests/_show.html.haml
similarity index 71%
rename from app/views/merge_requests/_show.html.haml
rename to app/views/projects/merge_requests/_show.html.haml
index d6e00ca9b8ba9027635bb5d7d0ed328231fc4fa2..987fb4bcc49d177df8a4f5e2cb0bc11fa8770183 100644
--- a/app/views/merge_requests/_show.html.haml
+++ b/app/views/projects/merge_requests/_show.html.haml
@@ -1,11 +1,11 @@
 .merge-request
-  = render "merge_requests/show/mr_title"
-  = render "merge_requests/show/how_to_merge"
-  = render "merge_requests/show/mr_box"
-  = render "merge_requests/show/mr_accept"
+  = render "projects/merge_requests/show/mr_title"
+  = render "projects/merge_requests/show/how_to_merge"
+  = render "projects/merge_requests/show/mr_box"
+  = render "projects/merge_requests/show/mr_accept"
   - if @project.gitlab_ci?
-    = render "merge_requests/show/mr_ci"
-  = render "merge_requests/show/commits"
+    = render "projects/merge_requests/show/mr_ci"
+  = render "projects/merge_requests/show/commits"
 
   - if @commits.present?
     %ul.nav.nav-tabs
@@ -19,9 +19,9 @@
           Diff
 
   .notes.tab-content.voting_notes#notes{ class: (controller.action_name == 'show') ? "" : "hide" }
-    = render "notes/notes_with_form"
+    = render "projects/notes/notes_with_form"
   .diffs.tab-content
-    = render "merge_requests/show/diffs" if @diffs
+    = render "projects/merge_requests/show/diffs" if @diffs
   .status
 
 :javascript
diff --git a/app/views/merge_requests/automerge.js.haml b/app/views/projects/merge_requests/automerge.js.haml
similarity index 100%
rename from app/views/merge_requests/automerge.js.haml
rename to app/views/projects/merge_requests/automerge.js.haml
diff --git a/app/views/merge_requests/branch_from.js.haml b/app/views/projects/merge_requests/branch_from.js.haml
similarity index 100%
rename from app/views/merge_requests/branch_from.js.haml
rename to app/views/projects/merge_requests/branch_from.js.haml
diff --git a/app/views/merge_requests/branch_to.js.haml b/app/views/projects/merge_requests/branch_to.js.haml
similarity index 100%
rename from app/views/merge_requests/branch_to.js.haml
rename to app/views/projects/merge_requests/branch_to.js.haml
diff --git a/app/views/merge_requests/commits.js.haml b/app/views/projects/merge_requests/commits.js.haml
similarity index 100%
rename from app/views/merge_requests/commits.js.haml
rename to app/views/projects/merge_requests/commits.js.haml
diff --git a/app/views/merge_requests/diffs.html.haml b/app/views/projects/merge_requests/diffs.html.haml
similarity index 100%
rename from app/views/merge_requests/diffs.html.haml
rename to app/views/projects/merge_requests/diffs.html.haml
diff --git a/app/views/merge_requests/diffs.js.haml b/app/views/projects/merge_requests/diffs.js.haml
similarity index 59%
rename from app/views/merge_requests/diffs.js.haml
rename to app/views/projects/merge_requests/diffs.js.haml
index 266892c01ef4c8958cc65f01db2c7b583c912a54..2964f0ec462a02c2be298ed8cbd19cb80de16bd7 100644
--- a/app/views/merge_requests/diffs.js.haml
+++ b/app/views/projects/merge_requests/diffs.js.haml
@@ -1,2 +1,2 @@
 :plain
-  merge_request.$(".diffs").html("#{escape_javascript(render(partial: "merge_requests/show/diffs"))}");
+  merge_request.$(".diffs").html("#{escape_javascript(render(partial: "projects/merge_requests/show/diffs"))}");
diff --git a/app/views/merge_requests/edit.html.haml b/app/views/projects/merge_requests/edit.html.haml
similarity index 100%
rename from app/views/merge_requests/edit.html.haml
rename to app/views/projects/merge_requests/edit.html.haml
diff --git a/app/views/merge_requests/index.html.haml b/app/views/projects/merge_requests/index.html.haml
similarity index 100%
rename from app/views/merge_requests/index.html.haml
rename to app/views/projects/merge_requests/index.html.haml
diff --git a/app/views/merge_requests/invalid.html.haml b/app/views/projects/merge_requests/invalid.html.haml
similarity index 79%
rename from app/views/merge_requests/invalid.html.haml
rename to app/views/projects/merge_requests/invalid.html.haml
index a73bef9e80ab5befe9bb524857105febdd29fb5e..c962811a3e4308d572dbdde355e9fc9b207b119d 100644
--- a/app/views/merge_requests/invalid.html.haml
+++ b/app/views/projects/merge_requests/invalid.html.haml
@@ -1,6 +1,6 @@
 .merge-request
-  = render "merge_requests/show/mr_title"
-  = render "merge_requests/show/mr_box"
+  = render "projects/merge_requests/show/mr_title"
+  = render "projects/merge_requests/show/mr_box"
 
   .alert.alert-error
     %h5
diff --git a/app/views/merge_requests/new.html.haml b/app/views/projects/merge_requests/new.html.haml
similarity index 100%
rename from app/views/merge_requests/new.html.haml
rename to app/views/projects/merge_requests/new.html.haml
diff --git a/app/views/merge_requests/show.html.haml b/app/views/projects/merge_requests/show.html.haml
similarity index 100%
rename from app/views/merge_requests/show.html.haml
rename to app/views/projects/merge_requests/show.html.haml
diff --git a/app/views/merge_requests/show.js.haml b/app/views/projects/merge_requests/show.js.haml
similarity index 100%
rename from app/views/merge_requests/show.js.haml
rename to app/views/projects/merge_requests/show.js.haml
diff --git a/app/views/merge_requests/show/_commits.html.haml b/app/views/projects/merge_requests/show/_commits.html.haml
similarity index 79%
rename from app/views/merge_requests/show/_commits.html.haml
rename to app/views/projects/merge_requests/show/_commits.html.haml
index eee786d71efafd0b7e64d1b95b5467045f9474bc..8630f02d5d907b709b8592defda6b7871e7d5186 100644
--- a/app/views/merge_requests/show/_commits.html.haml
+++ b/app/views/projects/merge_requests/show/_commits.html.haml
@@ -7,19 +7,19 @@
       - if @commits.count > 8
         %ul.first-commits.well-list
           - @commits.first(8).each do |commit|
-            = render "commits/commit", commit: commit
+            = render "projects/commits/commit", commit: commit
           %li.bottom
             8 of #{@commits.count} commits displayed.
             %strong
               %a.show-all-commits Click here to show all
         %ul.all-commits.hide.well-list
           - @commits.each do |commit|
-            = render "commits/commit", commit: commit
+            = render "projects/commits/commit", commit: commit
 
       - else
         %ul.well-list
           - @commits.each do |commit|
-            = render "commits/commit", commit: commit
+            = render "projects/commits/commit", commit: commit
 
 - else
   %h4.nothing_here_message
diff --git a/app/views/merge_requests/show/_diffs.html.haml b/app/views/projects/merge_requests/show/_diffs.html.haml
similarity index 85%
rename from app/views/merge_requests/show/_diffs.html.haml
rename to app/views/projects/merge_requests/show/_diffs.html.haml
index 033d66a4ad47d2e8d69352a8d2427346b7e1959d..1d52e824fada2e1ec98ebfe4e6ffdaaad9e138ac 100644
--- a/app/views/merge_requests/show/_diffs.html.haml
+++ b/app/views/projects/merge_requests/show/_diffs.html.haml
@@ -1,5 +1,5 @@
 - if @merge_request.valid_diffs?
-  = render "commits/diffs", diffs: @diffs
+  = render "projects/commits/diffs", diffs: @diffs
 - elsif @merge_request.broken_diffs?
   %h4.nothing_here_message
     Can't load diff.
diff --git a/app/views/merge_requests/show/_how_to_merge.html.haml b/app/views/projects/merge_requests/show/_how_to_merge.html.haml
similarity index 100%
rename from app/views/merge_requests/show/_how_to_merge.html.haml
rename to app/views/projects/merge_requests/show/_how_to_merge.html.haml
diff --git a/app/views/merge_requests/show/_mr_accept.html.haml b/app/views/projects/merge_requests/show/_mr_accept.html.haml
similarity index 100%
rename from app/views/merge_requests/show/_mr_accept.html.haml
rename to app/views/projects/merge_requests/show/_mr_accept.html.haml
diff --git a/app/views/merge_requests/show/_mr_box.html.haml b/app/views/projects/merge_requests/show/_mr_box.html.haml
similarity index 100%
rename from app/views/merge_requests/show/_mr_box.html.haml
rename to app/views/projects/merge_requests/show/_mr_box.html.haml
diff --git a/app/views/merge_requests/show/_mr_ci.html.haml b/app/views/projects/merge_requests/show/_mr_ci.html.haml
similarity index 100%
rename from app/views/merge_requests/show/_mr_ci.html.haml
rename to app/views/projects/merge_requests/show/_mr_ci.html.haml
diff --git a/app/views/merge_requests/show/_mr_title.html.haml b/app/views/projects/merge_requests/show/_mr_title.html.haml
similarity index 100%
rename from app/views/merge_requests/show/_mr_title.html.haml
rename to app/views/projects/merge_requests/show/_mr_title.html.haml
diff --git a/app/views/milestones/_form.html.haml b/app/views/projects/milestones/_form.html.haml
similarity index 100%
rename from app/views/milestones/_form.html.haml
rename to app/views/projects/milestones/_form.html.haml
diff --git a/app/views/milestones/_issues.html.haml b/app/views/projects/milestones/_issues.html.haml
similarity index 100%
rename from app/views/milestones/_issues.html.haml
rename to app/views/projects/milestones/_issues.html.haml
diff --git a/app/views/milestones/_merge_request.html.haml b/app/views/projects/milestones/_merge_request.html.haml
similarity index 100%
rename from app/views/milestones/_merge_request.html.haml
rename to app/views/projects/milestones/_merge_request.html.haml
diff --git a/app/views/milestones/_milestone.html.haml b/app/views/projects/milestones/_milestone.html.haml
similarity index 100%
rename from app/views/milestones/_milestone.html.haml
rename to app/views/projects/milestones/_milestone.html.haml
diff --git a/app/views/milestones/edit.html.haml b/app/views/projects/milestones/edit.html.haml
similarity index 100%
rename from app/views/milestones/edit.html.haml
rename to app/views/projects/milestones/edit.html.haml
diff --git a/app/views/milestones/index.html.haml b/app/views/projects/milestones/index.html.haml
similarity index 96%
rename from app/views/milestones/index.html.haml
rename to app/views/projects/milestones/index.html.haml
index fb7cbc41edf5efe9b584da1d9655e00da9c06277..1bc359398abbf3768bdea484943daaa3fd46e960 100644
--- a/app/views/milestones/index.html.haml
+++ b/app/views/projects/milestones/index.html.haml
@@ -1,4 +1,4 @@
-= render "issues/head"
+= render "projects/issues/head"
 .milestones_content
   %h3.page_title
     Milestones
diff --git a/app/views/milestones/new.html.haml b/app/views/projects/milestones/new.html.haml
similarity index 100%
rename from app/views/milestones/new.html.haml
rename to app/views/projects/milestones/new.html.haml
diff --git a/app/views/milestones/show.html.haml b/app/views/projects/milestones/show.html.haml
similarity index 99%
rename from app/views/milestones/show.html.haml
rename to app/views/projects/milestones/show.html.haml
index de33ab363e605338192bdb8fb864b7c1ce3d8f38..d16de0da390ee4b378f469b0efe7885bd8ca5227 100644
--- a/app/views/milestones/show.html.haml
+++ b/app/views/projects/milestones/show.html.haml
@@ -1,4 +1,4 @@
-= render "issues/head"
+= render "projects/issues/head"
 .row
   .span6
     %h3.page_title
diff --git a/app/views/milestones/update.js.haml b/app/views/projects/milestones/update.js.haml
similarity index 100%
rename from app/views/milestones/update.js.haml
rename to app/views/projects/milestones/update.js.haml
diff --git a/app/views/network/_head.html.haml b/app/views/projects/network/_head.html.haml
similarity index 100%
rename from app/views/network/_head.html.haml
rename to app/views/projects/network/_head.html.haml
diff --git a/app/views/network/show.html.haml b/app/views/projects/network/show.html.haml
similarity index 100%
rename from app/views/network/show.html.haml
rename to app/views/projects/network/show.html.haml
diff --git a/app/views/network/show.json.erb b/app/views/projects/network/show.json.erb
similarity index 100%
rename from app/views/network/show.json.erb
rename to app/views/projects/network/show.json.erb
diff --git a/app/views/notes/_diff_note_link.html.haml b/app/views/projects/notes/_diff_note_link.html.haml
similarity index 100%
rename from app/views/notes/_diff_note_link.html.haml
rename to app/views/projects/notes/_diff_note_link.html.haml
diff --git a/app/views/notes/_diff_notes_with_reply.html.haml b/app/views/projects/notes/_diff_notes_with_reply.html.haml
similarity index 77%
rename from app/views/notes/_diff_notes_with_reply.html.haml
rename to app/views/projects/notes/_diff_notes_with_reply.html.haml
index 0808f86b090c0c95ba6d293544a7056c1b8c3f08..5a1a945f399bdc139335fa0e20932810d34ea4d0 100644
--- a/app/views/notes/_diff_notes_with_reply.html.haml
+++ b/app/views/projects/notes/_diff_notes_with_reply.html.haml
@@ -8,4 +8,4 @@
     %ul.notes{ rel: note.discussion_id }
       = render notes
 
-    = render "notes/discussion_reply_button", note: note
+    = render "projects/notes/discussion_reply_button", note: note
diff --git a/app/views/notes/_discussion.html.haml b/app/views/projects/notes/_discussion.html.haml
similarity index 91%
rename from app/views/notes/_discussion.html.haml
rename to app/views/projects/notes/_discussion.html.haml
index eaefb442662002bc66746754fa6cd15cba055995..14d81bbb5ce27daac247307216159ffdac9ca94f 100644
--- a/app/views/notes/_discussion.html.haml
+++ b/app/views/projects/notes/_discussion.html.haml
@@ -38,7 +38,7 @@
     - if note.for_diff_line?
       - if note.diff
         .content
-          .file= render "notes/discussion_diff", discussion_notes: discussion_notes, note: note
+          .file= render "projects/notes/discussion_diff", discussion_notes: discussion_notes, note: note
       - else
         = link_to 'show outdated discussion', '#', class: 'js-show-outdated-discussion'
         %div.hide.outdated-discussion
@@ -51,7 +51,7 @@
       .content
         .notes{ rel: discussion_notes.first.discussion_id }
           = render discussion_notes
-        = render "notes/discussion_reply_button", note: discussion_notes.first
+        = render "projects/notes/discussion_reply_button", note: discussion_notes.first
 
     -# will be shown when the other one is hidden
     .discussion-hidden.content.hide
diff --git a/app/views/notes/_discussion_diff.html.haml b/app/views/projects/notes/_discussion_diff.html.haml
similarity index 90%
rename from app/views/notes/_discussion_diff.html.haml
rename to app/views/projects/notes/_discussion_diff.html.haml
index 20bdb3f35628e9e923ded6e0cb11cf50a3228310..c3f41a1b6b52b305657b442bae6545c5ab5b2f51 100644
--- a/app/views/notes/_discussion_diff.html.haml
+++ b/app/views/projects/notes/_discussion_diff.html.haml
@@ -21,4 +21,4 @@
           %td.line_content{class: "noteable_line #{type} #{line_code}", "line_code" => line_code}= raw "#{line} &nbsp;"
 
           - if line_code == note.line_code
-            = render "notes/diff_notes_with_reply", notes: discussion_notes
+            = render "projects/notes/diff_notes_with_reply", notes: discussion_notes
diff --git a/app/views/notes/_discussion_reply_button.html.haml b/app/views/projects/notes/_discussion_reply_button.html.haml
similarity index 100%
rename from app/views/notes/_discussion_reply_button.html.haml
rename to app/views/projects/notes/_discussion_reply_button.html.haml
diff --git a/app/views/notes/_form.html.haml b/app/views/projects/notes/_form.html.haml
similarity index 100%
rename from app/views/notes/_form.html.haml
rename to app/views/projects/notes/_form.html.haml
diff --git a/app/views/notes/_form_errors.html.haml b/app/views/projects/notes/_form_errors.html.haml
similarity index 100%
rename from app/views/notes/_form_errors.html.haml
rename to app/views/projects/notes/_form_errors.html.haml
diff --git a/app/views/notes/_note.html.haml b/app/views/projects/notes/_note.html.haml
similarity index 100%
rename from app/views/notes/_note.html.haml
rename to app/views/projects/notes/_note.html.haml
diff --git a/app/views/notes/_notes.html.haml b/app/views/projects/notes/_notes.html.haml
similarity index 90%
rename from app/views/notes/_notes.html.haml
rename to app/views/projects/notes/_notes.html.haml
index 4904249aeff0aaeba5bbe62d51be56642533a8ec..ac8901fe70458bcdbf3bd1cb5203792a05873de1 100644
--- a/app/views/notes/_notes.html.haml
+++ b/app/views/projects/notes/_notes.html.haml
@@ -8,4 +8,4 @@
 - else
   - @notes.each do |note|
     - next unless note.author
-    = render 'note', note: note
+    = render note
diff --git a/app/views/notes/_notes_with_form.html.haml b/app/views/projects/notes/_notes_with_form.html.haml
similarity index 86%
rename from app/views/notes/_notes_with_form.html.haml
rename to app/views/projects/notes/_notes_with_form.html.haml
index 38d1a3c93c03c7981ca5cdabcef9d060b0f0fdc3..ac28c7432ef98eda09ad0b7971a268c448bd1e59 100644
--- a/app/views/notes/_notes_with_form.html.haml
+++ b/app/views/projects/notes/_notes_with_form.html.haml
@@ -3,7 +3,7 @@
 
 .js-main-target-form
 - if can? current_user, :write_note, @project
-  = render "notes/form"
+  = render "projects/notes/form"
 
 :javascript
   NoteList.init("#{@target_id}", "#{@target_type}", "#{project_notes_path(@project)}");
diff --git a/app/views/notes/create.js.haml b/app/views/projects/notes/create.js.haml
similarity index 71%
rename from app/views/notes/create.js.haml
rename to app/views/projects/notes/create.js.haml
index 43e79c69f114e05d87a2bda3f52e643a4982daa9..c113b3482ecf04b26a83d75fbf556860f99b8d65 100644
--- a/app/views/notes/create.js.haml
+++ b/app/views/projects/notes/create.js.haml
@@ -1,17 +1,17 @@
 - if @note.valid?
-  var noteHtml = "#{escape_javascript(render "notes/note", note: @note)}";
+  var noteHtml = "#{escape_javascript(render @note)}";
 
   - if note_for_main_target?(@note)
     NoteList.appendNewNote(#{@note.id}, noteHtml);
   - else
     :plain
-      var firstDiscussionNoteHtml = "#{escape_javascript(render "notes/diff_notes_with_reply", notes: [@note])}";
+      var firstDiscussionNoteHtml = "#{escape_javascript(render "projects/notes/diff_notes_with_reply", notes: [@note])}";
       NoteList.appendNewDiscussionNote("#{@note.discussion_id}",
                                        firstDiscussionNoteHtml,
                                        noteHtml);
 
 - else
-  var errorsHtml = "#{escape_javascript(render 'notes/form_errors', note: @note)}";
+  var errorsHtml = "#{escape_javascript(render 'projects/notes/form_errors', note: @note)}";
   - if note_for_main_target?(@note)
     NoteList.errorsOnForm(errorsHtml);
   - else
diff --git a/app/views/notes/index.js.haml b/app/views/projects/notes/index.js.haml
similarity index 60%
rename from app/views/notes/index.js.haml
rename to app/views/projects/notes/index.js.haml
index 826862b1a867041a07848acef3fb4981d3c84ae4..6c4ed203497228da165b276c8c166b090808c8c1 100644
--- a/app/views/notes/index.js.haml
+++ b/app/views/projects/notes/index.js.haml
@@ -1,4 +1,4 @@
 - unless @notes.blank?
-  var notesHtml = "#{escape_javascript(render 'notes/notes')}";
+  var notesHtml = "#{escape_javascript(render 'projects/notes/notes')}";
   - new_note_ids = @notes.map(&:id)
   NoteList.setContent(#{new_note_ids}, notesHtml);
diff --git a/app/views/protected_branches/index.html.haml b/app/views/projects/protected_branches/index.html.haml
similarity index 96%
rename from app/views/protected_branches/index.html.haml
rename to app/views/projects/protected_branches/index.html.haml
index a338344c52d82f3075c3ae880fb1f9c6cd360376..f741f2f04956313c6fc498b537a28945fba1ba6f 100644
--- a/app/views/protected_branches/index.html.haml
+++ b/app/views/projects/protected_branches/index.html.haml
@@ -1,7 +1,7 @@
-= render "commits/head"
+= render "projects/commits/head"
 .row
   .span3
-    = render "repositories/filter"
+    = render "projects/repositories/filter"
   .span9
     .alert
       %p Protected branches designed to prevent push for all except #{link_to "masters", help_permissions_path, class: "vlink"}.
diff --git a/app/views/refs/logs_tree.js.haml b/app/views/projects/refs/logs_tree.js.haml
similarity index 86%
rename from app/views/refs/logs_tree.js.haml
rename to app/views/projects/refs/logs_tree.js.haml
index 0b517327139508c159cb94fed9b0131874ecb36b..1bea286a879479ccb579087db8cfe5156678f4de 100644
--- a/app/views/refs/logs_tree.js.haml
+++ b/app/views/projects/refs/logs_tree.js.haml
@@ -5,4 +5,4 @@
   :plain
     var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}");
     row.find("td.tree_time_ago").html('#{escape_javascript time_ago_in_words(commit.committed_date)} ago');
-    row.find("td.tree_commit").html('#{escape_javascript render("tree/tree_commit_column", commit: commit)}');
+    row.find("td.tree_commit").html('#{escape_javascript render("projects/tree/tree_commit_column", commit: commit)}');
diff --git a/app/views/repositories/_branch.html.haml b/app/views/projects/repositories/_branch.html.haml
similarity index 100%
rename from app/views/repositories/_branch.html.haml
rename to app/views/projects/repositories/_branch.html.haml
diff --git a/app/views/repositories/_feed.html.haml b/app/views/projects/repositories/_feed.html.haml
similarity index 100%
rename from app/views/repositories/_feed.html.haml
rename to app/views/projects/repositories/_feed.html.haml
diff --git a/app/views/repositories/_filter.html.haml b/app/views/projects/repositories/_filter.html.haml
similarity index 100%
rename from app/views/repositories/_filter.html.haml
rename to app/views/projects/repositories/_filter.html.haml
diff --git a/app/views/repositories/branches.html.haml b/app/views/projects/repositories/branches.html.haml
similarity index 70%
rename from app/views/repositories/branches.html.haml
rename to app/views/projects/repositories/branches.html.haml
index 14b5082e44e726f54e130ded194c56ae3841fa00..2bdd304cdac9d1581ddaa089d0be2fd1a64fc890 100644
--- a/app/views/repositories/branches.html.haml
+++ b/app/views/projects/repositories/branches.html.haml
@@ -1,4 +1,4 @@
-= render "commits/head"
+= render "projects/commits/head"
 .row
   .span3
     = render "filter"
@@ -12,4 +12,4 @@
             %th
         %tbody
           - @branches.each do |branch|
-            = render "repositories/branch", branch: branch
+            = render "projects/repositories/branch", branch: branch
diff --git a/app/views/repositories/show.html.haml b/app/views/projects/repositories/show.html.haml
similarity index 67%
rename from app/views/repositories/show.html.haml
rename to app/views/projects/repositories/show.html.haml
index e58e16f8bf16bd62f35e7ff1242b9fc236fd5cf3..84a32e62426dd0b787ab418a53e6dc16ed610101 100644
--- a/app/views/repositories/show.html.haml
+++ b/app/views/projects/repositories/show.html.haml
@@ -1,4 +1,4 @@
-= render "commits/head"
+= render "projects/commits/head"
 .row
   .span3
     = render "filter"
@@ -10,5 +10,5 @@
           %th Last commit
           %th
       - @activities.each do |update|
-        = render "repositories/branch", branch: update.head
+        = render "branch", branch: update.head
 
diff --git a/app/views/repositories/stats.html.haml b/app/views/projects/repositories/stats.html.haml
similarity index 95%
rename from app/views/repositories/stats.html.haml
rename to app/views/projects/repositories/stats.html.haml
index 6d1fb4686ea917196dac37860218cdced203c987..dfdbc898912a22a4d8dcdef6fb7a6c0c357ec7a7 100644
--- a/app/views/repositories/stats.html.haml
+++ b/app/views/projects/repositories/stats.html.haml
@@ -1,4 +1,4 @@
-= render "commits/head"
+= render "projects/commits/head"
 .row
   .span6
     %div#activity-chart.chart
diff --git a/app/views/repositories/tags.html.haml b/app/views/projects/repositories/tags.html.haml
similarity index 97%
rename from app/views/repositories/tags.html.haml
rename to app/views/projects/repositories/tags.html.haml
index bef5cd0841be9cb5b6ae18403e585bfcfe0e5253..5972ea6c5315aa36a51b17033e5a706dc76555b3 100644
--- a/app/views/repositories/tags.html.haml
+++ b/app/views/projects/repositories/tags.html.haml
@@ -1,4 +1,4 @@
-= render "commits/head"
+= render "projects/commits/head"
 - unless @tags.empty?
   %ul.bordered-list
     - @tags.each do |tag|
diff --git a/app/views/services/_form.html.haml b/app/views/projects/services/_form.html.haml
similarity index 100%
rename from app/views/services/_form.html.haml
rename to app/views/projects/services/_form.html.haml
diff --git a/app/views/services/edit.html.haml b/app/views/projects/services/edit.html.haml
similarity index 100%
rename from app/views/services/edit.html.haml
rename to app/views/projects/services/edit.html.haml
diff --git a/app/views/services/index.html.haml b/app/views/projects/services/index.html.haml
similarity index 100%
rename from app/views/services/index.html.haml
rename to app/views/projects/services/index.html.haml
diff --git a/app/views/projects/snippets/show.html.haml b/app/views/projects/snippets/show.html.haml
index da93e4bdbb113dbc26c36ba81f72c35a480767e6..36161c5706ca9222122f936ed028e96a3d5541de 100644
--- a/app/views/projects/snippets/show.html.haml
+++ b/app/views/projects/snippets/show.html.haml
@@ -10,4 +10,4 @@
       = @snippet.author_name
 %br
 %div= render 'projects/snippets/blob'
-%div#notes= render "notes/notes_with_form"
+%div#notes= render "projects/notes/notes_with_form"
diff --git a/app/views/team_members/_form.html.haml b/app/views/projects/team_members/_form.html.haml
similarity index 100%
rename from app/views/team_members/_form.html.haml
rename to app/views/projects/team_members/_form.html.haml
diff --git a/app/views/team_members/_group_members.html.haml b/app/views/projects/team_members/_group_members.html.haml
similarity index 100%
rename from app/views/team_members/_group_members.html.haml
rename to app/views/projects/team_members/_group_members.html.haml
diff --git a/app/views/team_members/_team.html.haml b/app/views/projects/team_members/_team.html.haml
similarity index 66%
rename from app/views/team_members/_team.html.haml
rename to app/views/projects/team_members/_team.html.haml
index 2a663bd994166c078529ed6588d127083d248811..99231e92152990ef293e64b37878ccb432966c6e 100644
--- a/app/views/team_members/_team.html.haml
+++ b/app/views/projects/team_members/_team.html.haml
@@ -6,4 +6,4 @@
       members (#{members.count})
     %ul.well-list
       - members.each do |team_member|
-        = render 'team_members/team_member', member: team_member, current_user_can_admin_project: can_admin_project
+        = render 'team_member', member: team_member, current_user_can_admin_project: can_admin_project
diff --git a/app/views/team_members/_team_member.html.haml b/app/views/projects/team_members/_team_member.html.haml
similarity index 100%
rename from app/views/team_members/_team_member.html.haml
rename to app/views/projects/team_members/_team_member.html.haml
diff --git a/app/views/team_members/import.html.haml b/app/views/projects/team_members/import.html.haml
similarity index 100%
rename from app/views/team_members/import.html.haml
rename to app/views/projects/team_members/import.html.haml
diff --git a/app/views/team_members/index.html.haml b/app/views/projects/team_members/index.html.haml
similarity index 85%
rename from app/views/team_members/index.html.haml
rename to app/views/projects/team_members/index.html.haml
index 59c65a66794852976f9ddeb848e8405a7f36eb2d..8f81390ca130b0f709036934ae5441fec31ba4e9 100644
--- a/app/views/team_members/index.html.haml
+++ b/app/views/projects/team_members/index.html.haml
@@ -12,5 +12,5 @@
   Read more about project permissions
   %strong= link_to "here", help_permissions_path, class: "vlink"
 - if @group
-  = render "team_members/group_members"
-= render "team_members/team", members: @users_projects
+  = render "group_members"
+= render "team", members: @users_projects
diff --git a/app/views/projects/team_members/new.html.haml b/app/views/projects/team_members/new.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..b1bc3ba0eba684a146b503fa89225bda4614e840
--- /dev/null
+++ b/app/views/projects/team_members/new.html.haml
@@ -0,0 +1 @@
+= render "form"
diff --git a/app/views/team_members/update.js.haml b/app/views/projects/team_members/update.js.haml
similarity index 100%
rename from app/views/team_members/update.js.haml
rename to app/views/projects/team_members/update.js.haml
diff --git a/app/views/tree/_blob_item.html.haml b/app/views/projects/tree/_blob_item.html.haml
similarity index 100%
rename from app/views/tree/_blob_item.html.haml
rename to app/views/projects/tree/_blob_item.html.haml
diff --git a/app/views/tree/_readme.html.haml b/app/views/projects/tree/_readme.html.haml
similarity index 100%
rename from app/views/tree/_readme.html.haml
rename to app/views/projects/tree/_readme.html.haml
diff --git a/app/views/tree/_submodule_item.html.haml b/app/views/projects/tree/_submodule_item.html.haml
similarity index 100%
rename from app/views/tree/_submodule_item.html.haml
rename to app/views/projects/tree/_submodule_item.html.haml
diff --git a/app/views/tree/_tree.html.haml b/app/views/projects/tree/_tree.html.haml
similarity index 95%
rename from app/views/tree/_tree.html.haml
rename to app/views/projects/tree/_tree.html.haml
index cc45faa14595adccac3f296bead48478616bf125..0b1148b3e74f80fc5425f9f2635c2850b0405fdd 100644
--- a/app/views/tree/_tree.html.haml
+++ b/app/views/projects/tree/_tree.html.haml
@@ -40,7 +40,7 @@
     = render_tree(tree)
 
   - if tree.readme
-    = render "tree/readme", readme: tree.readme
+    = render "projects/tree/readme", readme: tree.readme
 
 %div.tree_progress
 
diff --git a/app/views/tree/_tree_commit_column.html.haml b/app/views/projects/tree/_tree_commit_column.html.haml
similarity index 100%
rename from app/views/tree/_tree_commit_column.html.haml
rename to app/views/projects/tree/_tree_commit_column.html.haml
diff --git a/app/views/tree/_tree_item.html.haml b/app/views/projects/tree/_tree_item.html.haml
similarity index 100%
rename from app/views/tree/_tree_item.html.haml
rename to app/views/projects/tree/_tree_item.html.haml
diff --git a/app/views/tree/show.html.haml b/app/views/projects/tree/show.html.haml
similarity index 100%
rename from app/views/tree/show.html.haml
rename to app/views/projects/tree/show.html.haml
diff --git a/app/views/walls/show.html.haml b/app/views/projects/walls/show.html.haml
similarity index 100%
rename from app/views/walls/show.html.haml
rename to app/views/projects/walls/show.html.haml
diff --git a/app/views/wikis/_form.html.haml b/app/views/projects/wikis/_form.html.haml
similarity index 100%
rename from app/views/wikis/_form.html.haml
rename to app/views/projects/wikis/_form.html.haml
diff --git a/app/views/wikis/_main_links.html.haml b/app/views/projects/wikis/_main_links.html.haml
similarity index 100%
rename from app/views/wikis/_main_links.html.haml
rename to app/views/projects/wikis/_main_links.html.haml
diff --git a/app/views/wikis/_nav.html.haml b/app/views/projects/wikis/_nav.html.haml
similarity index 95%
rename from app/views/wikis/_nav.html.haml
rename to app/views/projects/wikis/_nav.html.haml
index 09a1986e105dc0b1588f6059469227729feb23fb..d62b46a7e5be74f70699630bda85e3df8a19d09b 100644
--- a/app/views/wikis/_nav.html.haml
+++ b/app/views/projects/wikis/_nav.html.haml
@@ -16,4 +16,4 @@
         %i.icon-plus
         New Page
 
-= render 'wikis/new'
+= render 'projects/wikis/new'
diff --git a/app/views/wikis/_new.html.haml b/app/views/projects/wikis/_new.html.haml
similarity index 100%
rename from app/views/wikis/_new.html.haml
rename to app/views/projects/wikis/_new.html.haml
diff --git a/app/views/wikis/edit.html.haml b/app/views/projects/wikis/edit.html.haml
similarity index 94%
rename from app/views/wikis/edit.html.haml
rename to app/views/projects/wikis/edit.html.haml
index cd74a738f8b1fa4a3314673a18555b92039851d1..4e318c92db3a37245941b5840a1a307d37662ea4 100644
--- a/app/views/wikis/edit.html.haml
+++ b/app/views/projects/wikis/edit.html.haml
@@ -1,4 +1,4 @@
-= render 'wikis/nav'
+= render 'nav'
 %h3.page_title
   Editing page
   = render 'main_links'
diff --git a/app/views/wikis/empty.html.haml b/app/views/projects/wikis/empty.html.haml
similarity index 100%
rename from app/views/wikis/empty.html.haml
rename to app/views/projects/wikis/empty.html.haml
diff --git a/app/views/wikis/git_access.html.haml b/app/views/projects/wikis/git_access.html.haml
similarity index 98%
rename from app/views/wikis/git_access.html.haml
rename to app/views/projects/wikis/git_access.html.haml
index 0b363cbb8c90a7060cec6bdc52979ebe77ca59c1..71e2b48d37070fefbf7840c9b535654d8717d9bf 100644
--- a/app/views/wikis/git_access.html.haml
+++ b/app/views/projects/wikis/git_access.html.haml
@@ -1,4 +1,4 @@
-= render 'wikis/nav'
+= render 'nav'
 %h3.page_title
   Git Access
   %strong= @gollum_wiki.path_with_namespace
diff --git a/app/views/wikis/history.html.haml b/app/views/projects/wikis/history.html.haml
similarity index 97%
rename from app/views/wikis/history.html.haml
rename to app/views/projects/wikis/history.html.haml
index 243c5c7c2c384526a26fc6541990a4e4ea6f39d1..138c384353d144772fb110dd5fe7d09254b54efe 100644
--- a/app/views/wikis/history.html.haml
+++ b/app/views/projects/wikis/history.html.haml
@@ -1,4 +1,4 @@
-= render 'wikis/nav'
+= render 'nav'
 %h3.page_title
   %span.light History for
   = @wiki.title.titleize
diff --git a/app/views/wikis/pages.html.haml b/app/views/projects/wikis/pages.html.haml
similarity index 96%
rename from app/views/wikis/pages.html.haml
rename to app/views/projects/wikis/pages.html.haml
index 48c11b8e395635356550481ac8b364a2a7e9d7b7..07e942ec62f16ce5f26865e1347d3d75fb2c1aae 100644
--- a/app/views/wikis/pages.html.haml
+++ b/app/views/projects/wikis/pages.html.haml
@@ -1,4 +1,4 @@
-= render 'wikis/nav'
+= render 'nav'
 %h3.page_title
   All Pages
   = render 'main_links'
diff --git a/app/views/wikis/show.html.haml b/app/views/projects/wikis/show.html.haml
similarity index 96%
rename from app/views/wikis/show.html.haml
rename to app/views/projects/wikis/show.html.haml
index b40bbcb492311fae96b923b2ff8ae4f177625241..d9d57e2d8be49ee9d19843bd5af7c0d4f6b5e217 100644
--- a/app/views/wikis/show.html.haml
+++ b/app/views/projects/wikis/show.html.haml
@@ -1,4 +1,4 @@
-= render 'wikis/nav'
+= render 'nav'
 %h3.page_title
   = @wiki.title.titleize
   = render 'main_links'
diff --git a/app/views/shared/_merge_requests.html.haml b/app/views/shared/_merge_requests.html.haml
index a2800b11d8d185dda422da6f1f333d34ee08f78d..a7037d5987aab27b17bb2373c5b78bfa61b524c6 100644
--- a/app/views/shared/_merge_requests.html.haml
+++ b/app/views/shared/_merge_requests.html.haml
@@ -6,7 +6,7 @@
         = link_to_project project
       %ul.well-list.mr-list
         - group[1].each do |merge_request|
-          = render(partial: 'merge_requests/merge_request', locals: {merge_request: merge_request})
+          = render 'projects/merge_requests/merge_request', merge_request: merge_request
   %hr
   = paginate @merge_requests, theme: "gitlab"
 
diff --git a/app/views/team_members/new.html.haml b/app/views/team_members/new.html.haml
deleted file mode 100644
index 4f70fb4b0461ddad82462635f172fb383efc872b..0000000000000000000000000000000000000000
--- a/app/views/team_members/new.html.haml
+++ /dev/null
@@ -1 +0,0 @@
-= render "team_members/form"
diff --git a/config/routes.rb b/config/routes.rb
index 3b6a861b668cf6fb5c663c5a6a4f8404e594817f..a59e6b7ce5b71be57ce4d11be8d6ab8536524ea3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -160,135 +160,135 @@ Gitlab::Application.routes.draw do
       get :autocomplete_sources
     end
 
-    resources :blob,    only: [:show], constraints: {id: /.+/}
-    resources :raw,    only: [:show], constraints: {id: /.+/}
-    resources :tree,    only: [:show], constraints: {id: /.+/, format: /(html|js)/ }
-    resources :edit_tree,    only: [:show, :update], constraints: {id: /.+/}, path: 'edit'
-    resources :commit,  only: [:show], constraints: {id: /[[:alnum:]]{6,40}/}
-    resources :commits, only: [:show], constraints: {id: /(?:[^.]|\.(?!atom$))+/, format: /atom/}
-    resources :compare, only: [:index, :create]
-    resources :blame,   only: [:show], constraints: {id: /.+/}
-    resources :network,   only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
-    resources :graphs, only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
-    match "/compare/:from...:to" => "compare#show", as: "compare", via: [:get, :post], constraints: {from: /.+/, to: /.+/}
-
     scope module: :projects do
-      resources :snippets do
-        member do
-          get "raw"
+      resources :blob,    only: [:show], constraints: {id: /.+/}
+      resources :raw,    only: [:show], constraints: {id: /.+/}
+      resources :tree,    only: [:show], constraints: {id: /.+/, format: /(html|js)/ }
+      resources :edit_tree,    only: [:show, :update], constraints: {id: /.+/}, path: 'edit'
+      resources :commit,  only: [:show], constraints: {id: /[[:alnum:]]{6,40}/}
+      resources :commits, only: [:show], constraints: {id: /(?:[^.]|\.(?!atom$))+/, format: /atom/}
+      resources :compare, only: [:index, :create]
+      resources :blame,   only: [:show], constraints: {id: /.+/}
+      resources :network,   only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
+      resources :graphs, only: [:show], constraints: {id: /(?:[^.]|\.(?!json$))+/, format: /json/}
+      match "/compare/:from...:to" => "compare#show", as: "compare", via: [:get, :post], constraints: {from: /.+/, to: /.+/}
+
+        resources :snippets do
+          member do
+            get "raw"
+          end
         end
-      end
-    end
 
-    resources :wikis, only: [:show, :edit, :destroy, :create] do
-      collection do
-        get :pages
-        put ':id' => 'wikis#update'
-        get :git_access
-      end
+      resources :wikis, only: [:show, :edit, :destroy, :create] do
+        collection do
+          get :pages
+          put ':id' => 'wikis#update'
+          get :git_access
+        end
 
-      member do
-        get "history"
+        member do
+          get "history"
+        end
       end
-    end
 
-    resource :wall, only: [:show] do
-      member do
-        get 'notes'
+      resource :wall, only: [:show] do
+        member do
+          get 'notes'
+        end
       end
-    end
 
-    resource :repository, only: [:show] do
-      member do
-        get "branches"
-        get "tags"
-        get "stats"
-        get "archive"
+      resource :repository, only: [:show] do
+        member do
+          get "branches"
+          get "tags"
+          get "stats"
+          get "archive"
+        end
       end
-    end
 
-    resources :services, constraints: { id: /[^\/]+/ }, only: [:index, :edit, :update] do
-      member do
-        get :test
+      resources :services, constraints: { id: /[^\/]+/ }, only: [:index, :edit, :update] do
+        member do
+          get :test
+        end
       end
-    end
 
-    resources :deploy_keys do
-      member do
-        put :enable
-        put :disable
+      resources :deploy_keys do
+        member do
+          put :enable
+          put :disable
+        end
       end
-    end
 
-    resources :protected_branches, only: [:index, :create, :destroy]
+      resources :protected_branches, only: [:index, :create, :destroy]
 
-    resources :refs, only: [] do
-      collection do
-        get "switch"
-      end
+      resources :refs, only: [] do
+        collection do
+          get "switch"
+        end
 
-      member do
-        # tree viewer logs
-        get "logs_tree", constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ }
-        get "logs_tree/:path" => "refs#logs_tree",
-          as: :logs_file,
-          constraints: {
-            id:   /[a-zA-Z.0-9\/_\-#%+]+/,
-            path: /.*/
-          }
+        member do
+          # tree viewer logs
+          get "logs_tree", constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ }
+          get "logs_tree/:path" => "refs#logs_tree",
+            as: :logs_file,
+            constraints: {
+              id:   /[a-zA-Z.0-9\/_\-#%+]+/,
+              path: /.*/
+            }
+        end
       end
-    end
 
-    resources :merge_requests, constraints: {id: /\d+/}, except: [:destroy] do
-      member do
-        get :diffs
-        get :automerge
-        get :automerge_check
-        get :ci_status
-      end
+      resources :merge_requests, constraints: {id: /\d+/}, except: [:destroy] do
+        member do
+          get :diffs
+          get :automerge
+          get :automerge_check
+          get :ci_status
+        end
 
-      collection do
-        get :branch_from
-        get :branch_to
+        collection do
+          get :branch_from
+          get :branch_to
+        end
       end
-    end
 
-    resources :hooks, only: [:index, :create, :destroy] do
-      member do
-        get :test
+      resources :hooks, only: [:index, :create, :destroy] do
+        member do
+          get :test
+        end
       end
-    end
 
-    resources :team, controller: 'team_members', only: [:index]
-    resources :milestones, except: [:destroy]
+      resources :team, controller: 'team_members', only: [:index]
+      resources :milestones, except: [:destroy]
 
-    resources :labels, only: [:index] do
-      collection do
-        post :generate
+      resources :labels, only: [:index] do
+        collection do
+          post :generate
+        end
       end
-    end
 
-    resources :issues, except: [:destroy] do
-      collection do
-        post  :bulk_update
+      resources :issues, except: [:destroy] do
+        collection do
+          post  :bulk_update
+        end
       end
-    end
 
-    resources :team_members, except: [:index, :edit] do
-      collection do
+      resources :team_members, except: [:index, :edit] do
+        collection do
 
-        # Used for import team
-        # from another project
-        get :import
-        post :apply_import
+          # Used for import team
+          # from another project
+          get :import
+          post :apply_import
+        end
       end
-    end
 
-    resources :notes, only: [:index, :create, :destroy] do
-      collection do
-        post :preview
+      resources :notes, only: [:index, :create, :destroy] do
+        collection do
+          post :preview
+        end
+      end
       end
-    end
   end
 
   root to: "dashboard#show"
diff --git a/spec/controllers/blob_controller_spec.rb b/spec/controllers/blob_controller_spec.rb
index fe113459470e977f452ee13b7e8520e435372d64..05d16f35545483fe9b16c8dbdb5a5048ca617ac6 100644
--- a/spec/controllers/blob_controller_spec.rb
+++ b/spec/controllers/blob_controller_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe BlobController do
+describe Projects::BlobController do
   let(:project) { create(:project_with_code) }
   let(:user)    { create(:user) }
 
diff --git a/spec/controllers/commit_controller_spec.rb b/spec/controllers/commit_controller_spec.rb
index 5fffbf0e5f3b30579120ab04eac33f6c12b40df5..87c54143a05fb8b6860fdeb834e78bf243771ae0 100644
--- a/spec/controllers/commit_controller_spec.rb
+++ b/spec/controllers/commit_controller_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe CommitController do
+describe Projects::CommitController do
   let(:project) { create(:project_with_code) }
   let(:user)    { create(:user) }
   let(:commit)  { project.repository.last_commit_for("master") }
diff --git a/spec/controllers/commits_controller_spec.rb b/spec/controllers/commits_controller_spec.rb
index ce4029173a5aacc98b5278b552b56bc4da3d86eb..c9931a19622935ba67d56f28465c1818c12c63d0 100644
--- a/spec/controllers/commits_controller_spec.rb
+++ b/spec/controllers/commits_controller_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe CommitsController do
+describe Projects::CommitsController do
   let(:project) { create(:project_with_code) }
   let(:user)    { create(:user) }
 
diff --git a/spec/controllers/merge_requests_controller_spec.rb b/spec/controllers/merge_requests_controller_spec.rb
index 796de23bfe3837f1a37ce623eb82182cb116eb63..51ba6ca59458d59fe9d9596037bfa2ef854b1157 100644
--- a/spec/controllers/merge_requests_controller_spec.rb
+++ b/spec/controllers/merge_requests_controller_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe MergeRequestsController do
+describe Projects::MergeRequestsController do
   let(:project) { create(:project_with_code) }
   let(:user)    { create(:user) }
   let(:merge_request) { create(:merge_request_with_diffs, project: project, target_branch: "bcf03b5d~3", source_branch: "bcf03b5d") }
@@ -8,7 +8,7 @@ describe MergeRequestsController do
   before do
     sign_in(user)
     project.team << [user, :master]
-    MergeRequestsController.any_instance.stub(validates_merge_request: true)
+    Projects::MergeRequestsController.any_instance.stub(validates_merge_request: true)
   end
 
   describe "#show" do
diff --git a/spec/controllers/tree_controller_spec.rb b/spec/controllers/tree_controller_spec.rb
index f9fe4fe20100674ae7f1087b391ea435250ecf89..3e41b406c4f80a18f71952321f48e57e029e59a6 100644
--- a/spec/controllers/tree_controller_spec.rb
+++ b/spec/controllers/tree_controller_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe TreeController do
+describe Projects::TreeController do
   let(:project) { create(:project_with_code) }
   let(:user)    { create(:user) }
 
diff --git a/spec/routing/project_routing_spec.rb b/spec/routing/project_routing_spec.rb
index 7f88029de5256d42a65f75867271fe68194ff6ea..2a1f780f0f4e510a36c3715c3208e1f9e85042b1 100644
--- a/spec/routing/project_routing_spec.rb
+++ b/spec/routing/project_routing_spec.rb
@@ -25,31 +25,31 @@ shared_examples "RESTful project resources" do
   let(:actions) { [:index, :create, :new, :edit, :show, :update, :destroy] }
 
   it "to #index" do
-    get("/gitlabhq/#{controller}").should route_to("#{controller}#index", project_id: 'gitlabhq') if actions.include?(:index)
+    get("/gitlabhq/#{controller}").should route_to("projects/#{controller}#index", project_id: 'gitlabhq') if actions.include?(:index)
   end
 
   it "to #create" do
-    post("/gitlabhq/#{controller}").should route_to("#{controller}#create", project_id: 'gitlabhq') if actions.include?(:create)
+    post("/gitlabhq/#{controller}").should route_to("projects/#{controller}#create", project_id: 'gitlabhq') if actions.include?(:create)
   end
 
   it "to #new" do
-    get("/gitlabhq/#{controller}/new").should route_to("#{controller}#new", project_id: 'gitlabhq') if actions.include?(:new)
+    get("/gitlabhq/#{controller}/new").should route_to("projects/#{controller}#new", project_id: 'gitlabhq') if actions.include?(:new)
   end
 
   it "to #edit" do
-    get("/gitlabhq/#{controller}/1/edit").should route_to("#{controller}#edit", project_id: 'gitlabhq', id: '1') if actions.include?(:edit)
+    get("/gitlabhq/#{controller}/1/edit").should route_to("projects/#{controller}#edit", project_id: 'gitlabhq', id: '1') if actions.include?(:edit)
   end
 
   it "to #show" do
-    get("/gitlabhq/#{controller}/1").should route_to("#{controller}#show", project_id: 'gitlabhq', id: '1') if actions.include?(:show)
+    get("/gitlabhq/#{controller}/1").should route_to("projects/#{controller}#show", project_id: 'gitlabhq', id: '1') if actions.include?(:show)
   end
 
   it "to #update" do
-    put("/gitlabhq/#{controller}/1").should route_to("#{controller}#update", project_id: 'gitlabhq', id: '1') if actions.include?(:update)
+    put("/gitlabhq/#{controller}/1").should route_to("projects/#{controller}#update", project_id: 'gitlabhq', id: '1') if actions.include?(:update)
   end
 
   it "to #destroy" do
-    delete("/gitlabhq/#{controller}/1").should route_to("#{controller}#destroy", project_id: 'gitlabhq', id: '1') if actions.include?(:destroy)
+    delete("/gitlabhq/#{controller}/1").should route_to("projects/#{controller}#destroy", project_id: 'gitlabhq', id: '1') if actions.include?(:destroy)
   end
 end
 
@@ -76,7 +76,7 @@ describe ProjectsController, "routing" do
   end
 
   it "to #wall" do
-    get("/gitlabhq/wall").should route_to('walls#show', project_id: 'gitlabhq')
+    get("/gitlabhq/wall").should route_to('projects/walls#show', project_id: 'gitlabhq')
   end
 
   it "to #edit" do
@@ -100,19 +100,19 @@ describe ProjectsController, "routing" do
   end
 end
 
-#  pages_project_wikis GET    /:project_id/wikis/pages(.:format)       wikis#pages
-# history_project_wiki GET    /:project_id/wikis/:id/history(.:format) wikis#history
-#        project_wikis POST   /:project_id/wikis(.:format)             wikis#create
-#    edit_project_wiki GET    /:project_id/wikis/:id/edit(.:format)    wikis#edit
-#         project_wiki GET    /:project_id/wikis/:id(.:format)         wikis#show
-#                      DELETE /:project_id/wikis/:id(.:format)         wikis#destroy
-describe WikisController, "routing" do
+#  pages_project_wikis GET    /:project_id/wikis/pages(.:format)       projects/wikis#pages
+# history_project_wiki GET    /:project_id/wikis/:id/history(.:format) projects/wikis#history
+#        project_wikis POST   /:project_id/wikis(.:format)             projects/wikis#create
+#    edit_project_wiki GET    /:project_id/wikis/:id/edit(.:format)    projects/wikis#edit
+#         project_wiki GET    /:project_id/wikis/:id(.:format)         projects/wikis#show
+#                      DELETE /:project_id/wikis/:id(.:format)         projects/wikis#destroy
+describe Projects::WikisController, "routing" do
   it "to #pages" do
-    get("/gitlabhq/wikis/pages").should route_to('wikis#pages', project_id: 'gitlabhq')
+    get("/gitlabhq/wikis/pages").should route_to('projects/wikis#pages', project_id: 'gitlabhq')
   end
 
   it "to #history" do
-    get("/gitlabhq/wikis/1/history").should route_to('wikis#history', project_id: 'gitlabhq', id: '1')
+    get("/gitlabhq/wikis/1/history").should route_to('projects/wikis#history', project_id: 'gitlabhq', id: '1')
   end
 
   it_behaves_like "RESTful project resources" do
@@ -121,25 +121,25 @@ describe WikisController, "routing" do
   end
 end
 
-# branches_project_repository GET    /:project_id/repository/branches(.:format) repositories#branches
-#     tags_project_repository GET    /:project_id/repository/tags(.:format)     repositories#tags
-#  archive_project_repository GET    /:project_id/repository/archive(.:format)  repositories#archive
-#     edit_project_repository GET    /:project_id/repository/edit(.:format)     repositories#edit
-describe RepositoriesController, "routing" do
+# branches_project_repository GET    /:project_id/repository/branches(.:format) projects/repositories#branches
+#     tags_project_repository GET    /:project_id/repository/tags(.:format)     projects/repositories#tags
+#  archive_project_repository GET    /:project_id/repository/archive(.:format)  projects/repositories#archive
+#     edit_project_repository GET    /:project_id/repository/edit(.:format)     projects/repositories#edit
+describe Projects::RepositoriesController, "routing" do
   it "to #branches" do
-    get("/gitlabhq/repository/branches").should route_to('repositories#branches', project_id: 'gitlabhq')
+    get("/gitlabhq/repository/branches").should route_to('projects/repositories#branches', project_id: 'gitlabhq')
   end
 
   it "to #tags" do
-    get("/gitlabhq/repository/tags").should route_to('repositories#tags', project_id: 'gitlabhq')
+    get("/gitlabhq/repository/tags").should route_to('projects/repositories#tags', project_id: 'gitlabhq')
   end
 
   it "to #archive" do
-    get("/gitlabhq/repository/archive").should route_to('repositories#archive', project_id: 'gitlabhq')
+    get("/gitlabhq/repository/archive").should route_to('projects/repositories#archive', project_id: 'gitlabhq')
   end
 
   it "to #show" do
-    get("/gitlabhq/repository").should route_to('repositories#show', project_id: 'gitlabhq')
+    get("/gitlabhq/repository").should route_to('projects/repositories#show', project_id: 'gitlabhq')
   end
 end
 
@@ -150,7 +150,7 @@ end
 #      project_deploy_key GET    /:project_id/deploy_keys/:id(.:format)      deploy_keys#show
 #                         PUT    /:project_id/deploy_keys/:id(.:format)      deploy_keys#update
 #                         DELETE /:project_id/deploy_keys/:id(.:format)      deploy_keys#destroy
-describe DeployKeysController, "routing" do
+describe Projects::DeployKeysController, "routing" do
   it_behaves_like "RESTful project resources" do
     let(:controller) { 'deploy_keys' }
   end
@@ -159,7 +159,7 @@ end
 # project_protected_branches GET    /:project_id/protected_branches(.:format)     protected_branches#index
 #                            POST   /:project_id/protected_branches(.:format)     protected_branches#create
 #   project_protected_branch DELETE /:project_id/protected_branches/:id(.:format) protected_branches#destroy
-describe ProtectedBranchesController, "routing" do
+describe Projects::ProtectedBranchesController, "routing" do
   it_behaves_like "RESTful project resources" do
     let(:actions)    { [:index, :create, :destroy] }
     let(:controller) { 'protected_branches' }
@@ -169,58 +169,58 @@ end
 #    switch_project_refs GET    /:project_id/refs/switch(.:format)              refs#switch
 #  logs_tree_project_ref GET    /:project_id/refs/:id/logs_tree(.:format)       refs#logs_tree
 #  logs_file_project_ref GET    /:project_id/refs/:id/logs_tree/:path(.:format) refs#logs_tree
-describe RefsController, "routing" do
+describe Projects::RefsController, "routing" do
   it "to #switch" do
-    get("/gitlabhq/refs/switch").should route_to('refs#switch', project_id: 'gitlabhq')
+    get("/gitlabhq/refs/switch").should route_to('projects/refs#switch', project_id: 'gitlabhq')
   end
 
   it "to #logs_tree" do
-    get("/gitlabhq/refs/stable/logs_tree").should             route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'stable')
-    get("/gitlabhq/refs/feature%2345/logs_tree").should             route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'feature#45')
-    get("/gitlabhq/refs/feature%2B45/logs_tree").should             route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'feature+45')
-    get("/gitlabhq/refs/stable/logs_tree/foo/bar/baz").should route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'stable', path: 'foo/bar/baz')
-    get("/gitlabhq/refs/feature%2345/logs_tree/foo/bar/baz").should route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'feature#45', path: 'foo/bar/baz')
-    get("/gitlabhq/refs/feature%2B45/logs_tree/foo/bar/baz").should route_to('refs#logs_tree', project_id: 'gitlabhq', id: 'feature+45', path: 'foo/bar/baz')
-    get("/gitlab/gitlabhq/refs/stable/logs_tree/files.scss").should route_to('refs#logs_tree', project_id: 'gitlab/gitlabhq', id: 'stable', path: 'files.scss')
+    get("/gitlabhq/refs/stable/logs_tree").should             route_to('projects/refs#logs_tree', project_id: 'gitlabhq', id: 'stable')
+    get("/gitlabhq/refs/feature%2345/logs_tree").should             route_to('projects/refs#logs_tree', project_id: 'gitlabhq', id: 'feature#45')
+    get("/gitlabhq/refs/feature%2B45/logs_tree").should             route_to('projects/refs#logs_tree', project_id: 'gitlabhq', id: 'feature+45')
+    get("/gitlabhq/refs/stable/logs_tree/foo/bar/baz").should route_to('projects/refs#logs_tree', project_id: 'gitlabhq', id: 'stable', path: 'foo/bar/baz')
+    get("/gitlabhq/refs/feature%2345/logs_tree/foo/bar/baz").should route_to('projects/refs#logs_tree', project_id: 'gitlabhq', id: 'feature#45', path: 'foo/bar/baz')
+    get("/gitlabhq/refs/feature%2B45/logs_tree/foo/bar/baz").should route_to('projects/refs#logs_tree', project_id: 'gitlabhq', id: 'feature+45', path: 'foo/bar/baz')
+    get("/gitlab/gitlabhq/refs/stable/logs_tree/files.scss").should route_to('projects/refs#logs_tree', project_id: 'gitlab/gitlabhq', id: 'stable', path: 'files.scss')
   end
 end
 
-#           diffs_project_merge_request GET    /:project_id/merge_requests/:id/diffs(.:format)           merge_requests#diffs
-#       automerge_project_merge_request GET    /:project_id/merge_requests/:id/automerge(.:format)       merge_requests#automerge
-# automerge_check_project_merge_request GET    /:project_id/merge_requests/:id/automerge_check(.:format) merge_requests#automerge_check
-#    branch_from_project_merge_requests GET    /:project_id/merge_requests/branch_from(.:format)         merge_requests#branch_from
-#      branch_to_project_merge_requests GET    /:project_id/merge_requests/branch_to(.:format)           merge_requests#branch_to
-#                project_merge_requests GET    /:project_id/merge_requests(.:format)                     merge_requests#index
-#                                       POST   /:project_id/merge_requests(.:format)                     merge_requests#create
-#             new_project_merge_request GET    /:project_id/merge_requests/new(.:format)                 merge_requests#new
-#            edit_project_merge_request GET    /:project_id/merge_requests/:id/edit(.:format)            merge_requests#edit
-#                 project_merge_request GET    /:project_id/merge_requests/:id(.:format)                 merge_requests#show
-#                                       PUT    /:project_id/merge_requests/:id(.:format)                 merge_requests#update
-#                                       DELETE /:project_id/merge_requests/:id(.:format)                 merge_requests#destroy
-describe MergeRequestsController, "routing" do
+#           diffs_project_merge_request GET    /:project_id/merge_requests/:id/diffs(.:format)           projects/merge_requests#diffs
+#       automerge_project_merge_request GET    /:project_id/merge_requests/:id/automerge(.:format)       projects/merge_requests#automerge
+# automerge_check_project_merge_request GET    /:project_id/merge_requests/:id/automerge_check(.:format) projects/merge_requests#automerge_check
+#    branch_from_project_merge_requests GET    /:project_id/merge_requests/branch_from(.:format)         projects/merge_requests#branch_from
+#      branch_to_project_merge_requests GET    /:project_id/merge_requests/branch_to(.:format)           projects/merge_requests#branch_to
+#                project_merge_requests GET    /:project_id/merge_requests(.:format)                     projects/merge_requests#index
+#                                       POST   /:project_id/merge_requests(.:format)                     projects/merge_requests#create
+#             new_project_merge_request GET    /:project_id/merge_requests/new(.:format)                 projects/merge_requests#new
+#            edit_project_merge_request GET    /:project_id/merge_requests/:id/edit(.:format)            projects/merge_requests#edit
+#                 project_merge_request GET    /:project_id/merge_requests/:id(.:format)                 projects/merge_requests#show
+#                                       PUT    /:project_id/merge_requests/:id(.:format)                 projects/merge_requests#update
+#                                       DELETE /:project_id/merge_requests/:id(.:format)                 projects/merge_requests#destroy
+describe Projects::MergeRequestsController, "routing" do
   it "to #diffs" do
-    get("/gitlabhq/merge_requests/1/diffs").should route_to('merge_requests#diffs', project_id: 'gitlabhq', id: '1')
+    get("/gitlabhq/merge_requests/1/diffs").should route_to('projects/merge_requests#diffs', project_id: 'gitlabhq', id: '1')
   end
 
   it "to #automerge" do
-    get("/gitlabhq/merge_requests/1/automerge").should route_to('merge_requests#automerge', project_id: 'gitlabhq', id: '1')
+    get("/gitlabhq/merge_requests/1/automerge").should route_to('projects/merge_requests#automerge', project_id: 'gitlabhq', id: '1')
   end
 
   it "to #automerge_check" do
-    get("/gitlabhq/merge_requests/1/automerge_check").should route_to('merge_requests#automerge_check', project_id: 'gitlabhq', id: '1')
+    get("/gitlabhq/merge_requests/1/automerge_check").should route_to('projects/merge_requests#automerge_check', project_id: 'gitlabhq', id: '1')
   end
 
   it "to #branch_from" do
-    get("/gitlabhq/merge_requests/branch_from").should route_to('merge_requests#branch_from', project_id: 'gitlabhq')
+    get("/gitlabhq/merge_requests/branch_from").should route_to('projects/merge_requests#branch_from', project_id: 'gitlabhq')
   end
 
   it "to #branch_to" do
-    get("/gitlabhq/merge_requests/branch_to").should route_to('merge_requests#branch_to', project_id: 'gitlabhq')
+    get("/gitlabhq/merge_requests/branch_to").should route_to('projects/merge_requests#branch_to', project_id: 'gitlabhq')
   end
 
   it "to #show" do
-    get("/gitlabhq/merge_requests/1.diff").should route_to('merge_requests#show', project_id: 'gitlabhq', id: '1', format: 'diff')
-    get("/gitlabhq/merge_requests/1.patch").should route_to('merge_requests#show', project_id: 'gitlabhq', id: '1', format: 'patch')
+    get("/gitlabhq/merge_requests/1.diff").should route_to('projects/merge_requests#show', project_id: 'gitlabhq', id: '1', format: 'diff')
+    get("/gitlabhq/merge_requests/1.patch").should route_to('projects/merge_requests#show', project_id: 'gitlabhq', id: '1', format: 'patch')
   end
 
   it_behaves_like "RESTful project resources" do
@@ -275,9 +275,9 @@ end
 #     project_hooks GET    /:project_id/hooks(.:format)          hooks#index
 #                   POST   /:project_id/hooks(.:format)          hooks#create
 #      project_hook DELETE /:project_id/hooks/:id(.:format)      hooks#destroy
-describe HooksController, "routing" do
+describe Projects::HooksController, "routing" do
   it "to #test" do
-    get("/gitlabhq/hooks/1/test").should route_to('hooks#test', project_id: 'gitlabhq', id: '1')
+    get("/gitlabhq/hooks/1/test").should route_to('projects/hooks#test', project_id: 'gitlabhq', id: '1')
   end
 
   it_behaves_like "RESTful project resources" do
@@ -287,12 +287,12 @@ describe HooksController, "routing" do
 end
 
 # project_commit GET    /:project_id/commit/:id(.:format) commit#show {id: /[[:alnum:]]{6,40}/, project_id: /[^\/]+/}
-describe CommitController, "routing" do
+describe Projects::CommitController, "routing" do
   it "to #show" do
-    get("/gitlabhq/commit/4246fb").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fb')
-    get("/gitlabhq/commit/4246fb.diff").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fb', format: 'diff')
-    get("/gitlabhq/commit/4246fb.patch").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fb', format: 'patch')
-    get("/gitlabhq/commit/4246fbd13872934f72a8fd0d6fb1317b47b59cb5").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fbd13872934f72a8fd0d6fb1317b47b59cb5')
+    get("/gitlabhq/commit/4246fb").should route_to('projects/commit#show', project_id: 'gitlabhq', id: '4246fb')
+    get("/gitlabhq/commit/4246fb.diff").should route_to('projects/commit#show', project_id: 'gitlabhq', id: '4246fb', format: 'diff')
+    get("/gitlabhq/commit/4246fb.patch").should route_to('projects/commit#show', project_id: 'gitlabhq', id: '4246fb', format: 'patch')
+    get("/gitlabhq/commit/4246fbd13872934f72a8fd0d6fb1317b47b59cb5").should route_to('projects/commit#show', project_id: 'gitlabhq', id: '4246fbd13872934f72a8fd0d6fb1317b47b59cb5')
   end
 end
 
@@ -300,14 +300,14 @@ end
 #         project_commits GET    /:project_id/commits(.:format)           commits#index
 #                         POST   /:project_id/commits(.:format)           commits#create
 #          project_commit GET    /:project_id/commits/:id(.:format)       commits#show
-describe CommitsController, "routing" do
+describe Projects::CommitsController, "routing" do
   it_behaves_like "RESTful project resources" do
     let(:actions)    { [:show] }
     let(:controller) { 'commits' }
   end
 
   it "to #show" do
-    get("/gitlab/gitlabhq/commits/master.atom").should route_to('commits#show', project_id: 'gitlab/gitlabhq', id: "master", format: "atom")
+    get("/gitlab/gitlabhq/commits/master.atom").should route_to('projects/commits#show', project_id: 'gitlab/gitlabhq', id: "master", format: "atom")
   end
 end
 
@@ -318,7 +318,7 @@ end
 #      project_team_member GET    /:project_id/team_members/:id(.:format)      team_members#show
 #                          PUT    /:project_id/team_members/:id(.:format)      team_members#update
 #                          DELETE /:project_id/team_members/:id(.:format)      team_members#destroy
-describe TeamMembersController, "routing" do
+describe Projects::TeamMembersController, "routing" do
   it_behaves_like "RESTful project resources" do
     let(:actions)    { [:new, :create, :update, :destroy] }
     let(:controller) { 'team_members' }
@@ -332,7 +332,7 @@ end
 #      project_milestone GET    /:project_id/milestones/:id(.:format)      milestones#show
 #                        PUT    /:project_id/milestones/:id(.:format)      milestones#update
 #                        DELETE /:project_id/milestones/:id(.:format)      milestones#destroy
-describe MilestonesController, "routing" do
+describe Projects::MilestonesController, "routing" do
   it_behaves_like "RESTful project resources" do
     let(:controller) { 'milestones' }
     let(:actions) { [:index, :create, :new, :edit, :show, :update] }
@@ -340,9 +340,9 @@ describe MilestonesController, "routing" do
 end
 
 # project_labels GET    /:project_id/labels(.:format) labels#index
-describe LabelsController, "routing" do
+describe Projects::LabelsController, "routing" do
   it "to #index" do
-    get("/gitlabhq/labels").should route_to('labels#index', project_id: 'gitlabhq')
+    get("/gitlabhq/labels").should route_to('projects/labels#index', project_id: 'gitlabhq')
   end
 end
 
@@ -356,9 +356,9 @@ end
 #              project_issue GET    /:project_id/issues/:id(.:format)         issues#show
 #                            PUT    /:project_id/issues/:id(.:format)         issues#update
 #                            DELETE /:project_id/issues/:id(.:format)         issues#destroy
-describe IssuesController, "routing" do
+describe Projects::IssuesController, "routing" do
   it "to #bulk_update" do
-    post("/gitlabhq/issues/bulk_update").should route_to('issues#bulk_update', project_id: 'gitlabhq')
+    post("/gitlabhq/issues/bulk_update").should route_to('projects/issues#bulk_update', project_id: 'gitlabhq')
   end
 
   it_behaves_like "RESTful project resources" do
@@ -371,9 +371,9 @@ end
 #         project_notes GET    /:project_id/notes(.:format)         notes#index
 #                       POST   /:project_id/notes(.:format)         notes#create
 #          project_note DELETE /:project_id/notes/:id(.:format)     notes#destroy
-describe NotesController, "routing" do
+describe Projects::NotesController, "routing" do
   it "to #preview" do
-    post("/gitlabhq/notes/preview").should route_to('notes#preview', project_id: 'gitlabhq')
+    post("/gitlabhq/notes/preview").should route_to('projects/notes#preview', project_id: 'gitlabhq')
   end
 
   it_behaves_like "RESTful project resources" do
@@ -383,57 +383,57 @@ describe NotesController, "routing" do
 end
 
 # project_blame GET    /:project_id/blame/:id(.:format) blame#show {id: /.+/, project_id: /[^\/]+/}
-describe BlameController, "routing" do
+describe Projects::BlameController, "routing" do
   it "to #show" do
-    get("/gitlabhq/blame/master/app/models/project.rb").should route_to('blame#show', project_id: 'gitlabhq', id: 'master/app/models/project.rb')
-    get("/gitlab/gitlabhq/blame/master/files.scss").should route_to('blame#show', project_id: 'gitlab/gitlabhq', id: 'master/files.scss')
+    get("/gitlabhq/blame/master/app/models/project.rb").should route_to('projects/blame#show', project_id: 'gitlabhq', id: 'master/app/models/project.rb')
+    get("/gitlab/gitlabhq/blame/master/files.scss").should route_to('projects/blame#show', project_id: 'gitlab/gitlabhq', id: 'master/files.scss')
   end
 end
 
 # project_blob GET    /:project_id/blob/:id(.:format) blob#show {id: /.+/, project_id: /[^\/]+/}
-describe BlobController, "routing" do
+describe Projects::BlobController, "routing" do
   it "to #show" do
-    get("/gitlabhq/blob/master/app/models/project.rb").should route_to('blob#show', project_id: 'gitlabhq', id: 'master/app/models/project.rb')
-    get("/gitlabhq/blob/master/app/models/compare.rb").should route_to('blob#show', project_id: 'gitlabhq', id: 'master/app/models/compare.rb')
-    get("/gitlab/gitlabhq/blob/master/files.scss").should route_to('blob#show', project_id: 'gitlab/gitlabhq', id: 'master/files.scss')
+    get("/gitlabhq/blob/master/app/models/project.rb").should route_to('projects/blob#show', project_id: 'gitlabhq', id: 'master/app/models/project.rb')
+    get("/gitlabhq/blob/master/app/models/compare.rb").should route_to('projects/blob#show', project_id: 'gitlabhq', id: 'master/app/models/compare.rb')
+    get("/gitlab/gitlabhq/blob/master/files.scss").should route_to('projects/blob#show', project_id: 'gitlab/gitlabhq', id: 'master/files.scss')
   end
 end
 
 # project_tree GET    /:project_id/tree/:id(.:format) tree#show {id: /.+/, project_id: /[^\/]+/}
-describe TreeController, "routing" do
+describe Projects::TreeController, "routing" do
   it "to #show" do
-    get("/gitlabhq/tree/master/app/models/project.rb").should route_to('tree#show', project_id: 'gitlabhq', id: 'master/app/models/project.rb')
-    get("/gitlab/gitlabhq/tree/master/files.scss").should route_to('tree#show', project_id: 'gitlab/gitlabhq', id: 'master/files.scss')
+    get("/gitlabhq/tree/master/app/models/project.rb").should route_to('projects/tree#show', project_id: 'gitlabhq', id: 'master/app/models/project.rb')
+    get("/gitlab/gitlabhq/tree/master/files.scss").should route_to('projects/tree#show', project_id: 'gitlab/gitlabhq', id: 'master/files.scss')
   end
 end
 
 # project_compare_index GET    /:project_id/compare(.:format)             compare#index {id: /[^\/]+/, project_id: /[^\/]+/}
 #                       POST   /:project_id/compare(.:format)             compare#create {id: /[^\/]+/, project_id: /[^\/]+/}
 #       project_compare        /:project_id/compare/:from...:to(.:format) compare#show {from: /.+/, to: /.+/, id: /[^\/]+/, project_id: /[^\/]+/}
-describe CompareController, "routing" do
+describe Projects::CompareController, "routing" do
   it "to #index" do
-    get("/gitlabhq/compare").should route_to('compare#index', project_id: 'gitlabhq')
+    get("/gitlabhq/compare").should route_to('projects/compare#index', project_id: 'gitlabhq')
   end
 
   it "to #compare" do
-    post("/gitlabhq/compare").should route_to('compare#create', project_id: 'gitlabhq')
+    post("/gitlabhq/compare").should route_to('projects/compare#create', project_id: 'gitlabhq')
   end
 
   it "to #show" do
-    get("/gitlabhq/compare/master...stable").should     route_to('compare#show', project_id: 'gitlabhq', from: 'master', to: 'stable')
-    get("/gitlabhq/compare/issue/1234...stable").should route_to('compare#show', project_id: 'gitlabhq', from: 'issue/1234', to: 'stable')
+    get("/gitlabhq/compare/master...stable").should     route_to('projects/compare#show', project_id: 'gitlabhq', from: 'master', to: 'stable')
+    get("/gitlabhq/compare/issue/1234...stable").should route_to('projects/compare#show', project_id: 'gitlabhq', from: 'issue/1234', to: 'stable')
   end
 end
 
-describe NetworkController, "routing" do
+describe Projects::NetworkController, "routing" do
   it "to #show" do
-    get("/gitlabhq/network/master").should route_to('network#show', project_id: 'gitlabhq', id: 'master')
-    get("/gitlabhq/network/master.json").should route_to('network#show', project_id: 'gitlabhq', id: 'master', format: "json")
+    get("/gitlabhq/network/master").should route_to('projects/network#show', project_id: 'gitlabhq', id: 'master')
+    get("/gitlabhq/network/master.json").should route_to('projects/network#show', project_id: 'gitlabhq', id: 'master', format: "json")
   end
 end
 
-describe GraphsController, "routing" do
+describe Projects::GraphsController, "routing" do
   it "to #show" do
-    get("/gitlabhq/graphs/master").should route_to('graphs#show', project_id: 'gitlabhq', id: 'master')
+    get("/gitlabhq/graphs/master").should route_to('projects/graphs#show', project_id: 'gitlabhq', id: 'master')
   end
 end