A cli based chat application in python
Project description
chatterflow
A simple, terminal-based chat application with user authentication and private messaging, built with Python sockets.
Features
- User Authentication: Secure registration and login system.
- Password Hashing: Passwords are securely hashed using PBKDF2.
- Public Chat: Broadcast messages to all connected users.
- Private Messaging: Send private messages to specific users.
- User List: View a list of all online users.
- Multi-client Support: The server uses threading to handle multiple clients concurrently.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
- Python 3.11 or higher
Installation
-
Clone the repository:
git clone https://github.com/bhatishan2003/chatterflow.git cd chatterflow
-
Create and activate a virtual environment (recommended):
-
Windows:
python -m venv .venv .venv\Scripts\activate
-
macOS & Linux:
python -m venv .venv source .venv/bin/activate
-
-
Install the package:
-
For regular use:
pip install .
-
For development (editable mode):
pip install -e .
-
Usage
1. Start the Server
Open a terminal and run the following command to start the chat server on the default host (127.0.0.1) and port (9009):
chatterflow --server
2. Start the Client
Open one or more new terminals and run the following command to connect a client to the server:
chatterflow --client
Commands
The client supports the following commands:
| Command | Description |
|---|---|
/msg <user> <message> |
Send a private message. |
/list |
List all online users. |
/help |
Show this help message. |
/quit |
Disconnect from the server. |
Testing
To run the test suite, execute the following command:
pytest -v
Contributing
Contributions are welcome! Please feel free to open an issue or submit a pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatterflow-0.0.1.tar.gz.
File metadata
- Download URL: chatterflow-0.0.1.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f586443d9efe05ec4df082ee0837b0f9c31bf060c0ba2fcaa3b965db396a3bd4
|
|
| MD5 |
ea0cfc3c792366211b1fe2c29293bdab
|
|
| BLAKE2b-256 |
324ee79ed2027e98e8b207149bf3f3285033649b6d8635940e0752930f170399
|
File details
Details for the file chatterflow-0.0.1-py3-none-any.whl.
File metadata
- Download URL: chatterflow-0.0.1-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
999b89345d8f536b1e99f6439196d1bd67178989d74bfe6a1023ffc7024d7251
|
|
| MD5 |
92dfa4be33ffd874a5245b25f338d0a4
|
|
| BLAKE2b-256 |
b87950e6f1c002224ad939712aceea1b2523a1201a8066a963d8486f51006b2d
|