Este projeto é um chat por terminal desenvolvido para a disciplina de Estudo de Banco de Dados 2. Ele utiliza PyMongo para armazenar mensagens em um banco de dados MongoDB e a biblioteca de criptografia aes-pkcs5 para garantir a segurança da comunicação. O objetivo é permitir que os usuários troquem mensagens de forma segura e eficiente, com armazenamento persistente das conversas.
- Comunicação em tempo real: Envio e recebimento de mensagens instantaneamente.
- Criptografia de mensagens: As mensagens são criptografadas usando AES com PKCS#5 antes de serem armazenadas no banco de dados.
- Armazenamento em MongoDB: Mensagens são salvas em um banco de dados NoSQL, garantindo persistência.
- Interface de linha de comando: A interação ocorre diretamente pelo terminal.
- Python: Linguagem principal do projeto.
- PyMongo: Biblioteca para interação com o MongoDB.
- aes-pkcs5: Biblioteca para criptografia AES com preenchimento PKCS#5.
- MongoDB: Banco de dados NoSQL utilizado para armazenamento.
-
Clone o repositório:
git clone https://github.com/marcos-do-amaral-miotto/MongoChat.git cd MongoChat -
Criação do Ambiente Virtual: Para garantir que todas as dependências sejam isoladas do sistema, crie e ative um ambiente virtual Python:
macOS/Linux
python3 -m venv .venv source .venv/bin/activateWindows
python -m venv .venv .venv\Scripts\Activate.ps1
Nota: Se estiver utilizando o PyCharm, configure o interpretador do projeto para o ambiente virtual recém-criado acessando:
File > Settings > Project: MongoChat > Python Interpretere selecionando o ambiente virtual.venv. -
Instale as dependências: Após ativar o ambiente virtual, instale os pacotes necessários a partir do arquivo
requirements.txt:pip install -r requirements.txt
-
Execute o chat:
python main.py
-
Inicie a conversa: Siga as instruções no terminal para enviar e receber mensagens.
Contribuições são bem-vindas! Sinta-se à vontade para enviar um pull request ou abrir uma issue para sugestões ou problemas.
Este projeto está licenciado sob a MIT License. Consulte o arquivo LICENSE para mais detalhes.