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.
Atributo | Tipo | Descrição |
---|---|---|
id | int64 | ID na base de dados |
uuid | str | Identificador do usuário |
name | str | Nome do usuário |
str | Endereço google account |
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 |
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 |
- Baixar o python 3.x
- Instalar o virtualenv:
pip3 install virtualenv
- Criar um ambiente virtual
virtualenv .venv
- 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
- 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
- Crie um arquivo
config.json
à exemplo do arquivoconfig-example.json
.- Para criar um valor para o parâmetro
SECRET_KEY
deconfig.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 de1 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
- Para criar um valor para o parâmetro
- Executar a aplicação flask localmente:
flask run --debug --host=0.0.0.0 --port=5000