diff --git a/NuGet.Config b/NuGet.Config
deleted file mode 100644
index c3c2967a3b..0000000000
--- a/NuGet.Config
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/bitwarden-web.sln b/bitwarden-web.sln
index 94f7a044f0..4a374b90f1 100644
--- a/bitwarden-web.sln
+++ b/bitwarden-web.sln
@@ -3,34 +3,37 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{860863C9-0436-43D4-840D-FE919C9F6FFC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{14FE7221-D377-4AD5-9A9E-4541577CF05A}"
- ProjectSection(SolutionItems) = preProject
- .gitignore = .gitignore
- CNAME = CNAME
- global.json = global.json
- NuGet.Config = NuGet.Config
- README.md = README.md
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "bitwarden-web", ".", "{25BEDEF4-2CAF-445A-807D-63C17FF85694}"
+ ProjectSection(WebsiteProperties) = preProject
+ TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.6.1"
+ Debug.AspNetCompiler.VirtualPath = "/localhost_15509"
+ Debug.AspNetCompiler.PhysicalPath = "."
+ Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_15509\"
+ Debug.AspNetCompiler.Updateable = "true"
+ Debug.AspNetCompiler.ForceOverwrite = "true"
+ Debug.AspNetCompiler.FixedNames = "false"
+ Debug.AspNetCompiler.Debug = "True"
+ Release.AspNetCompiler.VirtualPath = "/localhost_15509"
+ Release.AspNetCompiler.PhysicalPath = "."
+ Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_15509\"
+ Release.AspNetCompiler.Updateable = "true"
+ Release.AspNetCompiler.ForceOverwrite = "true"
+ Release.AspNetCompiler.FixedNames = "false"
+ Release.AspNetCompiler.Debug = "False"
+ VWDPort = "15509"
+ SlnRelativePath = "."
+ DefaultWebSiteLanguage = "Visual C#"
EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Web", "src\Web\Web.xproj", "{0BEBF47C-BA0B-48AC-B48C-718F94084AD5}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0BEBF47C-BA0B-48AC-B48C-718F94084AD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0BEBF47C-BA0B-48AC-B48C-718F94084AD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0BEBF47C-BA0B-48AC-B48C-718F94084AD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0BEBF47C-BA0B-48AC-B48C-718F94084AD5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {25BEDEF4-2CAF-445A-807D-63C17FF85694}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {25BEDEF4-2CAF-445A-807D-63C17FF85694}.Debug|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {0BEBF47C-BA0B-48AC-B48C-718F94084AD5} = {860863C9-0436-43D4-840D-FE919C9F6FFC}
- EndGlobalSection
EndGlobal
diff --git a/src/Web/gulpfile.js b/gulpfile.js
similarity index 98%
rename from src/Web/gulpfile.js
rename to gulpfile.js
index 6cb30777bf..c4d178e422 100644
--- a/src/Web/gulpfile.js
+++ b/gulpfile.js
@@ -15,19 +15,19 @@ var gulp = require('gulp'),
merge = require('merge-stream'),
ngConfig = require('gulp-ng-config'),
settings = require('./settings.json'),
- project = require('./project.json'),
+ project = require('./package.json'),
jshint = require('gulp-jshint'),
_ = require('lodash');
var paths = {};
-paths.dist = '../../dist/';
-paths.webroot = './wwwroot/'
+paths.dist = './dist/';
+paths.webroot = './src/'
paths.js = paths.webroot + 'js/**/*.js';
paths.minJs = paths.webroot + 'js/**/*.min.js';
paths.concatJsDest = paths.webroot + 'js/bw.min.js';
paths.libDir = paths.webroot + 'lib/';
paths.npmDir = 'node_modules/';
-paths.lessDir = 'less/';
+paths.lessDir = paths.webroot + 'less/';
paths.cssDir = paths.webroot + 'css/';
paths.jsDir = paths.webroot + 'js/';
@@ -329,6 +329,6 @@ gulp.task('deploy', ['dist'], function () {
gulp.task('serve', function () {
connect.server({
port: 4001,
- root: ['wwwroot']
+ root: ['src']
});
});
diff --git a/src/Web/package.json b/package.json
similarity index 95%
rename from src/Web/package.json
rename to package.json
index 34c5299f87..144a51c4ab 100644
--- a/src/Web/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
{
"name": "bitwarden",
- "version": "0.0.0",
+ "version": "1.4.0",
+ "environment": "Development",
"devDependencies": {
"connect": "3.4.1",
"lodash": "4.13.1",
diff --git a/src/Web/settings.Development.json b/settings.Development.json
similarity index 100%
rename from src/Web/settings.Development.json
rename to settings.Development.json
diff --git a/src/Web/settings.Production.json b/settings.Production.json
similarity index 100%
rename from src/Web/settings.Production.json
rename to settings.Production.json
diff --git a/src/Web/settings.json b/settings.json
similarity index 100%
rename from src/Web/settings.json
rename to settings.json
diff --git a/src/Web/Program.cs b/src/Web/Program.cs
deleted file mode 100644
index d664abbbe9..0000000000
--- a/src/Web/Program.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System.IO;
-using Microsoft.AspNetCore.Hosting;
-
-namespace Bit.Web
-{
- public class Program
- {
- public static void Main(string[] args)
- {
- var host = new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIISIntegration()
- .UseStartup()
- .Build();
-
- host.Run();
- }
- }
-}
diff --git a/src/Web/Properties/AssemblyInfo.cs b/src/Web/Properties/AssemblyInfo.cs
deleted file mode 100644
index 33facb34f4..0000000000
--- a/src/Web/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Bit.Web")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("bitwarden Web")]
-[assembly: AssemblyProduct("bitwarden Web")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("0bebf47c-ba0b-48ac-b48c-718f94084ad5")]
diff --git a/src/Web/Properties/launchSettings.json b/src/Web/Properties/launchSettings.json
deleted file mode 100644
index a0d4f0414c..0000000000
--- a/src/Web/Properties/launchSettings.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "iisSettings": {
- "windowsAuthentication": false,
- "anonymousAuthentication": true,
- "iisExpress": {
- "applicationUrl": "http://localhost:4001/",
- "sslPort": 0
- }
- },
- "profiles": {
- "IIS Express": {
- "commandName": "IISExpress",
- "launchBrowser": true,
- "environmentVariables": {
- "ASPNETCORE_ENVIRONMENT": "Development"
- }
- },
- "Web": {
- "commandName": "Project",
- "launchBrowser": true,
- "launchUrl": "http://localhost:5001",
- "environmentVariables": {
- "ASPNETCORE_ENVIRONMENT": "Development"
- }
- }
- }
-}
diff --git a/src/Web/Startup.cs b/src/Web/Startup.cs
deleted file mode 100644
index 5b7e0ccefa..0000000000
--- a/src/Web/Startup.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.Extensions.DependencyInjection;
-
-namespace Bit.Web
-{
- public class Startup
- {
- public void ConfigureServices(IServiceCollection services) { }
-
- public void Configure(IApplicationBuilder app)
- {
- app.UseFileServer();
- }
- }
-}
diff --git a/src/Web/Web.xproj b/src/Web/Web.xproj
deleted file mode 100644
index 08d3201095..0000000000
--- a/src/Web/Web.xproj
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- 14.0
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
-
-
- 0bebf47c-ba0b-48ac-b48c-718f94084ad5
- Bit.Vault
- .\obj
- .\bin\
- v4.6
-
-
- 2.0
- 4001
-
-
-
\ No newline at end of file
diff --git a/src/Web/less/theme.less b/src/Web/less/theme.less
deleted file mode 100644
index 7b907ce677..0000000000
--- a/src/Web/less/theme.less
+++ /dev/null
@@ -1,47 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,300italic,400italic,600italic);
-@import "../node_modules/toastr/toastr.less";
-
-/* Start AdminLTE */
-
-//Bootstrap Variables & Mixins
-//The core bootstrap code have not been modified. These files
-//are included only for reference.
-@import (reference) "../node_modules/admin-lte/build/bootstrap-less/mixins.less";
-@import (reference) "../node_modules/admin-lte/build/bootstrap-less/variables.less";
-//MISC
-//----
-@import "../node_modules/admin-lte/build/less/core.less";
-@import "../node_modules/admin-lte/build/less/variables.less";
-@import "../node_modules/admin-lte/build/less/mixins.less";
-//COMPONENTS
-//-----------
-@import "../node_modules/admin-lte/build/less/header.less";
-@import "../node_modules/admin-lte/build/less/sidebar.less";
-@import "../node_modules/admin-lte/build/less/sidebar-mini.less";
-@import "../node_modules/admin-lte/build/less/control-sidebar.less";
-@import "../node_modules/admin-lte/build/less/dropdown.less";
-@import "../node_modules/admin-lte/build/less/forms.less";
-@import "../node_modules/admin-lte/build/less/progress-bars.less";
-@import "../node_modules/admin-lte/build/less/small-box.less";
-@import "../node_modules/admin-lte/build/less/boxes.less";
-@import "../node_modules/admin-lte/build/less/info-box.less";
-@import "../node_modules/admin-lte/build/less/timeline.less";
-@import "../node_modules/admin-lte/build/less/buttons.less";
-@import "../node_modules/admin-lte/build/less/callout.less";
-@import "../node_modules/admin-lte/build/less/alerts.less";
-@import "../node_modules/admin-lte/build/less/navs.less";
-@import "../node_modules/admin-lte/build/less/table.less";
-@import "../node_modules/admin-lte/build/less/labels.less";
-@import "../node_modules/admin-lte/build/less/modal.less";
-//PAGES
-//------
-@import "../node_modules/admin-lte/build/less/login_and_register.less";
-@import "../node_modules/admin-lte/build/less/404_500_errors.less";
-//Miscellaneous
-//-------------
-@import "../node_modules/admin-lte/build/less/miscellaneous.less";
-@import "../node_modules/admin-lte/build/less/print.less";
-
-/* End AdminLTE */
-
-@import "../node_modules/admin-lte/build/less/skins/skin-blue.less";
diff --git a/src/Web/project.json b/src/Web/project.json
deleted file mode 100644
index 15d3d97389..0000000000
--- a/src/Web/project.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "version": "1.4.0",
- "environment": "Development",
-
- "dependencies": {
- "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
- "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
- "Microsoft.AspNetCore.StaticFiles": "1.0.0"
- },
-
- "tools": {
- "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
- "version": "1.0.0-preview2-final",
- "imports": "portable-net45+win8+dnxcore50"
- }
- },
-
- "frameworks": {
- "netcoreapp1.0": {
- "dependencies": {
- "Microsoft.NETCore.App": {
- "version": "1.0.0",
- "type": "platform"
- }
- }
- }
- },
-
- "buildOptions": {
- "emitEntryPoint": true,
- "preserveCompilationContext": true
- },
-
- "runtimeOptions": {
- "gcServer": false,
- "gcConcurrent": true
- },
-
- "publishOptions": {
- "include": [
- "wwwroot",
- "Views",
- "settings.json",
- "settings.Development.json",
- "settings.Production.json",
- "settings.Staging.json",
- "web.config"
- ]
- },
-
- "scripts": {
- "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
- },
-
- "userSecretsId": "aspnet-Vault-20160519103145"
-}
diff --git a/src/Web/settings.Staging.json b/src/Web/settings.Staging.json
deleted file mode 100644
index 3be6a9c81d..0000000000
--- a/src/Web/settings.Staging.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "appSettings": {
- "apiUri": "https://api.bitwarden.com"
- }
-}
diff --git a/src/Web/web.config b/src/Web/web.config
deleted file mode 100644
index 05ac0e36d8..0000000000
--- a/src/Web/web.config
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/Web/wwwroot/_references.js b/src/Web/wwwroot/_references.js
deleted file mode 100644
index a3275034c6..0000000000
--- a/src/Web/wwwroot/_references.js
+++ /dev/null
@@ -1,74 +0,0 @@
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
-///
diff --git a/src/Web/wwwroot/app/accounts/accountsLoginController.js b/src/app/accounts/accountsLoginController.js
similarity index 100%
rename from src/Web/wwwroot/app/accounts/accountsLoginController.js
rename to src/app/accounts/accountsLoginController.js
diff --git a/src/Web/wwwroot/app/accounts/accountsLogoutController.js b/src/app/accounts/accountsLogoutController.js
similarity index 100%
rename from src/Web/wwwroot/app/accounts/accountsLogoutController.js
rename to src/app/accounts/accountsLogoutController.js
diff --git a/src/Web/wwwroot/app/accounts/accountsModule.js b/src/app/accounts/accountsModule.js
similarity index 100%
rename from src/Web/wwwroot/app/accounts/accountsModule.js
rename to src/app/accounts/accountsModule.js
diff --git a/src/Web/wwwroot/app/accounts/accountsPasswordHintController.js b/src/app/accounts/accountsPasswordHintController.js
similarity index 100%
rename from src/Web/wwwroot/app/accounts/accountsPasswordHintController.js
rename to src/app/accounts/accountsPasswordHintController.js
diff --git a/src/Web/wwwroot/app/accounts/accountsRecoverController.js b/src/app/accounts/accountsRecoverController.js
similarity index 100%
rename from src/Web/wwwroot/app/accounts/accountsRecoverController.js
rename to src/app/accounts/accountsRecoverController.js
diff --git a/src/Web/wwwroot/app/accounts/accountsRegisterController.js b/src/app/accounts/accountsRegisterController.js
similarity index 100%
rename from src/Web/wwwroot/app/accounts/accountsRegisterController.js
rename to src/app/accounts/accountsRegisterController.js
diff --git a/src/Web/wwwroot/app/accounts/views/accountsLogin.html b/src/app/accounts/views/accountsLogin.html
similarity index 100%
rename from src/Web/wwwroot/app/accounts/views/accountsLogin.html
rename to src/app/accounts/views/accountsLogin.html
diff --git a/src/Web/wwwroot/app/accounts/views/accountsLoginInfo.html b/src/app/accounts/views/accountsLoginInfo.html
similarity index 100%
rename from src/Web/wwwroot/app/accounts/views/accountsLoginInfo.html
rename to src/app/accounts/views/accountsLoginInfo.html
diff --git a/src/Web/wwwroot/app/accounts/views/accountsLoginTwoFactor.html b/src/app/accounts/views/accountsLoginTwoFactor.html
similarity index 100%
rename from src/Web/wwwroot/app/accounts/views/accountsLoginTwoFactor.html
rename to src/app/accounts/views/accountsLoginTwoFactor.html
diff --git a/src/Web/wwwroot/app/accounts/views/accountsPasswordHint.html b/src/app/accounts/views/accountsPasswordHint.html
similarity index 100%
rename from src/Web/wwwroot/app/accounts/views/accountsPasswordHint.html
rename to src/app/accounts/views/accountsPasswordHint.html
diff --git a/src/Web/wwwroot/app/accounts/views/accountsRecover.html b/src/app/accounts/views/accountsRecover.html
similarity index 100%
rename from src/Web/wwwroot/app/accounts/views/accountsRecover.html
rename to src/app/accounts/views/accountsRecover.html
diff --git a/src/Web/wwwroot/app/accounts/views/accountsRegister.html b/src/app/accounts/views/accountsRegister.html
similarity index 100%
rename from src/Web/wwwroot/app/accounts/views/accountsRegister.html
rename to src/app/accounts/views/accountsRegister.html
diff --git a/src/Web/wwwroot/app/apiInterceptor.js b/src/app/apiInterceptor.js
similarity index 100%
rename from src/Web/wwwroot/app/apiInterceptor.js
rename to src/app/apiInterceptor.js
diff --git a/src/Web/wwwroot/app/app.js b/src/app/app.js
similarity index 100%
rename from src/Web/wwwroot/app/app.js
rename to src/app/app.js
diff --git a/src/Web/wwwroot/app/config.js b/src/app/config.js
similarity index 100%
rename from src/Web/wwwroot/app/config.js
rename to src/app/config.js
diff --git a/src/Web/wwwroot/app/directives/apiFieldDirective.js b/src/app/directives/apiFieldDirective.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/apiFieldDirective.js
rename to src/app/directives/apiFieldDirective.js
diff --git a/src/Web/wwwroot/app/directives/apiFormDirective.js b/src/app/directives/apiFormDirective.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/apiFormDirective.js
rename to src/app/directives/apiFormDirective.js
diff --git a/src/Web/wwwroot/app/directives/directivesModule.js b/src/app/directives/directivesModule.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/directivesModule.js
rename to src/app/directives/directivesModule.js
diff --git a/src/Web/wwwroot/app/directives/masterPasswordDirective.js b/src/app/directives/masterPasswordDirective.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/masterPasswordDirective.js
rename to src/app/directives/masterPasswordDirective.js
diff --git a/src/Web/wwwroot/app/directives/pageTitleDirective.js b/src/app/directives/pageTitleDirective.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/pageTitleDirective.js
rename to src/app/directives/pageTitleDirective.js
diff --git a/src/Web/wwwroot/app/directives/passwordMeterDirective.js b/src/app/directives/passwordMeterDirective.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/passwordMeterDirective.js
rename to src/app/directives/passwordMeterDirective.js
diff --git a/src/Web/wwwroot/app/directives/passwordViewerDirective.js b/src/app/directives/passwordViewerDirective.js
similarity index 100%
rename from src/Web/wwwroot/app/directives/passwordViewerDirective.js
rename to src/app/directives/passwordViewerDirective.js
diff --git a/src/Web/wwwroot/app/global/globalModule.js b/src/app/global/globalModule.js
similarity index 100%
rename from src/Web/wwwroot/app/global/globalModule.js
rename to src/app/global/globalModule.js
diff --git a/src/Web/wwwroot/app/global/mainController.js b/src/app/global/mainController.js
similarity index 100%
rename from src/Web/wwwroot/app/global/mainController.js
rename to src/app/global/mainController.js
diff --git a/src/Web/wwwroot/app/global/sideNavController.js b/src/app/global/sideNavController.js
similarity index 100%
rename from src/Web/wwwroot/app/global/sideNavController.js
rename to src/app/global/sideNavController.js
diff --git a/src/Web/wwwroot/app/global/topNavController.js b/src/app/global/topNavController.js
similarity index 100%
rename from src/Web/wwwroot/app/global/topNavController.js
rename to src/app/global/topNavController.js
diff --git a/src/Web/wwwroot/app/services/apiService.js b/src/app/services/apiService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/apiService.js
rename to src/app/services/apiService.js
diff --git a/src/Web/wwwroot/app/services/authService.js b/src/app/services/authService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/authService.js
rename to src/app/services/authService.js
diff --git a/src/Web/wwwroot/app/services/cipherService.js b/src/app/services/cipherService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/cipherService.js
rename to src/app/services/cipherService.js
diff --git a/src/Web/wwwroot/app/services/cryptoService.js b/src/app/services/cryptoService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/cryptoService.js
rename to src/app/services/cryptoService.js
diff --git a/src/Web/wwwroot/app/services/importService.js b/src/app/services/importService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/importService.js
rename to src/app/services/importService.js
diff --git a/src/Web/wwwroot/app/services/passwordService.js b/src/app/services/passwordService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/passwordService.js
rename to src/app/services/passwordService.js
diff --git a/src/Web/wwwroot/app/services/servicesModule.js b/src/app/services/servicesModule.js
similarity index 100%
rename from src/Web/wwwroot/app/services/servicesModule.js
rename to src/app/services/servicesModule.js
diff --git a/src/Web/wwwroot/app/services/tokenService.js b/src/app/services/tokenService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/tokenService.js
rename to src/app/services/tokenService.js
diff --git a/src/Web/wwwroot/app/services/validationService.js b/src/app/services/validationService.js
similarity index 100%
rename from src/Web/wwwroot/app/services/validationService.js
rename to src/app/services/validationService.js
diff --git a/src/Web/wwwroot/app/settings.js b/src/app/settings.js
similarity index 100%
rename from src/Web/wwwroot/app/settings.js
rename to src/app/settings.js
diff --git a/src/Web/wwwroot/app/settings/settingsChangeEmailController.js b/src/app/settings/settingsChangeEmailController.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsChangeEmailController.js
rename to src/app/settings/settingsChangeEmailController.js
diff --git a/src/Web/wwwroot/app/settings/settingsChangePasswordController.js b/src/app/settings/settingsChangePasswordController.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsChangePasswordController.js
rename to src/app/settings/settingsChangePasswordController.js
diff --git a/src/Web/wwwroot/app/settings/settingsController.js b/src/app/settings/settingsController.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsController.js
rename to src/app/settings/settingsController.js
diff --git a/src/Web/wwwroot/app/settings/settingsDeleteController.js b/src/app/settings/settingsDeleteController.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsDeleteController.js
rename to src/app/settings/settingsDeleteController.js
diff --git a/src/Web/wwwroot/app/settings/settingsModule.js b/src/app/settings/settingsModule.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsModule.js
rename to src/app/settings/settingsModule.js
diff --git a/src/Web/wwwroot/app/settings/settingsSessionsController.js b/src/app/settings/settingsSessionsController.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsSessionsController.js
rename to src/app/settings/settingsSessionsController.js
diff --git a/src/Web/wwwroot/app/settings/settingsTwoFactorController.js b/src/app/settings/settingsTwoFactorController.js
similarity index 100%
rename from src/Web/wwwroot/app/settings/settingsTwoFactorController.js
rename to src/app/settings/settingsTwoFactorController.js
diff --git a/src/Web/wwwroot/app/settings/views/settings.html b/src/app/settings/views/settings.html
similarity index 100%
rename from src/Web/wwwroot/app/settings/views/settings.html
rename to src/app/settings/views/settings.html
diff --git a/src/Web/wwwroot/app/settings/views/settingsChangeEmail.html b/src/app/settings/views/settingsChangeEmail.html
similarity index 100%
rename from src/Web/wwwroot/app/settings/views/settingsChangeEmail.html
rename to src/app/settings/views/settingsChangeEmail.html
diff --git a/src/Web/wwwroot/app/settings/views/settingsChangePassword.html b/src/app/settings/views/settingsChangePassword.html
similarity index 100%
rename from src/Web/wwwroot/app/settings/views/settingsChangePassword.html
rename to src/app/settings/views/settingsChangePassword.html
diff --git a/src/Web/wwwroot/app/settings/views/settingsDelete.html b/src/app/settings/views/settingsDelete.html
similarity index 100%
rename from src/Web/wwwroot/app/settings/views/settingsDelete.html
rename to src/app/settings/views/settingsDelete.html
diff --git a/src/Web/wwwroot/app/settings/views/settingsSessions.html b/src/app/settings/views/settingsSessions.html
similarity index 100%
rename from src/Web/wwwroot/app/settings/views/settingsSessions.html
rename to src/app/settings/views/settingsSessions.html
diff --git a/src/Web/wwwroot/app/settings/views/settingsTwoFactor.html b/src/app/settings/views/settingsTwoFactor.html
similarity index 100%
rename from src/Web/wwwroot/app/settings/views/settingsTwoFactor.html
rename to src/app/settings/views/settingsTwoFactor.html
diff --git a/src/Web/wwwroot/app/tools/toolsAuditsController.js b/src/app/tools/toolsAuditsController.js
similarity index 100%
rename from src/Web/wwwroot/app/tools/toolsAuditsController.js
rename to src/app/tools/toolsAuditsController.js
diff --git a/src/Web/wwwroot/app/tools/toolsController.js b/src/app/tools/toolsController.js
similarity index 100%
rename from src/Web/wwwroot/app/tools/toolsController.js
rename to src/app/tools/toolsController.js
diff --git a/src/Web/wwwroot/app/tools/toolsExportController.js b/src/app/tools/toolsExportController.js
similarity index 100%
rename from src/Web/wwwroot/app/tools/toolsExportController.js
rename to src/app/tools/toolsExportController.js
diff --git a/src/Web/wwwroot/app/tools/toolsImportController.js b/src/app/tools/toolsImportController.js
similarity index 100%
rename from src/Web/wwwroot/app/tools/toolsImportController.js
rename to src/app/tools/toolsImportController.js
diff --git a/src/Web/wwwroot/app/tools/toolsModule.js b/src/app/tools/toolsModule.js
similarity index 100%
rename from src/Web/wwwroot/app/tools/toolsModule.js
rename to src/app/tools/toolsModule.js
diff --git a/src/Web/wwwroot/app/tools/views/tools.html b/src/app/tools/views/tools.html
similarity index 100%
rename from src/Web/wwwroot/app/tools/views/tools.html
rename to src/app/tools/views/tools.html
diff --git a/src/Web/wwwroot/app/tools/views/toolsAudits.html b/src/app/tools/views/toolsAudits.html
similarity index 100%
rename from src/Web/wwwroot/app/tools/views/toolsAudits.html
rename to src/app/tools/views/toolsAudits.html
diff --git a/src/Web/wwwroot/app/tools/views/toolsExport.html b/src/app/tools/views/toolsExport.html
similarity index 100%
rename from src/Web/wwwroot/app/tools/views/toolsExport.html
rename to src/app/tools/views/toolsExport.html
diff --git a/src/Web/wwwroot/app/tools/views/toolsImport.html b/src/app/tools/views/toolsImport.html
similarity index 100%
rename from src/Web/wwwroot/app/tools/views/toolsImport.html
rename to src/app/tools/views/toolsImport.html
diff --git a/src/Web/wwwroot/app/vault/vaultAddFolderController.js b/src/app/vault/vaultAddFolderController.js
similarity index 100%
rename from src/Web/wwwroot/app/vault/vaultAddFolderController.js
rename to src/app/vault/vaultAddFolderController.js
diff --git a/src/Web/wwwroot/app/vault/vaultAddSiteController.js b/src/app/vault/vaultAddSiteController.js
similarity index 100%
rename from src/Web/wwwroot/app/vault/vaultAddSiteController.js
rename to src/app/vault/vaultAddSiteController.js
diff --git a/src/Web/wwwroot/app/vault/vaultController.js b/src/app/vault/vaultController.js
similarity index 100%
rename from src/Web/wwwroot/app/vault/vaultController.js
rename to src/app/vault/vaultController.js
diff --git a/src/Web/wwwroot/app/vault/vaultEditFolderController.js b/src/app/vault/vaultEditFolderController.js
similarity index 100%
rename from src/Web/wwwroot/app/vault/vaultEditFolderController.js
rename to src/app/vault/vaultEditFolderController.js
diff --git a/src/Web/wwwroot/app/vault/vaultEditSiteController.js b/src/app/vault/vaultEditSiteController.js
similarity index 100%
rename from src/Web/wwwroot/app/vault/vaultEditSiteController.js
rename to src/app/vault/vaultEditSiteController.js
diff --git a/src/Web/wwwroot/app/vault/vaultModule.js b/src/app/vault/vaultModule.js
similarity index 100%
rename from src/Web/wwwroot/app/vault/vaultModule.js
rename to src/app/vault/vaultModule.js
diff --git a/src/Web/wwwroot/app/vault/views/vault.html b/src/app/vault/views/vault.html
similarity index 100%
rename from src/Web/wwwroot/app/vault/views/vault.html
rename to src/app/vault/views/vault.html
diff --git a/src/Web/wwwroot/app/vault/views/vaultAddFolder.html b/src/app/vault/views/vaultAddFolder.html
similarity index 100%
rename from src/Web/wwwroot/app/vault/views/vaultAddFolder.html
rename to src/app/vault/views/vaultAddFolder.html
diff --git a/src/Web/wwwroot/app/vault/views/vaultAddSite.html b/src/app/vault/views/vaultAddSite.html
similarity index 100%
rename from src/Web/wwwroot/app/vault/views/vaultAddSite.html
rename to src/app/vault/views/vaultAddSite.html
diff --git a/src/Web/wwwroot/app/vault/views/vaultEditFolder.html b/src/app/vault/views/vaultEditFolder.html
similarity index 100%
rename from src/Web/wwwroot/app/vault/views/vaultEditFolder.html
rename to src/app/vault/views/vaultEditFolder.html
diff --git a/src/Web/wwwroot/app/vault/views/vaultEditSite.html b/src/app/vault/views/vaultEditSite.html
similarity index 100%
rename from src/Web/wwwroot/app/vault/views/vaultEditSite.html
rename to src/app/vault/views/vaultEditSite.html
diff --git a/src/Web/wwwroot/app/views/backendLayout.html b/src/app/views/backendLayout.html
similarity index 100%
rename from src/Web/wwwroot/app/views/backendLayout.html
rename to src/app/views/backendLayout.html
diff --git a/src/Web/wwwroot/app/views/frontendLayout.html b/src/app/views/frontendLayout.html
similarity index 100%
rename from src/Web/wwwroot/app/views/frontendLayout.html
rename to src/app/views/frontendLayout.html
diff --git a/src/Web/wwwroot/favicon.ico b/src/favicon.ico
similarity index 100%
rename from src/Web/wwwroot/favicon.ico
rename to src/favicon.ico
diff --git a/src/Web/wwwroot/images/boxed-bg-2x.png b/src/images/boxed-bg-2x.png
similarity index 100%
rename from src/Web/wwwroot/images/boxed-bg-2x.png
rename to src/images/boxed-bg-2x.png
diff --git a/src/Web/wwwroot/images/boxed-bg.png b/src/images/boxed-bg.png
similarity index 100%
rename from src/Web/wwwroot/images/boxed-bg.png
rename to src/images/boxed-bg.png
diff --git a/src/Web/wwwroot/index.html b/src/index.html
similarity index 100%
rename from src/Web/wwwroot/index.html
rename to src/index.html
diff --git a/src/less/theme.less b/src/less/theme.less
new file mode 100644
index 0000000000..12f53a69a7
--- /dev/null
+++ b/src/less/theme.less
@@ -0,0 +1,47 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,300italic,400italic,600italic);
+@import "../../node_modules/toastr/toastr.less";
+
+/* Start AdminLTE */
+
+//Bootstrap Variables & Mixins
+//The core bootstrap code have not been modified. These files
+//are included only for reference.
+@import (reference) "../../node_modules/admin-lte/build/bootstrap-less/mixins.less";
+@import (reference) "../../node_modules/admin-lte/build/bootstrap-less/variables.less";
+//MISC
+//----
+@import "../../node_modules/admin-lte/build/less/core.less";
+@import "../../node_modules/admin-lte/build/less/variables.less";
+@import "../../node_modules/admin-lte/build/less/mixins.less";
+//COMPONENTS
+//-----------
+@import "../../node_modules/admin-lte/build/less/header.less";
+@import "../../node_modules/admin-lte/build/less/sidebar.less";
+@import "../../node_modules/admin-lte/build/less/sidebar-mini.less";
+@import "../../node_modules/admin-lte/build/less/control-sidebar.less";
+@import "../../node_modules/admin-lte/build/less/dropdown.less";
+@import "../../node_modules/admin-lte/build/less/forms.less";
+@import "../../node_modules/admin-lte/build/less/progress-bars.less";
+@import "../../node_modules/admin-lte/build/less/small-box.less";
+@import "../../node_modules/admin-lte/build/less/boxes.less";
+@import "../../node_modules/admin-lte/build/less/info-box.less";
+@import "../../node_modules/admin-lte/build/less/timeline.less";
+@import "../../node_modules/admin-lte/build/less/buttons.less";
+@import "../../node_modules/admin-lte/build/less/callout.less";
+@import "../../node_modules/admin-lte/build/less/alerts.less";
+@import "../../node_modules/admin-lte/build/less/navs.less";
+@import "../../node_modules/admin-lte/build/less/table.less";
+@import "../../node_modules/admin-lte/build/less/labels.less";
+@import "../../node_modules/admin-lte/build/less/modal.less";
+//PAGES
+//------
+@import "../../node_modules/admin-lte/build/less/login_and_register.less";
+@import "../../node_modules/admin-lte/build/less/404_500_errors.less";
+//Miscellaneous
+//-------------
+@import "../../node_modules/admin-lte/build/less/miscellaneous.less";
+@import "../../node_modules/admin-lte/build/less/print.less";
+
+/* End AdminLTE */
+
+@import "../../node_modules/admin-lte/build/less/skins/skin-blue.less";
diff --git a/src/Web/less/vault.less b/src/less/vault.less
similarity index 100%
rename from src/Web/less/vault.less
rename to src/less/vault.less