Skip to content

lrodolfol/Teste-Tecnico-.NET2.0

Repository files navigation

Teste Técnico Desenvolvedor II .NET
Melhoria do teste Inicial
*APROVADO 🚀

Construção de API para gerenciamentos de TODO's

Sobre

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.

Tecnologias Utilizadas:

  • Banco de dados Mysql / SqlServer
  • IDE Visual Studio Community 2022
  • .NET CORE 6
  • Docker

Bibliotecas, Pacotes e Frameworks utilizados:

Rodando a aplicação

  • 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.

Container

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

Possíveis alterações necessárias

  • 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)

Credits

License

The MIT License (MIT).

About

Construção de API para gerenciamentos de TODO's

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors