This is an implementation of a chat server, utilizing a microservices-based architecture for handling message exchanges between users.
The project consists of three main parts:
- Main server. Written in C++ using the Poco library, it is responsible for for handling messages, managing users, and maintaining network connections.
- Proxy server. Implemented in Node.js, Express, and WebSocket, it acts as a bridge between the client and the main server, allowing the use of WebSockets on the client side.
- Client. Created using the Quasar framework, enabling a user interface that allows interaction with the servers, sending messages, joining, and leaving the chat.
- ๐ฅ Joining the chat. Users can enter their nickname and join the chat.
- ๐ฌ Public messages. Allows sending messages that are visible to everyone in the chat.
- ๐ต๏ธโโ๏ธ Private messages. Users can send private messages that are only visible to the sender and the recipient.
- ๐ค Exiting the chat. Option to leave the chat.
- CMake version 3.26 or higher.
- C++ compiler supporting C++23 standard.
- Clone the repository to your local machine:
git clone https://github.com/Braun-Alex/chat.git cd chat/server
- Create a build directory and navigate into it:
mkdir build cd build
- Run CMake to generate the build files:
cmake ..
- Build the project:
cmake --build .
- After a successful build, run the server:
./server
Ensure you have Node.js and npm installed. Run the following commands:
cd chat/middleware
npm install
npm start
Ensure you have Quasar CLI installed. Run the following commands:
cd chat/client
npm install
quasar dev
This project is licensed under the MIT license - see the LICENSE.md file for details.