A GUI python chat app with encryption, notifications and profile pictures
- Encryption (with tag verification and nonce)
- Profile Pictures
- GUI interface
- Logins saved between server reboots
- Hashed passwords
- Profile Pictures saved between server reboots
- Server logs
- Native notifications on Windows
- Sounds throughout the app
- Start the server.py file on a pc
- Note the IP address of the pc (note you may need to diffrentiate between local and public, use 127.0.0.1 if client is same pc as server)
- On the client.py file change line 15
host = "Your host ip" # NOTE: If you are hosting the server yourself change the ip to whatever is appropriate
- (If required) change the port on both server and client files, lines 318 and 17 respectively (note 8000 and 8001 will clash with the client webserver, so avoid them). If changing port restart the server.py file
- Start the client.py file on the client pc
- Follow screen prompts to sign in and chat!
- If the login and profile picture files are not present when the code is run, they will be created. This means that you can reset logins by deleting those files
- Key exchange is not secure, everything after is
- Each client has a unique key
- See requirements.txt for dependencies
- First download PyInstaller
pip install PyInstaller
- Navigate to the directory where the files are saved
- Run
python -m eel Client.py web
- Once you are happy with the output you may run again but with the arguements,
python -m eel Client.py web --onefile --noconsole
Login page (most design):
Copyright (c) 2021 by Mehdi Aroui (https://codepen.io/mehdiaroui/pen/jJgPvj)
Chat windows (only some GUI features):
Copyright (c) 2021 by Fabio Ottaviani (https://codepen.io/supah/pen/jqOBqp)
If this repository has helped you, consider starring