Skip to content

Gabrielpmaricato/desafio

Repository files navigation

Desafio AeC Automação

O desafio consiste no desenvolvimento de um RPA simples que realiza uma busca automaizada no site da Alura (https://www.alura.com.br/) e grava os resultados em um banco de dados. A automação deve realizar de forma automática a busca no site da Alura por algum termo de sua escolha, por exemplo, “RPA”.

A automação deverá adicionar o termo no campo da busca, posteriormente realizar o check no filtro de Cursos e realizar a pesquisa.

Com o retorno da pesquisa salvar no banco de dados os seguintes dados:

• Titulo; • Professor (Pode ser um ou todos); • Carga Horária; • Descrição;

Ex: Titulo = “Formação Modelagem e Melhorias de Processos de Negócios”; Professor= “Enio Moraes”; Carga Horaria = “86h”; Descrição = “Um dos maiores desafios das organizações diz respeito à melhoria dos resultados de desempenho de negócios com agilidade operacional. Logo, conhecer de maneira clara os processos propicia uma gestão mais eficiente e viabiliza a implantação de melhorias e mudanças de forma organizada, gerenciável e previsível. Nesse sentido, a modelagem e consequente melhoria nos processos pode ser a chave para o sucesso da sua empresa...”;

O desafio consiste no desenvolvimento de um RPA simples que realiza uma busca automaizada no site da Alura (https://www.alura.com.br/) e grava os resultados em um banco de dados.

Você não precisa se preocupar com o design. Esse não é o objetivo do desafio.

• A abordagem Domain-Driven Design (DDD) em conjunto com a injeção de dependência em C# ajuda a estruturar um RPA de forma que seja modular, altamente coeso e de fácil manutenção. A injeção de dependência é usada para desacoplar as dependências entre classes e permitir a fácil substituição de implementações. Tendo como vantagens, por exemplo:

  1. Isolamento do Domínio;
  2. Flexibilidade e Testabilidade;
  3. Facilidade de Manutenção, entre outros;

Você ganha mais pontos se:

  1. Criar validações de erros, caso o dado não exista ou campo da busca não existir;
  2. Boa documentação de código e de serviços;

Fora isso, sinta-se a vontade para: • Usar qualquer forma de persistência de dados; • E seguir a nossa sugestão de estrutura de pastas no desafio:

o Apresentação; o RPA; o Dominio; o Infraestrutura; o Injeção de Dependência.

Os pré-requisitos são:

  • Que o código seja feito em C#
  • Utilização do framework Selenium
  • Utilização da abordagem DDD com injeção de dependência

Seu projeto será avaliado de acordo com os seguintes critérios:

Sua aplicação preenche os requisitos básicos; Manutenabilidade, clareza e limpeza de código, resultado funcional, entre outros fatores; Explique as decisões técnicas tomadas, as escolhas por bibliotecas e ferrramentas; Fluxo da aplicação; Se você tratou bem com erros e casos inesperados; Se usou Webdriver; Se fez uso do GitFlow;

Estrutura do Projeto

Para esse projeto eu tomei a decisão de criar um projeto Worker.

[WORKER] Um Worker Service no .NET é um modelo de projeto usado para criar serviços de longa duração que rodam em segundo plano. Ele foi introduzido no .NET Core 3.0 e é ideal para tarefas que precisam ser executadas continuamente ou em intervalos regulares, como processamento de filas de mensagens ou execução de tarefas agendadas.

[DDD]

Camadas da Aplicação:

[Apresentação]

Bibliotecas utilizadas:

Bibliotecas
Serilog.AspNetCore Biblioteca de logging estruturado, que permite capturar, analisar e armazenar logs de forma estruturada e consultável.
Selenium.WebDriver Biblioteca que permite interação com páginas da web, execução de ações do usuário e validação de comportamentos.
Dapper O Dapper é uma biblioteca de mapeamento objeto-relacional (ORM) para .NET, conhecida por ser extremamente rápida e eficiente. Ele permite que desenvolvedores acessem dados de diversas fontes, como bancos de dados relacionais e NoSQL, de maneira simples e direta.

🚀 Instalando AeC.Desafio

📝 Fontes

https://renatogroffe.medium.com/novidades-do-net-core-3-0-worker-services-a885b9b4ce02 https://learn.microsoft.com/pt-br/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-design

About

Repositorio criado para o desafio AeC-Pitang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors