# MyOffice **Layers** Frontend <-> Backend <-> Services <-> Repositories <-> Database *1. MyOffice.SPA* Frontend layer Angular *2. MyOffice.Web* Backend layer ASP Core *3. MyOffice.Data.Services* Services layer *5. MyOffice.Data.Models* Models *6. MyOffice.Data.Repositories* Database layer *7. MyOffice.DbContext* AppDbContext EntityFramework Core *8. MyOffice.Migrations.Postgres* Postgres Migrations *9. MyOffice.Migrations.Sqlite* Sqlite Migrations **DataBase** 1. SQLite 2. PostgreSql 3. MS SQL **Develompent** 1. Local IIS 2. Express IIS **Authentication & Authorization** 1. Identity Server 4 2. Custom UserStore 3. Login with Google 4. Login with Auth0 **Build & Deploy** 1. Build with .bat 2. Deploy to Linux **Get started** 1. create new project *dotnet new angular-template.ase.com.ua -p MyProject* 2. Build (restore nuget and npm packages) 3. Run Frontend, in Terminal ".\spa_start.bat" (default http://localhost:4200) 2. Set startup project to MyProject.Web 5. Select 'IIS Express', Run Backend (F5) 6. open in browser http://localhost:4200 **add site to IIS** 1. add Site name:myproject Physical path:...\MyProject\MyProject.Web Port:9100 2. Select 'IIS', Run Backend (F5) **Settings** 1. launchSettings.json 2. appsettings appsettings.json appsettings.Development.json appsettings.Production.json **External providers** 1. Auth0 appsettings ExternalProviders:Auth0 2. Google appsettings ExternalProviders:Google **PowerShell scripts** 1. use 'Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass' to allow run *.ps1 2. params.txt 2.1. publish_folder=_Published (folder to publish) 2.2. linux_user=root (linux user) 2.3. linux_host=192.168.1.215 (linux host) 2.4. linux_folder=/var/www/MyProject (folder in linux) **Build** 1. .\build.ps1 1.1. '.\build.ps1' - build Backend + Frontend 1.2. '.\build.ps1 dotnet' build Backend 1.3. '.\build.ps1 spa' build Frontend **Deploy to linux** 1. linux_deploy.ps1 1.1. '.\linux_deploy.ps1' - copy to linux and run 1.2. '.\linux_deploy.ps1 copy' copy to linux 1.3. '.\linux_deploy.ps1 run' run at linux