Teste Técnico Desenvolvedor II .NET
Melhoria do teste Inicial
*APROVADO 🚀
O projeto inicial era para fazer uma API de gerenciamento de TODO's. Vi a oporunidade de transformar essa tarefa em algo mais robusto e utilizar outras ferramentas para isso. Onde dei push em 3 imagens no docckerhub: (Veja as versões de cada para melhor uso da aplicação)
https://hub.docker.com/r/rodolfojesus/todo_manager (Gerenciamento de Todo's)
https://hub.docker.com/r/rodolfojesus/progress-manager (Gerenciamento de In Progress)
https://hub.docker.com/r/rodolfojesus/done-manager (Gerenciamento de Done's)
e outra assembly no Nuget:
https://www.nuget.org/packages/CardsManagerLibTest/
A aplicação foi desenvolvida pensando em sua possível extensão para mais funcionalidades e models/controladores além do Todo.
Os pacotes utilizados ajudam na implementação de padrões de projetos utilizados
como criação e mapeamento de novos objetos, responsabilidades únicas de classe,
reutilização de código, isolamento de funcionalidades e padronizações de código para melhor leitura.
- Banco de dados Mysql / SqlServer
- IDE Visual Studio Community 2022
- .NET CORE 6
- Docker
- EntityFrameWorkCore
- AutoMapper DependecyInjection
- Provider SqlServer
- Pomelo Mysql
- EFCore Proxies Lazy-loading
- EFCore Tools
- CardsManagerLibTest (https://www.nuget.org/packages/CardsManagerLibTest/) v 1.1.1
- A aplicação utiliza a ConnectionString setada no arquivo appsettings.json para conexão com o bando de dados. Altere o arquivo com configurações da sua máquina local. Por padrão está usando o Mysql
- A aplicação executa a migration para criar o database e tabelas automaticamente. Em caso de erro, será exibido as informações no console. Niss, Utilize o console de gerenciador de pacotes do NuGet e rode os comando de migrations:
- Add-Migration "migration"
- Update-Database
- O swagger está habilitado, mesmo assim, foi disponibilizado o arquivo CollectionRequests.json na raiz do projeto. Faça importação no Postman se necessário.
A aplicação também utiliza o Mysql no container. A comunicação é feita pelo nome da imagem mysql criado. Por padrão: mysql.
Descomentar linha 20 do arquivo Program.cs
var connectionString = builder.Configuration.GetConnectionString("StringConnApiTodoManagerDocker");
Use o Arquivo docker-compose.yml contido na pasta de cada projeto para criar todos os ambientee e as dependencias necessárias automaticamente e execute o comando na pasta correspondente:
docker compose up
Mas se preferir
Para criar containers rode os seguintes comandos via terminal:
docker network create --driver bridge cards_manager
docker run -d --name mysql --network cards_manager -e MYSQL_ROOT_PASSWORD=root123 mysql
docker run -d -p 8080:80 --network cards_manager rodolfojesus/todo_manager:2.0
docker run -d -p 8081:80 --network cards_manager rodolfojesus/progress_manager:1.0
docker run -d -p 8082:80 --network cards_manager rodolfojesus/done_manager:1.0
Abra o navegador no endereço http://localhost:8080/swagger/index.html
- A aplicação está rodando na porta padrão disponibilizada pela plataforma. Portas 5001 para https e 5000 para http. Se necessário alterar uma ou outra, basta alterar na linha 25 do arquivo launchSttings.json dentro da pasta Properties.
- Se utilizado o postman para usar as requições:
caso seja exibido algum erro de SSL, desabilite a verificação em: File->settings->SSQL certificate verification(off)
- Rodolfo J.Silva (Developer)
- LinkeIn
- Email: (rodolfo0ti@gmail.com)
The MIT License (MIT).