Criar um sistema básico de blog onde os usuários podem visualizar, criar, editar e excluir postagens. O projeto deve utilizar os princípios de orientação a objetos, seguir os princípios SOLID, integrar o Entity Framework para manipulação de dados e incluir uma comunicação simples usando WebSockets para notificar os usuários sobre novas postagens em tempo real.
Autenticação: Usuários devem ser capazes de se registrar, fazer login.
Gerenciamento de Postagens: Os usuários autenticados podem criar postagens, editar suas próprias postagens e excluir postagens existentes.
Visualização de Postagens: Qualquer visitante do site pode visualizar as postagens existentes.
Notificações em Tempo Real: Implemente um sistema de notificação em tempo real usando WebSockets para informar os usuários sobre novas postagens assim que são publicadas.
Utilize a arquitetura monolítica organizando as responsabilidades, como autenticação, gerenciamento de postagens e notificações em tempo real. Aplique os princípios SOLID, especialmente o princípio da Responsabilidade Única (SRP) e o princípio da Inversão de Dependência (DIP). Utilize o Entity Framework para interagir com o banco de dados para armazenar informações sobre usuários e postagens. Implemente WebSockets para notificações em tempo real. Pode ser uma notificação simples para interface do usuário sempre que uma nova postagem é feita
- .NET 8 (SDK)
- IDE de sua preferência, mas nos exemplos a seguir irei utilizar o Visual Studio
- Crie um diretório para o projeto no seu computador.
- Abra o terminal no repositório criado.
- Execute o comando abaixo:
git clone https://github.com/DiegoNetoMartins/blog-websocket
Ou se preferir, realize o download do código fonte em formato .zip e extraia para uma pasta de sua preferência:
- Abra o projeto com o Visual Studio e configure para inicializar automaticamente o projeto "Blog.Api" e "Blog.Client" conforme imagem abaixo:
Para este exemplo, o projeto "Blog.Api" obrigatoriamente deve iniciar com o perfil "https". Com isso, será aberto a documentação da API e o aplicativo console para simular 3 clientes conectados no blog que deverão receber as notificações em tempo real ao criar um novo post.
- Antes de tudo, é necessário criar um usuário, para poder autenticar no Swagger e criar o post posteriormente e validar se o aplicativo console receberá as notificações ao criar um novo post.
- Depois de criar o usuário é necessário se autenticar para que a aplicação gere o token para poder criar um post.
- Agora copie o token de autenticação e insira na caia de texto de autorização do Swagger:
Pronto, agora podemos criar o post.
- Depois de estar autenticado, podemos criar um novo post de exemplo e validar se os usuários conectados no blog receberão a notificação do novo post criado em tempo real:
- Pronto, depois de criar o post podemos verificar que os 3 clientes simulados pelo console application receberam a notificação em tempo real: