Este projeto é uma API .NET 8 utilizando Entity Framework Core com SQLite e Docker, seguindo os princípios de Domain-Driven Design (DDD) e CQRS.
A solução é composta por quatro projetos principais:
- Domain: Contém as entidades do domínio, interfaces e lógica de negócios.
- Infrastructure: Implementação das interfaces, acesso a dados e configuração do EF Core.
- Application: Contém os casos de uso, DTOs, comandos e consultas utilizando CQRS com MediatR.
- WebApi: Camada de apresentação com controladores e configuração do Docker.
+----------------+ +-----------------+
| | | |
| WebApi +<-------->+ Application |
| | | |
+--------+-------+ +--------+--------+
^ ^
| |
v v
+--------+-------+ +--------+--------+
| | | |
| Infrastructure +<-------->+ Domain |
| | | |
+----------------+ +-----------------+
Certifique-se de ter o Docker e o Docker Compose instalados na sua máquina.
-
Clone o Repositório
git clone https://github.com/doublesilva/Teste.ListaTarefa.git cd Teste.ListaTarefa -
Build e Run com Docker Compose
Execute o seguinte comando para compilar e iniciar os serviços definidos no
docker-compose.yml:docker-compose up --build
Isso irá iniciar a aplicação na porta
5000e criar o banco de dados SQLite no diretório./AppData. -
Acessar a Documentação Swagger
Após iniciar a aplicação, acesse a documentação Swagger no seguinte URL:
http://localhost:5000/swagger/index.html
A estrutura do projeto está organizada da seguinte forma:
Teste.ListaTarefa
├── Teste.ListaTarefa.Domain
│ ├── Entities
│ ├── Interfaces
│ └── Services
├── Teste.ListaTarefa.Infrastructure
│ ├── Repositories
│ └── Configuration
├── Teste.ListaTarefa.Application
│ ├── Commands
│ ├── Queries
│ ├── Handlers
│ └── DTOs
├── Teste.ListaTarefa.WebApi
│ ├── Controllers
│ ├── Middleware
│ └── Docker
└── Tests
└── Teste.ListaTarefa.UnitTest
Para executar os testes unitários, utilize o comando:
dotnet test Teste.ListaTarefa.UnitTest/Teste.ListaTarefa.UnitTest.csproj