Skip to content

A-Crow-Pixel/IK_SS25_G4

Repository files navigation

Internetkommunikation_Project_Gruppe4

πŸ“– Project Overview

Internetkommunikation_Project_Gruppe4 is a modern chat application developed with Python and PySide6, supporting multi-user real-time communication, group management, message translation, reminder functionality, and other features.

πŸš€ Quick Start

Start Server

python run_server.py

Optional parameters:

python run_server.py --serverid Server_4 --udpport 9999 --tcpport 65433

Note: You can also use server.py directly for more detailed configuration:

python server/server.py --serverid Server_5 --udpport 65432 --tcpport 65433

Start Client

python run_client.py

Direct Launch (Advanced Users)

# Server
cd server
python server.py --serverid Server_4 --udpport 9999 --tcpport 65433

# Client
cd client
python client.py

Custom Configuration Example:

# Use different server ID and ports
python server/server.py --serverid Server_5 --udpport 65432 --tcpport 65433

πŸ“ Project Structure

internetkommunikation_project_gruppe4/
β”œβ”€β”€ run_client.py          # Client startup script
β”œβ”€β”€ run_server.py          # Server startup script
β”œβ”€β”€ client/                # Client code
β”‚   β”œβ”€β”€ client.py          # Main client (recommended)
β”‚   β”œβ”€β”€ client_1.py        # Basic client
β”‚   β”œβ”€β”€ client_2.py        # Client version 2
β”‚   β”œβ”€β”€ client_3.py        # Client version 3
β”‚   β”œβ”€β”€ client_1_modern.py # Modern client
β”‚   β”œβ”€β”€ gui/               # GUI components
β”‚   └── ui/                # UI files
β”œβ”€β”€ server/                # Server code
β”‚   β”œβ”€β”€ server.py          # Server startup
β”‚   β”œβ”€β”€ server_network.py  # Network communication
β”‚   β”œβ”€β”€ server_ui.py       # Server UI
β”‚   └── modern_server_ui.py # Modern server UI
β”œβ”€β”€ modules/               # Feature modules
β”‚   β”œβ”€β”€ PackingandUnpacking.py # Message packing/unpacking
β”‚   β”œβ”€β”€ Translator.py      # Translation functionality
β”‚   β”œβ”€β”€ reminder.py        # Reminder system
β”‚   └── tips_widget.py     # Tips component
β”œβ”€β”€ proto/                 # Protocol definitions
β”œβ”€β”€ docs/                  # Documentation
└── requirements.txt       # Dependency configuration

πŸ”§ Dependency Installation

pip install -r requirements.txt

✨ Main Features

πŸ’¬ Real-time Chat

  • Multi-user real-time message communication
  • Group chat functionality
  • Message history records
  • Online status display

🌐 Network Communication

  • TCP/UDP hybrid communication
  • Server auto-discovery
  • Cross-server message forwarding
  • Heartbeat detection mechanism

πŸ”„ Translation Functionality

  • Multi-language translation support (Chinese, English, German, Turkish)
  • Real-time message translation
  • Automatic language detection
  • Translation switch control

⏰ Reminder System

  • Scheduled reminder functionality
  • Event reminder management
  • Reminder notification display
  • Priority queue management

🎨 Modern Interface

  • Responsive layout design
  • Multi-tab chat system
  • Beautiful message bubbles
  • Modern UI components

πŸ“š Detailed Documentation

πŸ”„ Translation Flow

Translation Functionality Workflow

User selects language
    ↓
Language selection decision
    β”œβ”€ Original β†’ Send normal message β†’ Server forwards β†’ Target user receives β†’ Display message
    └─ Other languages β†’ Send translation request β†’ Translation processing β†’ Google Translate API β†’ Return translation result β†’ Target user receives β†’ Display translated message

Detailed Step Description

  1. User selects language

    • Select target language in client interface (Original/Deutsch/English/Chinese/TΓΌrkΓ§e)
  2. Message processing branch

    • Original: Send normal message directly, no translation
    • Other languages: Send translation request, including original text and target language
  3. Server processing

    • Receive translation request
    • Call Google Translate API
    • Generate translation result
  4. Message forwarding

    • Forward translated message to target user
    • Maintain association between original and translated messages
  5. Client display

    • Target user receives message
    • Display corresponding content based on language settings

Supported Languages

Language Option Target Language Language Code
Original No translation -
Deutsch German de
English English en
Chinese Chinese zh-CN
TΓΌrkΓ§e Turkish tr

πŸ“„ License

This project uses the MIT License.

πŸ“š Project Repository

Project hosted on LRZ GitLab

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages