ChatPv is a desktop application for sending and receiving encrypted messages using MongoDB as the backend. This project is developed with CustomTkinter for the graphical interface and implements AES encryption for secure communication. Works in windows and linux.
- Message Encryption: All messages are encrypted using AES (Advanced Encryption Standard).
- MongoDB Integration: Connects to MongoDB for message and file storage.
- Notifications: Displays notifications for new incoming messages.
- File Upload and Download: Send and receive files directly through the interface.
- Login Lockout: Locks access after multiple failed authentication attempts.
- Python 3.12
- CustomTkinter: Modern and customizable graphical interface.
- PyMongo: Integration with MongoDB.
- PyCryptodome: For message encryption and decryption.
- Plyer: For system notifications.
-
Clone this repository:
git clone https://github.com/Rieidi/ChatPV cd chatPV
-
Install the dependencies:
pip install -r requirements.txt
-
Set up MongoDB:
- Ensure MongoDB is running.
- Create a database and a collection to store messages.
-
Run the program:
python chatPV.py
-
Clone this repository:
git clone https://github.com/Rieidi/ChatPV cd chatPV
-
Create Venv
sudo python3 -m Venv .
-
Activate Venv
source bin/activate
-
Install requirements
pip install -r requirements.txt sudo apt-get install python3-tk
-
Set up MongoDB:
- Ensure MongoDB is running.
- Create a database and a collection to store messages.
-
Run
python3 chatPV.py
On the first run, you will need to fill in the following fields:
-
MongoDB URI: Connection string to your database (without the password).
-mongodb+srv://[username:passwordhere@]host[/[defaultauthdb][?options]]
-
Database Name: The name of the database you created in MongoDB.
-
Collection Name: The collection where messages will be stored.
-
Encryption Key: Hexadecimal key for AES encryption (16 bytes/128 bits).
-
Username and Password: Credentials for database authentication.
- Type the message in the input field.
- Press Enter or click Send.
- Click Upload File in the menu.
- Select the file you want to send.
- Click the Download button next to the message containing the file.
- Choose where to save the file.
- All messages are encrypted before being stored in the database.
- Implements an automatic lockout after 3 incorrect password attempts.
To safeguard your privacy and prevent your internet provider from monitoring your activities, consider using a VPN.
This project is licensed under the MIT LICENSE, and was created for educational purposes only. The developer assumes no responsibility for improper use or illegal activities.