Commands with a contract.
Clients serialize requests as JSON and the server routes commands for joining, posting, listing users, leaving, and retrieving messages.
A command-driven bulletin board built in Python: multiple clients, threaded TCP connections, JSON messages, shared groups, and durable posts moving through one central server.
$ python client/Client.py› %connect 127.0.0.1 65432 kazoo.gg● connected to bulletin board server› %groupsdefault engineering milestones› %groupjoin engineering● joined engineering› %grouppost ; engineering ; socket layer ; threaded server online● message broadcast to group members› %groupmessage engineering 1[1] socket layer — threaded server onlineThe challenge was not drawing a chat box. It was coordinating clients, commands, groups, and stored messages while connections arrived and disappeared independently.
Clients serialize requests as JSON and the server routes commands for joining, posting, listing users, leaving, and retrieving messages.
The TCP server accepts concurrent connections and assigns each client its own request-handling thread.
In a three-person team, I contributed to socket setup, message-handling logic, and integration across the client and server.
Human-readable commands become structured requests.
Serialized messages travel through a persistent socket connection.
Each client thread parses the command and invokes board operations.
Groups, memberships, and messages produce a response for the client.
ACTUAL IMPLEMENTED COMMANDS
%groups — list available groups%groupjoin <name> — join a board%groupusers <name> — list members%groupleave <name> — leave a board%grouppost ; group ; subject ; message%groupmessage group message_id%exit — close the client session● JSON request / response flowThe repository includes the Python client, threaded server, bulletin-board state model, and the real command implementation represented above.
VIEW TEAM REPOSITORY ↗