Connectopia
Um sistema de fórum acadêmico projetado para promover a troca de conhecimento entre estudantes e professores. A plataforma permite que estudantes publiquem perguntas sobre diversos assuntos, enquanto outros estudantes e professores podem interagir fornecendo respostas. O projeto foi desenvolvido utilizando os princípios de Domain-driven Design (DDD) e Clean Architecture, garantindo modularidade e escalabilidade.
O que é o Connectopia?
Connectopia é uma plataforma robusta que organiza as interações dentro de um fórum acadêmico de forma estruturada e eficiente. O sistema é dividido em dois domínios principais: Fórum e Notificação. Essa separação permite gerenciar perguntas e respostas de forma independente da camada de comunicação, garantindo flexibilidade na evolução da aplicação.
Como funciona:
- Publicação de Perguntas: Os estudantes podem criar novas perguntas no fórum, categorizando os tópicos para facilitar a organização das discussões. Cada pergunta possui um título e uma descrição detalhada do problema, ajudando na busca por soluções.
- Respostas e Interações: Outros usuários podem responder às perguntas, criando discussões produtivas dentro da plataforma. As respostas podem ser votadas para destacar as mais relevantes, garantindo que o melhor conteúdo fique visível para todos.
- Gerenciamento de Notificações: O sistema conta com um domínio específico para notificações, garantindo que os usuários sejam informados sobre novas respostas ou interações em suas perguntas. Isso melhora a experiência do usuário, mantendo-o atualizado sobre as discussões que participa.
- Arquitetura Baseada em DDD e Clean Architecture: A plataforma é estruturada seguindo os princípios de Domain-driven Design (DDD), separando os conceitos de Fórum e Notificação em domínios distintos. Isso permite maior organização e escalabilidade, além de facilitar a manutenção do código.
- Camada de Aplicação: A camada de aplicação contém os casos de uso e repositórios necessários para interagir com o domínio. As regras de negócio são encapsuladas em casos de uso específicos, garantindo que cada ação siga as diretrizes do sistema.
- Camada de Domínio e Enterprise: O domínio do Fórum possui entidades como 'Pergunta' e 'Resposta', além de eventos que podem acionar notificações. Já o domínio de Notificação gerencia alertas e mensagens para os usuários, garantindo que sejam informados sobre interações relevantes.
- Sistema de Eventos e Assinantes: A arquitetura conta com um sistema de eventos dentro do domínio de Notificação, permitindo que novos eventos disparem ações específicas, como alertar um usuário quando sua pergunta for respondida.