An open API service indexing awesome lists of open source software.

https://github.com/anganda/projectmoderncpp

A Client-Server Application for the Modern C++ Course
https://github.com/anganda/projectmoderncpp

client-server cpp cpr crow moderncpp qtframework sqlite

Last synced: 10 months ago
JSON representation

A Client-Server Application for the Modern C++ Course

Awesome Lists containing this project

README

          

# Skribbl Clone in C++

## Overview
This project is a clone of Skrinbl, implemented in C++. It is a client-server application that utilizes Qt for the user interface, Cpr and Crow for networking, and modern C++ elements. Additionally, it includes a DLL that generates a unique random number.

## Features
- **Multi-Game Support:** This application supports multiple games simultaneously, allowing users to play different games at the same time.
- **Real-Time Collaboration:** Utilizes a client-server model for real-time collaboration, enabling players to connect and interact in the same game session.
- **Qt Interface:** Employs Qt framework for creating a user-friendly interface.
- **Networking:** Uses Cpr and Crow libraries for efficient networking capabilities.
- **Modern C++ Practices:** Implements modern C++ features and practices for robust and maintainable codebase.
- **Unique Random Number Generation:** Includes a DLL that generates unique random numbers.
- **Cross-Network Play:** Players can join the same game using the same Wi-Fi network or services like Hamachi, enabling seamless cross-network play experiences.

## Installation
1. Clone the repository: `git clone https://github.com/yourusername/yourproject.git`
2. Install dependencies:
- Qt: Follow the installation instructions from the Qt website.
- Cpr: Install Cpr library according to its documentation.
- Crow: Install Crow library according to its documentation.
3. Build the project using CMake or your preferred build system.

## Usage
1. Run the server application.
2. Run the client application and connect to the server.
3. Start collaborating and utilizing the features of the application.