I'd recommend checking the package "perspective", works like virtual desktops for emacs. Very good for working with multiple projects.
(if (eq system-type 'windows-nt)
(use-package everything
:config
(setq everything-cmd "C:\\Program Files\\Everything\\es.exe")
(setq everything-ffap-integration nil)))
(defun open-file-from-anywhere ()
(interactive)
(everything))
(defun open-file-from-anywhere-in-new-persp-if-in-project ()
(interactive)
(let* ((fpath (everything-find-prompt))
(f-projectile-root (projectile-project-root fpath))
(project-name (projectile-project-name f-projectile-root)))
(if f-projectile-root
(progn
(persp-switch project-name)
(find-file fpath))
(progn
(message "File is not in a valid project directory")
(find-file fpath)))))