A modular, console-based TCP messenger built entirely in Python using standard sockets.
Allows real-time messaging and seamless file transfers between a server and multiple clients.
- Multi-Client Architecture — Server supports multiple simultaneous client connections.
- Global Chat Room — Messages are instantly broadcasted to all connected users.
- File Transfer Protocol — Send files bi-directionally (Client to Server / Server to Client).
- Command-Driven Control — System commands parsed via the
$prefix. - Dynamic Identity — Change your nickname on the fly during the session.
- Modular Codebase — Clean, decoupled architecture with 10+ specific modules.
Messages starting with $ are reserved for system operations and are not broadcast to the chat.
$sendfile— Initiates a file transfer request.- (More commands can be implemented inside the modular handler).
.
├── main.py # Application entry point (launches the main menu)
├── requirements.txt # Project dependencies
├── icon.png # Application logo
├── screen.png # Interface screenshot
└── src/
├── console.py # Console utility wrappers (e.g., screen clearing)
├── header.py # Global imports aggregator
├── menu.py # Main menu interface and navigation
├── packet.py # Packet size configurations and headers
├── port.py # Port scanner and manager (defaults to 5005)
├── user.py # Nickname manager and connection state definitions
├── tag.py # Tag templates
├── settings.py # Settings
├── serializer.py # JSON Reader and Initializer
├── crypto/
│ ├── crypto_main.py # Core cryptographic functions
│ └── key_generation.py # Key generation and management data
├── file/
│ └── sendFile.py # Binary file encoding and transmission logic
├── host/
│ ├── client.py # Core client engine (manages current session)
│ ├── message.py # Message processing and broadcasting handler
│ ├── server.py # Core server engine (tracks clients, IPs, and names)
│ └── var.py # System flags and request markers (e.g., \$filerequest)
└── ui/
└── interface.py # UI core engine- Python 3.14+ installed
-
Clone the repository:
git clone https://github.com/qualzed/qChat cd qChat -
Run the application:
python main.py
Follow the instructions below to compile the project for your operating system.
-
Install the required compiler:
pip install nuitka==4.1.2
-
Run the build script for your OS:
- Windows: Run
build.bat - Linux / macOS: Run
build.sh
- Windows: Run
- Supported Tools: This project has been tested only with Nuitka and PyInstaller.
- Using other freezing tools or different library versions may cause unexpected errors.
