- C++ 78.6%
- C 21.2%
Crisps Chat 🍟
The image for the representation of the contacts' list was taked from here 👉 https://www.flickr.com/photos/36943025@N07/10892698983
Attributions 📔
Thanks for the cool font to tyPoland Lukasz Dziedzic !
Thanks for the sounds to Kronbits!
Description ✒️
This is a simplest chat 💬 that you can imagine! Developed in C++ with using SDL2 + ImGui + SQLite + json-c + CryptoPP !
Changelog 📅
If you want to view the changes of this app, you can see the app's changelog .
Building 🔨
For running this project you will need to build this. First step - you will need to install the necessary dependencies.
Dependencies 📦
To install necessary dependencies, open a terminal window, then type there:
For Debian and Ubuntu based Linux distributions 🐧:
sudo apt install libsdl2-dev libsdl2-net-dev libsdl2-mixer-dev libsqlite3-dev libcrypto++-dev libjson-c-dev libstb-dev -y
For Arch based Linux distributions 🐧:
sudo pacman -Syy sdl2-compat sdl2_net sdl2_mixer sqlite crypto++ json-c stb
If you're using Windows 🪟: You can find some guides in the Internet about how to set up C++ IDE's for working with SDL2 and SDL2 Net , and also about setting up of others necessary libraries there.
Setting up the IDE 👨💻👩💻
I used CodeLite IDE in this case for working in C++. After you have installation all necessary dependencies, you will need to download CodeLite IDE (Don't worry! This is a free and open-source software. You will need just to press Not now, continue to the download page >> button. But if you want - you can support this software! 🙂
Then you will need to "clone" this repository.
The easiest way:
git clone https://codeberg.org/xolatgames/crisps-chat.git
And for advanced users (through SSH):
git clone git@codeberg.org:xolatgames/crisps-chat.git
But if you will want to correct some code in the future - you will need to "clone" this repository through SSH
Then, after you have clone this repository, you will need to open CodeLite IDE, then open Crisps Chat.workspace that located in the cloned folder.
Compilation ⚙️
For compilation this project you will need to press "F7" button on a keyboard after you have open Crisps Chat.workspace in CodeLite IDE.
Then you can find the "compilation outputs" in Debug or Release folders in Crisps-Chat directory.
But also, if you want, you can don't install CodeLite IDE, but use CMake instead of this. If you want to compile the app through CMake you will need to install this...
For Debian and Ubuntu based Linux distros 🐧:
sudo apt install cmake -y
For Arch based Linux distros 🐧:
sudo pacman -Syy cmake
Then you will need to open a terminal window from the app's folder (For example if you're using KDE , you can just press "F4" when you opened the app's folder), and type there:
chmod +x build.sh
./build.sh
Then you can go to the build directory, and run the app:
cd build/
./Crisps-Chat
Also, here's exists another one option for building: Building the app through Meson .
For using this option you will need to install Meson , Ninja , and Perl ...
For Debian and Ubuntu based Linux distros 🐧:
sudo apt install meson ninja-build perl -y
For Arch based Linux distros 🐧:
sudo pacman -Syy meson ninja perl
Then run the following commands from the app's source directory 📂, where meson.build file is located:
rm -rf builddir/
meson setup builddir --buildtype release
meson compile -C builddir/
Then you can try to run the build app by going to builddir, and run it from there:
cd builddir/
./Crisps-Chat
How to build an AppImage ⚙️
Firstly you will need to install CMake and GNU Make .
For Debian and Ubuntu based Linux distros:
sudo apt install cmake make -y
For Arch based Linux distros:
sudo pacman -Syy cmake make
Then run the follow command from the app's root directory:
make -f CreateAppImage.mk
Then you can find the app in that app's root directory. It will has Crisps-Chat.AppImage name.
Roadmap 📋
-
Openning a server and connection to a server 🔌
-
Open a server through a command line ⌨️
-
Sendings and receivings messages ✉️
-
Change your nickname ✏️
-
Contacts list 👥
-
Uploading your avatar 👨👩
-
Using a SQL database for saving your data 🗃️
-
Offline/Online status icons for your contacts' list 🟢
-
Asymmetric E2E Encryption 🔐
-
Add the dark theme 🌙
-
Highlighting websites links and click on them for open them 🌐
-
Uploading images 🖼️
-
Uploading files 📄
-
Add secure feature for someone can't compromise your profile 🔒 (moderate)
Contribution 🤝
If you want to contribute this project - you can help me to improve the codebase of this project. I'll be very grateful.
But also I'll be very grateful if you help me to find some bugs and issues and put them here 👉 https://codeberg.org/xolatgames/crisps-chat/issues 😊
Authors and acknowledgment 🎓
Thanks to:
-
xolatgames (me) (hello@xolat.games)
-
Vilerio for the nice tutorial about using of CryptoPP!
-
Alan Mushi for the nice tutorial about how to use json-c !
-
tyPoland Lukasz Dziedzic for the cool font!
-
Kronbits for the sounds! 🎶
License ⚖️
More details about the license of the source code in the LICENSE file, or also here: https://mit-license.org/ .
The License of the font: https://www.fontsquirrel.com/license/lato .
The License of the app's icon: CC BY-SA 👈 and the same for the assets in the "images" folder.
Project status ❓
Alpha... 😟