https://github.com/voidkeishi/socketchatter
Socket LAN chatting app in C++ with QT Framework
https://github.com/voidkeishi/socketchatter
cpp qt6 socket-programming
Last synced: about 2 months ago
JSON representation
Socket LAN chatting app in C++ with QT Framework
- Host: GitHub
- URL: https://github.com/voidkeishi/socketchatter
- Owner: VoidKeishi
- Created: 2024-10-21T13:22:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-02T13:25:15.000Z (over 1 year ago)
- Last Synced: 2025-03-02T14:27:50.720Z (over 1 year ago)
- Topics: cpp, qt6, socket-programming
- Language: C++
- Homepage:
- Size: 768 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LAN-Based Real-Time Messaging Application
## Description
This application is a LAN-based real-time messaging platform that allows users to send and receive text messages, images, audio, and video within a local network environment. Users can create private and group chats, manage friend lists, and view chat histories. The application is designed for speed and reliability, utilizing TCP/IP socket connections over LAN or WLAN.
## Features
- **User Registration & Login**
- Users can create an account and securely log in to the application.
- **Friends List Management**
- View friends' online or offline status in real-time.
- Send and accept friend requests.
- **Group Chats**
- Create group chats and invite friends to join.
- Accept group chat invitations.
- Leave group chats at any time.
- **Real-time Messaging**
- Send and receive text messages.
- Share images, audio files, and video files.
- Support for both private and group conversations.
- **Message History**
- View chat history for individual and group conversations.
- **Logging**
- Server logs all incoming and outgoing messages for monitoring and debugging.
## Requirements
- **Client-Server Connection via Socket**
- Establish a reliable connection between clients and the server using TCP sockets.
- **LAN/WLAN Communication**
- Clients and server communicate over known private IP addresses within the same local network.
- **Server-Client Model**
- Centralized server manages communication between clients.
- **Message Logging on the Server**
- All messages are logged on the server for record-keeping.
## Technologies
- **Frontend**: Qt QML for a cross-platform graphical user interface.
- **Backend**: C++ with the Qt framework for robust application logic.
- **Database**: SQLite for local data storage.
- **Networking**: TCP/IP sockets for efficient network communication.
## Architecture
The application follows a client-server model, where multiple clients connect to a central server over LAN or WLAN. The server handles user authentication, message routing, and logging, ensuring secure and efficient communication.
## Scoring Breakdown
1. **Client-Server Connection via Socket** (2 points)
- Implement reliable socket connections between clients and the server.
2. **Message Logging on the Server** (1 point)
- Log all incoming and outgoing messages for auditing purposes.
3. **User Registration and Login** (2 points)
- Enable account creation and secure user authentication.
4. **View Friends List (Online/Offline Status)** (2 points)
- Display real-time online/offline status of friends.
5. **Friend Requests and Acceptance** (2 points)
- Allow users to send and accept friend requests.
6. **Group Chat Management** (3 points)
- Support creating groups, inviting friends, and managing group membership.
7. **Messaging (Text, Image, Audio, Video)** (4 points)
- Facilitate sending and receiving various types of messages in chats.
8. **Message History Viewing** (2 points)
- Provide access to view past conversations in chat history.
## Usage
1. **Account Registration**
- Open the client application.
- Register a new account with a unique username and password.
2. **Login**
- Log in using your credentials to access the main interface.
3. **Managing Friends**
- Search for other users and send friend requests.
- Accept incoming friend requests from others.
- View your friends list with their online/offline status.
4. **Creating and Joining Group Chats**
- Create a new group chat and invite friends.
- Accept invitations to join existing group chats.
5. **Messaging**
- Start private or group conversations.
- Send text messages, images, audio clips, and videos.
6. **Viewing Message History**
- Access the history of your conversations from the chat interface.
## Contributors
- **Pham Phan Anh** - 20210039
- **Dao Sy Phuc** - 20215117