https://github.com/minhhieu3012/online-meeting-room-app
Ứng dụng phòng họp trực tuyến
https://github.com/minhhieu3012/online-meeting-room-app
chat-application file-transfer multiclient-server opencv pyaudio python socket-programming tcp-udp voice-chat
Last synced: 30 days ago
JSON representation
Ứng dụng phòng họp trực tuyến
- Host: GitHub
- URL: https://github.com/minhhieu3012/online-meeting-room-app
- Owner: Minhhieu3012
- Created: 2025-08-21T16:12:41.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-09-05T16:58:09.000Z (about 2 months ago)
- Last Synced: 2025-09-27T08:53:34.312Z (about 1 month ago)
- Topics: chat-application, file-transfer, multiclient-server, opencv, pyaudio, python, socket-programming, tcp-udp, voice-chat
- Language: Python
- Homepage:
- Size: 1.5 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🧑🏻💻 HPH Meeting - Ứng dụng Phòng Họp Trực Tuyến
## 📌 Giới thiệu
HPH Meeting là ứng dụng họp trực tuyến mô phỏng, hỗ trợ **real-time chat, voice chat, video call và multi-room**.
Được xây dựng theo mô hình **Client–Server với TCP & UDP**, sản phẩm hướng đến sự **trực quan, dễ hiểu và có thể mở rộng**.
---
## 👀 Mục tiêu
- Tạo nền tảng giao tiếp thời gian thực với hiệu suất cao.
- Đảm bảo an toàn cơ bản khi đăng nhập và truyền dữ liệu.
- Giao diện trực quan, dễ dùng bằng Tkinter.
---
## 🔎 Tính năng
### 💬 Chat văn bản (TCP)
- Truyền tin cậy với TCP (length-prefixed JSON).
- Hỗ trợ **chat nhóm trong phòng**.
- Server định tuyến tin nhắn đến đúng người.
### 🎙️ Voice chat (UDP)
- Truyền âm thanh **UDP** để giảm độ trễ.
- Dùng **PyAudio** (16kHz, mono, PCM).
- Hỗ trợ bật/tắt micro.
### 📹 Video call (UDP)
- Thu webcam → nén JPEG → chia gói (MTU 1200B) → gửi UDP.
- Server relay frame theo phòng.
- Client ghép gói → giải nén → hiển thị video.
- Dùng **sequence number** để bỏ qua frame lỗi.
- Hỗ trợ bật/tắt camera.
### 🏠 Multi-room
- Tạo/join/thoát phòng.
- Server duy trì danh sách phòng + thành viên.
- Giao diện Lobby hiển thị real-time số người.
### 🔐 Bảo mật
- Đăng nhập với **username + email**.
- Session key **AES-256-GCM** cho TCP messages.
- Input validation (regex).
- Rate limiting cho UDP.
### 🖥️ Giao diện
- **Tkinter GUI**: Login, Lobby, Room.
- Điều khiển mic/cam, chat, tham gia phòng.
- Gateway WebSocket ⇄ UDP/TCP (hướng mở rộng).
---
## 🏗️ Kiến trúc
- **Server**: quản lý user, phòng, relay dữ liệu.
- **Client**: gửi/nhận chat, audio, video.
- **Multi-room**: hỗ trợ nhiều phòng song song.
---
## 📋 Yêu cầu
- Python 3.8+
- Thư viện (xem requirements.txt):
- cryptography>=42.0
- numpy>=1.24
- pyaudio>=0.2.13
- opencv-python>=4.9.0
- (Tùy chọn): Pillow để xử lý hình ảnh mượt hơn trong GUI.
---
## Cài đặt (Implement)
### 1. Cài đặt dependencies
```sh
pip install -r requirements.txt
```
### 2. (Tùy chọn) Cài đặt audio/video dependencies
#### Cho video processing:
```sh
pip install opencv-python
```
#### Cho audio processing (cần build tools):
```sh
pip install pyaudio
```
---
## Cách chạy nhanh (Quick start)
### 1. Khởi động server
```sh
python main.py
```
### 2. Khởi động phần giao diện (GUI)
```sh
python -m Client.meeting_gui_client
```