Skip to content

luizzenon/Chat_UDP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat_UDP

Introdução

Este Projeto tem como propósito desenvolver um Sistema de Chat completamente descentralizado.

Tal escolha foi motivada pelo risco em que uma arquitetura com um servidor central possui: caso o servidor fique indisponível, todas as outras estações caem.

Seguem abaixo uma figura que ilustra a arquitetura do Sistema. Observem que não há um servidor central:
esquema

Regras de Negócio

ID Descrição
RN-01 Todos os usuários possuem acesso a todas as mensagens da Sala.
RN-02 As informações das conversas deverão ser sigilosas, a fim de evitar que outras pessoas que não sejam participantes possam visualizar as informações.

Requisitos Funcionais

ID Descrição
RQF01 O Sistema deverá permitir que o Usuário mantenha as configurações do Chat UDP, preenchendo os seguintes dados:

– Nome do Usuário
– Nome da Sala
– Senha da Sala

O Sistema deverá preencher automaticamente a seguinte informação:

– ID do Usuário
– IP do Usuário
– ID da Sala

O Sistema deverá apresentar uma Sala, contendo os seguintes dados:

– Nome da Sala
– Nome do Usuário
– Campo onde ficarão as mensagens enviadas e recebidas
– Campo onde ficará a lista de participantes
– Campo onde o Usuário escreverá sua mensagem para ser enviada
– Botão “Enviar”
RQF02 O Sistema deverá enviar a Mensagem de Presença para todos os outros participantes na sala. Além disso, o Sistema deverá receber a mensagem de Presença de todos os outros participantes. Tal mensagem deverá conter os seguintes dados:

– Nome do Usuário
– Data Hora
– Tipo (PRESENÇA)

Cada participante será considerado “online” , caso o Sistema receba sua Mensagem de Presença. Caso contrário, será considerado “offline”.

Dessa forma, o Sistema deverá apresentar ao Usuário a lista de participantes da Sala, contendo os seguintes dados:

– Nome do Participante
RQF03 O Sistema deverá permitir que o Usuário envie mensagens para todos os usuários na mesma sala, preenchendo os seguintes dados:
Texto da Mensagem
Mensagem de Referência (OPCIONAL)

O Sistema deverá preencher automaticamente as seguintes informações:

– Número da Mensagem
– Data Hora do envio da Mensagem
– Nome do Usuário
– Tipo (MENSAGEM TEXTO)

O Sistema deverá apresentar ao Usuário as seguintes informações:

– Texto da Mensagem
– Mensagem de Referência (se for o caso)
– Número da Mensagem
– Data Hora do envio da Mensagem
– Data Hora de Recebimento de cada participante (atualizado automaticamente, assim que receber a mensagem do tipo RECIBO do referido participante)
– Data Hora de Lido de cada participante (atualizado automaticamente assim que receber a mensagem do tipo LEITURA do referido participante)
– Status de envio (não enviada ou enviada)
RQF04 O Sistema deverá receber todas as mensagens de todos os participantes da Sala. As mensagens recebidas conterão as seguintes informações:

– Número da Mensagem
– Participante que enviou a Mensagem (Origem)
– Data Hora da Mensagem
– Texto
– Mensagem de Referência (se for o caso)
RQF05 O Sistema deverá permitir que o Usuário LISTE todas as mensagens enviadas que ainda faltam ciência de algum dos participantes.

Requisitos Não-Funcionais

ID Descrição
RQNF01 O Sistema deve ter uma interface Web compatível para uso em desktop.
RQNF02 O Sistema deve ser desenvolvido utilizando a linguagem Python.
RQNF03 O Sistema deve persistir localmente todas as configurações e mensagens, a fim de, quando faltar energia, os dados não sejam perdidos.
RQNF04 Todas as mensagens deverão ser enviados criptografados.
RQNF05 As comunicações deverão ser por UDP.
RQNF06 O Sistema deverá ser completamente descentralizado, utilizando a arquitetura de Rede Malha.

Identificação de Casos de Uso

ID Descrição
RQF01 UCS01 - Manter Configurações
RQF02 UCS02 - Enviar Mensagem de Presença
UCS03 - Receber Mensagem de Presença
RQF03 UCS04 - Enviar Mensagem
UCS11 - Referenciar Mensagem
UCS08 - Receber Mensagem Recibo
UCS09 - Receber Mensagem Lido
RQF04 UCS05 - Receber Mensagem
UCS06 - Enviar Mensagem Recibo
UCS07 - Enviar Mensagem Lido
RQF05 UCS11 - Listar Mensagens Enviadas Pendentes

Diagrama de Casos de Uso
usecase diagram0chatupd

Diagrama de Atividades
activity diagram0chatudp

Diagrama de Classes
chatudp_classdiagram

Sinta-se a vontade para contribuir como quiser ;)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published