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: 4 months 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 (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-27T07:31:14.000Z (over 2 years ago)
- Last Synced: 2025-03-22T20:46:00.568Z (over 1 year 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.

## 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)