renzozuk / Concordo

This is a repository dedicated to the last project for the Programming Language 1 course at college. Concordo is a system similar to Discord, but it works only in text mode and without network resources.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Concordo

Clone do Discord, para humanos mais civilizados.

O Concordo é um sistema com recursos similares ao Discord, porém funciona somente em modo texto e sem recursos de rede.

Executando o Concordo

Instale o g++ e o cmake em seu computador.

Para compilar o programa, execute os comandos cmake <diretório-do-programa> e make.

Para executar o programa, após compilado:

  1. Caso não possua um script: ./program
  2. Caso possua um script: ./program script.txt

Guia de Uso

Comandos que estão sempre disponíveis:

  1. quit: Sai do Concordo.

  2. list-servers: Exibe a lista de servidores atualmente no sistema.

Disponível caso o usuário não esteja logado:

  1. create-user: O comando create-user <email> <senha-sem-espaços> <nome-com-espaços> tem a finalidade de criar um novo usuário no sistema.

  2. login: O comando login <email> <senha> possibilita que o usuário efetue login no sistema.

  3. disconnect: Desconecta o usuário atualmente logado no sistema.

Disponível caso o usuário esteja logado:

  1. create-server: O comando create-server <nome-do-servidor> serve para que o usuário, após logado no sistema, crie um servidor no sistema. Após criado o servidor, o usuário que o criou passa a fazer parte do servidor automaticamente.

  2. set-server-desc: O comando set-server-desc <nome-do-servidor> <descrição> permite que o usuário, dono do servidor, defina a descrição do servidor.

  3. set-server-invite-code: O comando set-server-invite-code <nome-do-servidor> <código-de-convite> possibilita que o usuário, dono do servidor, defina o código de convite do servidor.

  4. remove-server: O comando remove-server <nome-do-servidor> permite que o usuário, dono do servidor, remova o servidor do sistema.

  5. enter-server: O comando enter-server <nome-do-servidor> <código-de-convite> permite que o usuário entre em um servidor. Importante mencionar que o código de convite não é necessário quando o usuário é dono do servidor ou o servidor não possui código de convite.

Disponível caso o usuário, uma vez logado, esteja visualizando um servidor:

  1. leave-server: O comando leave-server permite que o usuário se desconecte do servidor que está atualmente logado. O comando não remove o usuário da lista de participantes do servidor.

  2. list-participants: Exibe o nome de todos os usuários que estão no servidor que o usuário está atualmente conectado.

  3. list-channels: Exibe a lista de canais presentes no servidor que o usuário está atualmente conectado.

  4. create-channel: O comando create-channel <nome-do-canal> <tipo-do-canal> permite que o usuário, uma vez conectando a um servidor, crie um canal de texto ou de voz.

  5. enter-channel: O comando enter-channel <nome-do-canal> permite que o usuário, uma vez conectando a um servidor, entre em um canal de texto ou de voz, caso esse canal exista.

Disponível caso o usuário, uma vez logado, esteja visualizando um canal:

  1. leave-channel: O usuário sai do canal o qual está conectado quando este comando é executado.

  2. send-message: O comando send-message <mensagem> permite que o usuário, uma vez em um canal de texto ou de voz, envie uma mensagem para o referido canal.

  3. list-messages: Caso o usuário esteja em um canal de texto, o comando list-messages mostra o histórico de todas as mensagens que foram enviadas ao canal. Caso o usuário esteja em um canal de voz, o comando list-messages mostra a última mensagem enviada ao canal.

Limitações

Durante as execuções, afim de testar o programa, não foi encontrada nenhuma limitação que prejudique o bom funcionamento do mesmo.

Ao criar um servidor, o usuário não pode escolher um nome para o servidor que tenha espaço, pois isso poderia causar conflito nos seguintes comandos: set-server-desc <nome-do-servidor> <descrição> e set-server-invite-code <nome-do-servidor> <código-de-convite>. Porém, isso não prejudica o bom funcionamento do programa, pois o mesmo avisa ao usuário que ele não pode fazer isso e o oferece a oportunidade de tentar criar um servidor novamente com outro nome.


Desenvolvido por Renzo Zukeram

About

This is a repository dedicated to the last project for the Programming Language 1 course at college. Concordo is a system similar to Discord, but it works only in text mode and without network resources.


Languages

Language:C++ 99.1%Language:CMake 0.9%