Releases: GiZano/multithreaded-python-chat
Private On-Premise TCP Chat - Official Release v1.0
"""
🚀 Private On-Premise TCP Chat - Official Release v1.0
This is the Official Release of the Private On-Premise TCP Chat, a robust messaging solution developed by Group 3 at "Archimede" High School. Designed for high-performance internal communication, this system allows users on the same network to chat securely without ever touching the public Internet.
🌟 Project Objective
The main goal was to escape the risks of data interception by creating a system that operates entirely on a local network. By bypassing the router's path to the Internet, internal communications become significantly more secure and difficult to intercept.
🏗️ Architecture & Core Technologies
The system utilizes a Client-Server architecture (Star Topology) built on the TCP/IP stack for reliable data transfer.
Key Components:
- Python Engine: Chosen for its library variety and ease of fast deployment.
- Multithreading: The server creates an independent thread for every client, allowing it to handle thousands of requests simultaneously rather than processing them sequentially.
- JSON Protocol: Used as the "de facto" standard for communication between all components, making it easy for developers to handle data as Python dictionaries.
- Dockerized Environment: The server is encapsulated in a Docker container, making it easily runnable on any machine without dependency headaches.
🚀 Deployment Guide
Using Docker (Recommended)
The server is published on the GitHub Container Registry (GHCR) and is ready for enterprise-level execution.
# Start the server using Docker Compose
docker-compose up -dManual Setup
- Start the Server:
python server/server_main.py
- Launch the Client:
python client/client_main.py
📡 Interactive Endpoints
The server features "hand-crafted" endpoints that act like virtual users. Address your message to these keywords to receive a response:
- /help: Shows all available commands.
- /time: Returns the current server time to check for machine synchronization.
- /list: Displays a formatted list of all currently active users.
- /shout: Broadcasts your message to every single user connected to the platform.
📊 Performance & Stress Testing
We pushed the system to its breaking point using AI-generated testing scripts:
- Scalability: The server successfully managed over 6,000 active users simultaneously.
- Stability: No performance loss was detected at peak capacity.
- Constraints: Testing was only capped at 6,000 due to the physical hardware limits (CPU/RAM) of the host machine, not the software itself.
👨💻 Group 3 Contributors
- Author: Giovanni Zanotti
- Documentation & Registry: Group 3 Lead Team
- Repository: GitHub - ChatBot
Distributed Systems Course - Final Official Release
"""