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.
Metadata
Release files for chatterflow 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| chatterflow-0.0.7.tar.gz | 14.4 kB | Without provenance | Details for chatterflow-0.0.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| chatterflow-0.0.7-py3-none-any.whl | Python 3 | none | any | Details for chatterflow-0.0.7-py3-none-any.whl |
Total release size: 29.0 kB
Release files / chatterflow-0.0.7.tar.gz
| Download URL | chatterflow-0.0.7.tar.gz |
|---|---|
| Size | 14.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f68fe740d3385af7dab8998979fb0aa0a59c75fe76b1dda3bd4fa882a740885f
|
|
BLAKE2b-256 checksum How to use checksums |
e37a4684e60b7029a829214b286a534a3dff115f300a896740bca51640f410e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / chatterflow-0.0.7-py3-none-any.whl
| Download URL | chatterflow-0.0.7-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a11fcad8efe5d02c79e0899bf76e0dd335069a5d535c6f47619e66827dd8230e
|
|
BLAKE2b-256 checksum How to use checksums |
bc0efdbe73cd2072a317d9fc2e065d0393b505bc174cbe58a62f28645eb05971
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for chatterflow 0.0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.