Desafio
A empresa Battle Royalle Solutions está com a demanda para controlar máquinas Windows remotamente usando CLI. A empresa então decidiu que a melhor solução para eles, seria a criação de uma aplicação cliente que seria executado como um Windows Service, e uma aplicação Web para prover a interface que permitiria executar os comandos em uma ou várias máquinas.
Usando a aplicação Web, deve ser possível escolher uma máquina para interagir com ela executando comandos e recebendo os resultados dele, ou seja, ter um terminal na aplicação web.
Requisitos
- Deve ser possível executar comandos como “dir, cd” do cmd e comandos do powershell também e receber o retorno deles.
- A aplicação cliente deve se registrar na aplicação web, tornando possível a interação com aquela máquina.
- A aplicação web não deve deixar executar comandos em maquinas que não estão com o serviço cliente em execução(possível motivo: máquina desligada).
- Deve ser possível registrar o log de execução de comandos bem como o retorno deles, para serem visualizados posteriormente.
- Deve ser possível executar um mesmo comando em várias máquinas de uma única vez.
- A aplicação cliente deve enviar os seguintes dados da máquina local no momento do registro:
- Nome da máquina
- IP Local
- Antivirus instalado
- Firewall está ativo
- Versão do Windows
- Versão do .NET Framework instalado
- Tamanho dos HDs (disponível e total)
- A aplicação cliente deve ter um instalador fácil.
- O instalador da aplicação cliente deve permitir a instalação sem interface gráfica(instalação quiet).
Avaliação
Os seguintes pontos serão considerados para uma boa avaliação do seu projeto.
- Arquitetura da aplicação
- Código limpo
- Respeito as boas práticas de programação como KISS, YAGNI, SOLID e etc
- Utilização de padrões de projeto
- Utilização de um framework SPA para o Front-End
- Automatização de build/deploy
- Uso de testes unitários
- Utilização de tecnologias recentes, bem como a versão mais nova do C# / .NET Core 3.1
- Utilização de recursos de integração com GitHub.