QT Project | Audio Video Chatting
QT Audio Video Chat application
Project Brief
Implementing a local/internet based video chatting tool that enables real-time video streaming.
About this project
TYPE | Individual |
DIFFICULTY | Intermediate |
TIME | 40 hours |
CONTACT | training@emertxe.com |
Introduction
The chat applications is one of the more commonly used tool for effective two-way communication, starting with IRC chat-rooms. Each user need to authenticate himself and join a chat-room after which he should be able to communicate with all in the group. The aim of this project is to build a local/internet based QT video chat application that enables users to join real-time streaming video chat rooms, where users can share their video with multiple users. It’s a server/client based application, client request for a connection and server accept the connections and keeps all client database. Users can send instant messages and share their live webcam data to other users in the chat room. This video chat application will also have methods to add and delete new members into the access list. It will also support multi-user video conferencing.
Requirement Details
Here are the requirements for the projectv(QT chat application) broken into multiple components.
Server Requirements:
- It should be a concurrent server allowing individual clients to establish new connections
- Server should provide client with a username & password upon successful connection
- Registered users are encrypted and stored in a file by the server as a database
- Server should allow a registered user to login to the service
- When incorrect user credentials are sent, the server should deny the service
- When an authorized user is connected, server should send back a list of on-line users
- When a user joins or leaves, the server should notify this event to other online users
- Client should send a logout, upon which their entry will get deleted from online user database
- Based on client request personal/Group messages will be passed to individual or all
Client Requirements:
- Allow the user to register on the server
- Allow the user to login to the server
- Display current on-line users after logged in
- Allow the user to logout from the service
- Make default call without video
- Allow user to turn off video at any time
- Allow three type of chat anytime, text/audio/video
- Allow user to reject an audio/video call
GUI Requirements:
- Create multiple tabs for multiple chats
- Button to enable/disable audio/video from chat
- Volume control
- Option to show all users present in database and only online users
- User should able to create a favorite list
- In chat show sender name and time along with every chat
Skeleton Code
The skeleton code in a very interesting concept used in Emertxe. By looking into the skeleton code, you will get a clear picture into converting the given requirement into a working QT chat application. This will also take care of important aspects like modularity, clean coding practices, re-usability etc.
- Server Requirements:
- Client Requirements:
- GUI Requirements:
- Server Requirements:
- Client Requirements:
- GUI Requirements: