Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/razcrimson/chatto
A simple chat application that allow one to one messaging with end-to-end encryption.
https://github.com/razcrimson/chatto
Last synced: about 2 months ago
JSON representation
A simple chat application that allow one to one messaging with end-to-end encryption.
- Host: GitHub
- URL: https://github.com/razcrimson/chatto
- Owner: RazCrimson
- License: mit
- Created: 2021-05-10T09:29:11.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-05-22T09:11:24.000Z (over 2 years ago)
- Last Synced: 2024-10-13T21:12:00.502Z (3 months ago)
- Language: Python
- Size: 54.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Chatto
Chatto is a simple chat application that allows one to one messaging with end-to-end encryption using [Elliptic-curve Diffie–Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman).
* Server - a Flask based web application that uses [SocketIO](https://socket.io/) to send and receive message from the client.
* Client - a simple CLI based interface to send, receive and view the messages from the server.## Tools and technology used
* Database - MongoDB
* Cryptoraphic Algorithms - SHA256, AES 256-bit(CBC), bcrypt and ECDH with NIST521p curve.## Setting up the Environment
### Cloning the Respository
1. SSH-styled :
```
git clone [email protected]:RazCrimson/Chatto.git
```2. HTTPS-styled :
```
git clone https://github.com/RazCrimson/Chatto.git
```### Installing Dependencies
Using [pip](https://pip.pypa.io/en/stable/). Creating a dedicated [virtual environment](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/) for the project is advised. Recommended Python version `>=3.7````bash
# For server
cd Chatto/server
pip install -r requirements.txt# For client
cd ../client
pip install -r requirements.txt
```### Make `.env` configuration (only for server)
Create a copy of `server/.env.example` in the same directory and name it `.env`. Fill in the required environment variables. You can also have those environment variables set up in your shell.## Execution
* **Server** : Inside the server directory.```bash
# Script style
python run.py
``````
# Flask App style
FLASK_APP=run:flask_app flask run
```* **Client**
```
python run.py [--localhost] [--register]
```
`-l, --localhost` - flag for using the local server or the deployed server.`-r, --register` - flag for performing user registration
`username` - the name that you want to login or register as.
## Contributing
All contributions and pull requests are welcome. Open an issue if you find any bugs/faults or if you want to implement a change and would like to discuss the implementation.## License
[MIT](https://choosealicense.com/licenses/mit/)## Author
* Bharath Vignesh J K - [@RazCrimson](https://github.com/RazCrimson)