O projeto Knowledge.IO é um sistema web de identificação e autorização desenvolvido na plataforma .NET Core. Neste projeto foi utilizado conceitos arquiteturais de modelagem de domínio (DDD), separação de comandos e consultas (CQRS) e implementações voltadas a testes com os fundamentos do TDD.
Realizei estudos sobre as arquiteturas citadas anteriormente e então desenvolvi uma aplicação capaz de fornecer uma API, para identificar usuários e aplicar políticas de autorização baseadas em permissões por perfil. Todo o módulo de identidade e acesso foi completamente isolado da aplicação web e customizado com IdentityServer, com o propósito de descartar a implementação do IdentityCore, porque para o contexto atual não se encaixava.
- ASP.NET Core 2.2 (com .NET Core 2.2)
- ASP.NET WebApi Core
- Identity Server 4
- Entity Framework Core 2.2
- .NET Core DI Nativa
- MediatR
- FluentValidator
- Angular 8
- Elmah.IO
- Swagger UI
- RobbitMQ
- Domain Driven Design (Camadas e Domain Model Pattern)
- Test Driven Development
- CQRS (abordagem simples)
- Domain Events
- Domain Notifications
- Repository e Generic Repository
- Unit Of Work
- Event Sourcing