Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smirnovlad/messenger
Desktop client-server messenger written in C++, Qt
https://github.com/smirnovlad/messenger
authorization chat client-server cmake conan cpp messenger qt5 sockets sqlite tcp-client tcp-server
Last synced: about 1 month ago
JSON representation
Desktop client-server messenger written in C++, Qt
- Host: GitHub
- URL: https://github.com/smirnovlad/messenger
- Owner: smirnovlad
- Created: 2023-05-08T21:25:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-27T07:31:14.000Z (about 1 year ago)
- Last Synced: 2024-10-15T08:21:36.081Z (3 months ago)
- Topics: authorization, chat, client-server, cmake, conan, cpp, messenger, qt5, sockets, sqlite, tcp-client, tcp-server
- Language: C++
- Homepage:
- Size: 2.27 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Messenger
A cross-platform desktop client-server messenger has been implemented.![example_4](https://github.com/smirnovlad/Messenger/assets/86618271/13ce5b3c-4cb6-4587-bdea-9c0c3bc50343)
## Current developments
- User authorization and registration
- Message history storage
- Multi-device login with message synchronization
- Token-based user authentication
- Handling server crashes
- Synchronous message editing## How to build
The Conan package manager and CMake are used for building the application.To build the project, it is recommended to install Conan version 1.59.0:
```
pip3 install conan==1.59.0
```Next, you need to execute the following commands from the project directory:
### Server
```
cd Server/
rm -rf build
mkdir build && cd build/
conan install .. --build=missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=True
cmake ..
make
```### Client
```
cd Client/
rm -rf build
mkdir build && cd build/
conan install .. --build=missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=True
cmake ..
make
```## How to run
To launch the application, you need to execute the following commands from the project directory:
### Server
```
cd Server/build/bin/
./Server
```### Client
```
cd Client/build/bin/
./Client
```## Implementation details
- [Documentation](documentation.docx)
- [Behavioral diagram of the application](UML/model.png)
- [Class diagram of the client-side of the application](UML/uml-Client.png)
- [Class diagram of the server-side of the application](UML/uml-Server.png)