Skip to content

ViniciusFM/ChatApp-Server

Repository files navigation

ChatApp Server (see in 🇺🇸)

O ChatApp Server é o serviço backend que alimenta o aplicativo mobile ChatApp. Ele fornece uma API que gerencia funcionalidades como envio de mensagens, autenticação e canais de chat para o app.

Este servidor foi desenvolvido como parte de um projeto educacional na disciplina de Programação de Dispositivos Móveis do IFTM – Campus Uberaba Parque Tecnológico (UPT), ministrada por Vinícius F. Maciel. Tanto o cliente mobile ChatApp quanto o backend ChatApp Server foram projetados para explorar práticas de desenvolvimento em tecnologias móveis e web.

O servidor é distribuído sob a licença GNU Affero General Public License (AGPLv3), garantindo transparência, colaboração aberta e acesso ao código-fonte para fins de aprendizado e aprimoramento.

Veja a Documentação da API para saber mais.

Objeto User

Atributo Tipo Descrição
id int64 ID na base de dados
uuid str Identificador do usuário
name str Nome do usuário
email str Endereço google account

Objeto Channel

Os canais podem ser compostos de um ou mais usuário. Um usuário admin irá criá-lo

Atributo Tipo Descrição
id int64 ID na base de dados
uuid str Identificador do canal
alias str Nome do canal
img_res str UUID da imagem do canal
admin_id int64 ID do administrador do canal

Objeto Message

As mensagens estão contidas nos canais. Cada canal possui um conjunto de mensagens, mas uma mensagem tem apenas um canal a qual ela pertence. As mensagens são assinadas por usuários.

Atributo Tipo Descrição
id int64 Número identificador da mensagem
channel_id int64 Número identificador do canal que armazena a mensagem
user_id int64 Número identificador do usuário que enviou a mensagem
text str Texto da mensagem enviada
creation_ts str Data de registro da mensagem

Diagrama de dados

Configurando o servidor

  1. Baixar o python 3.x
  2. Instalar o virtualenv:
pip3 install virtualenv
  1. Criar um ambiente virtual
virtualenv .venv
  1. Entrar no ambiente virtual toda vez que for executar o ChatAppServer
# No unix-like
source ./.venv/bin/activate

# No windows
.\.venv\Scripts\activate

# para desativar
deactivate
  1. Instalar as dependencias do projeto
pip install -r requirements.txt

OBS: caso você adicione mais uma biblioteca no projeto, recomenda-se executar: pip freeze > requirements.txt

  1. Crie um arquivo config.json à exemplo do arquivo config-example.json.
    • Para criar um valor para o parâmetro SECRET_KEY de config.json execute:
    python -c "import secrets; print(secrets.token_hex(32))"
    • Repita o mesmo passo anterior para criar um valor para SECRET_CAPTCHA_KEY, para uso do captcha.
    • Copie o valor gerado para o arquivo de configuração.
    • No array RESTRICT_TO adicione regras (regex) e/ou endereços específicos de e-mail para restringir o acesso ao serviço. Se você deletar a regra ou deixar o array vazio, o acesso será irrestrito a qualquer conta Google.
    • No array TOKEN_EXP_DHM adicione a duração de cada API Token, em termos de dias, horas e minutos. Por exemplo, o array [1, 2, 3] corresponderia a um limite de 1 dia, 2 horas e 3 minutos.
    • Complete o arquivo de configuração com o ID da aplicação de autenticação criada no Google Cloud Console. Para saber como realizar esse passo vá para o tutorial docs/google_auth_config.md
  2. Executar a aplicação flask localmente:
flask run --debug --host=0.0.0.0 --port=5000
  1. Utilize uma aplicação para testar a API. Sugestões:

About

A minimal HTTP-based chat server that supports authentication via Google Accounts.

Topics

Resources

License

Stars

Watchers

Forks