Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-threaded Chat Server

A Python-based chat server implementing authentication, chat rooms, and pub-sub messaging.

Features Implemented

  • ✅ Problem 1: Thread-based server with blocking I/O
  • ✅ Problem 2: Authentication with bcrypt password hashing
  • ✅ Problem 3: Force logout on duplicate login attempts
  • ✅ Problem 4: Chat rooms with /join, /leave, /rooms commands
  • 🚧 Problem 5: Publish-Subscribe (In Progress)
  • ⏳ Problem 6: Redis Integration
  • ⏳ Problem 7: TLS/SSL Encryption
  • ⏳ Problem 8: Docker Deployment

Setup

1. Create Virtual Environment

python -m venv .venv
source .venv/bin/activate  # On Linux/Mac

2. Install Dependencies

pip install -r requirements.txt

3. Run Server

python -m server.server

4. Run Client

python -m client.client

Usage

Register a User

REGISTER alice password123

Login

LOGIN alice password123

Chat Commands

  • /join <room> - Join a chat room
  • /leave - Return to lobby
  • /rooms - List all rooms
  • /quit - Disconnect

Project Structure

chat-app/
├── server/
│   ├── server.py
│   ├── client_handler.py
│   ├── auth.py
│   ├── room_manager.py
│   └── config.py
├── client/
│   └── client.py
├── requirements.txt
└── README.md

Course Information

  • Course: Internet Architecture and Protocols [CS60008]
  • Assignment: Assignment 1
  • Language: Python 3.9+

About

Multi-threaded chat server with authentication and room support

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages