Problem Statement: Create a simple real-time chat application where users can join different chat rooms or create their own chat rooms. Users should be able to send and receive messages in real-time.
Functional Requirements: 1. Allow users to create/join chat rooms by entering a unique room ID. 2. Enable users to send and receive messages in real-time within a chat room. 3. Display a list of active users in the chat room. 4. Implement a private messaging feature between users. 5. Implement message history, so the chat persists even if the user leaves and rejoins.
Key Focus: 1. Behavioral Pattern: Use the Observer Pattern to notify clients of new messages or user activities. 2. Creational Pattern: Use Singleton to manage the state of the chat rooms. 3. Structural Pattern: Use the Adapter Pattern to allow the system to work with different types of client communication protocols (WebSocket, HTTP, etc.). 4. OOP: Apply encapsulation, polymorphism, and inheritance effectively.
Clone the project
git clone https://github.com/Jugal1011/ConsoleConnect-App.git
Pull docker image from dockerhub
docker pull jugal1011/console_connect_app:v3.0
Running the docker image
docker run -it jugal1011/console_connect_app:v3.0