Giter Club home page Giter Club logo

projeto_frc's Introduction

Relatório

Código da Disciplina: FGA0211
Disciplina: Fundamentos de Rede de Computadores
Curso: Engenharia de Software - FGA/UnB - 2021.2
Professor: Fernando William Cruz

Alunos

Matrícula Aluno
17/0115500 Vinícius Vieira de Souza
18/0030272 Antônio Ruan Moura

Introdução

Este projeto tem como objeto, permitir que os alunos compreendam a arquitetura de aplicações de rede (segundo arquitetura TCP/IP) que envolvam gerência de diálogo. Para isso, devem construir uma aplicação que disponibilize salas de bate-papo virtuais, nas quais os clientes podem ingressar e interagir.

Metodologia Utilizada

  • Os alunos se reuniram no dia 27 de abril para discutir a liguagem.
  • No dia 29 de abril os alunos refletiram sobre quais as metas além dos requisitos solicitados seriam implementadas. Além do inicio de estudos sobre como seria implementadas
  • No dia 3 de maio os alunos se reuniram para iniciar a implementação de chat de maneira simples (bate papo simples com sala única) e sequencialmente realizarem sua otimização para a utilização de múltiplas salas de bate papo.
  • No dia 4 foi realizado ajustes, e tentativa de implementação extra (critografia de mensagens) e finalização do trabalho.

Solução

O código principal esta dividido entre o modulo chat_server, client. O modulo chat_server ira rodar o servidor de forma local (IP: 127.0.0.1) na porta 8080. Ele possui funções administrativas mínimas como sugerido nas especificações do trabalho. Assim também como funções de gerenciamento do dialogo para tratar e receber mensagens do cliente. Também é neste modulo que são definidas as salas com suas capacidades maximas de membros

O modulo client permite a conexao com o servidor para a realização do dialogo, pois é através do servidor que o cliente ira repassar as mensagens para os demais usuário do chat por meio de um broadcast. Este modulo tambem define o identificador(apelido) que o cliente utilizara no chat.

Como extras os alunos implementaram comandos especiais. \quit para cortar a conexao do cliente com o servido, saindo da aplicação. O comand \l para listar todos os integrantes da mesma sala de chat. \kick para que o administrador expulse usuarios do chat atraves do nickname, e \ban para que o admin banir o cliente que não tera mais acesso ao chat usando o mesmo nickname. \to também é um comando implementado para o envio de mensagens criptografadas para um determinado membro da sala. Além disso ha um comando \help para ajudar o cliente.

Conclusão

O projeto entregue possui diversas dos requisitos especificados implementados. Com a excessão de criação por parte do usuário das salas de bate papo (A criação ocorre diretamente no servidor). O cliente não consegue no momento realizar a troca de salas tendo de realizar um novo acesso para entrar em outra sala. O dialogo em vídeo/audio seria uma funcionalidade de melhoria assim como uma interface gráfica mais amigável para o cliente.

Vinícius Vieira de Souza

O projeto foi bastante interessante, pois deu uma noção melhor sobre como os aplicativos de bate-papo como whatsapp, telegram entre outros possam ser realizado. Fazendo essa comparação também dá pra perceber como esse projeto poderia evoluir em questões de cominicação entre o cliente e servidor, assim também como questões de segurança. Uma melhoria que acho que seria interessante para disciplina seria a disponibilização de um cronograma de realização de minitestes para facilitar a preparação dos alunos quanto ao estudo. A participação dos integrantes do grupo neste trabalho ocorreu sem nenhum problema, os dois membros se ajudaram de forma harmoniosa pareando e trocando conhecimento. Creio que meu desempenho na disciplina poderia ter sido melhor se a disponibilização dos materiais e cronograma de avaliações tivesse ocorrido com maior antecedência para organizar meus estudos.

Antonio Ruan Moura

Foi uma boa oportunidade poder trabalhar utilizando os conceitos aprendidos na disciplina, para melhorias acredito que um prazo maior para as tarefas seja mais aproveitado, como diluir esse trabalho final para todo o semestre, apesar de ser uma ideia relativamente simpels, da bastante trabalho programar nesse nível. A participação do grupo foi bastante construtiva, no geral ambos parearam bastante e compartilharam conhecimento como um todo. Acredito que meu desempenho nesse trabalho foi muito significativo, unica coisa que ficou faltando foi mais tempo para concluir o projeto, pois existem muitas funcionalidades legais para ser explorada sobre o tema do trabalho final.

Requisitos e Uso

Para executar o projeto é necessário que sua maquina possua python3:

sudo apt-get install python3

Uso

Após clonar o repositório pela primeira vez, no diretório execute na raiz do projeto o comando:

pip install -r requirements.txt

Em seguida é necessário abrir dois terminais na raiz do projeto. O primeiro que deverá inicializar o servidor do chat através do comando:

python3 src/chat_server.py

Em sequencia é para realizar a conexao do cliente com o servidor. Ainda na raiz, execute:

python3 src/client.py

pronto a aplicação já esta rodando.

Referências(FONTES)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.