- .NET 8.0 SDK
 - Node JS versão LTS download
 - [opcional] SQL Server LocalDb 
(localdb)\mssqllocaldbinstruções- Se você já tiver outra versão de SQL Server instalado, então será necessário trocar a connection string que fica no arquivo 
appsettings.json 
 - Se você já tiver outra versão de SQL Server instalado, então será necessário trocar a connection string que fica no arquivo 
 
Assumindo que você já tem tudo instalado no seu computador, e já clonou o repositorio, vou assumir que o diretório onde foi clonado é
C:\projetos\HandlingErrors
- Abra um powershell, e navega até o diretório da aplicação
 - Execute um 
dotnet restore - Navegue até o diretório 
cd .\src\HandlingErrors.Web\ClientApp\ - Execute 
npm install - Volte 1 diretório 
cd .. - Se você instalou o SQL Server LocalDB
- Execute 
dotnet run 
 - Execute 
 - Se você não instalou o SQL Server LocalDB
- Execute 
dotnet run useInMemory - Atenção: o banco de dados vai iniciar sempre zerado com essa opção
 - Atenção²: com essa opção não vai ser possível testar a regra de 6 meses, uma vez que os dados estão em memória, não tem como simular criar um recado a mais de 6 meses atrás, já com SQL Server poderia ser trocado a data diretamente no banco.
 
 - Execute 
 - Agora é só abrir o broswer(navegador) e ir até a url http://localhost:5000
 
Para a execução dos testes e geração do relatório de cobertura você deve executar os seguintes passos:
- Usando um console powershell, navegue até a raiz do projeto
 - Execute o seguinte comando 
.\build.ps1 -Target Coverage - Quando o comando terminar, você pode abrir o relatório gerado, para isso execute 
.\coverageOutput\index.htm 
Para a construção eu escolhi a seguintes tecnologias:
- C# 12.0
 - .NET 8.
 - AutoMapper
 - Entity Framework Core 8.*
 - OData 8.*
 - xUnit
 - SimpleInjector
 - FluentValidation
 - Mediatr
 
- Aurelia (Framework frontend para construção de SPAs)
 - TypeScript
 - Stylus
 - Bootstrap 4
 - Momentjs
 
- CakeBuild
- Facilmente plugavel em qualquer servidor de CI(TeamCity/Jenkins/Travis/Azure DevOps/AppVeyor/GitLab Runner/etc)
 - Script versionável
 - Possibilidade de rodar na máquina do Dev
 - Agnóstico a CI server
 - Muito fácil de usar