All Projects → PAXANDDOS → PokeChat

PAXANDDOS / PokeChat

Licence: GPL-3.0 License
UNIX compatible, Discord and Telegram inspired, Pokémon-themed instant messaging service.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to PokeChat

gmrun
A run utiliy featuring a slim design and bash style auto-completion.
Stars: ✭ 35 (+218.18%)
Mutual labels:  gtk, gtk3, gtk2
gftp
gFTP is a free multithreaded file transfer client for *NIX based machines. 56 language translations available.
Stars: ✭ 81 (+636.36%)
Mutual labels:  gtk, gtk3, gtk2
palette
Color palette app for elementary OS
Stars: ✭ 32 (+190.91%)
Mutual labels:  gtk, gtk3
vulcan
A minimalistic text editor designed for both ordinary use and software development
Stars: ✭ 46 (+318.18%)
Mutual labels:  gtk, gtk3
Yosemite-gtk-theme
Mac OSX Yosemite like theme for GTK 3, GTK 2 and Gnome-Shell etc.
Stars: ✭ 74 (+572.73%)
Mutual labels:  gtk, gtk2
switchboard-plug-onlineaccounts
Switchboard Online Accounts Plug
Stars: ✭ 25 (+127.27%)
Mutual labels:  gtk, gtk3
nim-gatabase
Connection-Pooling Compile-Time ORM for Nim
Stars: ✭ 103 (+836.36%)
Mutual labels:  sqlite, sqlite3
capnet-assist
Captive Portal Assistant
Stars: ✭ 47 (+327.27%)
Mutual labels:  gtk, gtk3
libappindicator-rs
Rust safe bindings for the libappindicator library
Stars: ✭ 27 (+145.45%)
Mutual labels:  gtk, gtk3
initial-setup
New user setup app designed for elementary OS
Stars: ✭ 34 (+209.09%)
Mutual labels:  gtk, gtk3
payton
Payton! Kickstart any 3D OpenGL + GTK Ideas in a few seconds!
Stars: ✭ 45 (+309.09%)
Mutual labels:  sdl2, gtk3
radiotray-lite
Online radio streaming player with minimum interface that runs on a Linux system tray
Stars: ✭ 49 (+345.45%)
Mutual labels:  gtk, gtk3
selekt
A Kotlin and Android wrapper over SQLCipher, providing 256-bit AES encryption of database files.
Stars: ✭ 26 (+136.36%)
Mutual labels:  sqlite, sqlite3
go-sqlite
Low-level Go interface to SQLite 3
Stars: ✭ 268 (+2336.36%)
Mutual labels:  sqlite, sqlite3
python-sqlite3-backup
Sqlite3 online API CPython implementation module
Stars: ✭ 44 (+300%)
Mutual labels:  sqlite, sqlite3
LoginToASqlite3DatabaseWithoutCredentialsWithAdminer
✔️ An Adminer plugin to use SQLite databases without credentials (no username and no password)
Stars: ✭ 30 (+172.73%)
Mutual labels:  sqlite, sqlite3
MyS3Chat
MyS3Chat – Complete Open Source Real Time Android Chat Application using Firebase
Stars: ✭ 57 (+418.18%)
Mutual labels:  sqlite, chat-application
ChatViewController
💬 ChatViewController, ChatBar, ImagePicker like Slack Application. Message App written in Swift
Stars: ✭ 47 (+327.27%)
Mutual labels:  messaging, chat-application
connectycube-flutter-samples
Code samples for Flutter, based on ConnectyCube platform
Stars: ✭ 64 (+481.82%)
Mutual labels:  messaging, chat-application
switchboard-plug-applications
Switchboard Applications Plug
Stars: ✭ 14 (+27.27%)
Mutual labels:  gtk, gtk3

PokéChat — Pokémon-themed instant messaging service!

pokemon C gtk3 openssl sqlite sdl json css git
commit size issues downloads release
followers1 followers2 watch star

Presentation

Here you can watch our gorgeous promo video made by naztar0!
promo
Also check out the presentation that I've made or watch us perform!

Download

Latest versionDownload
Latest version (portable)Download
All releases

History of creation

PokéChat is a challenge of UCODE IT Academy - uchat. The challenge was to write your own instant messaging application using only C programming language. However, the learning task became a personal goal for me.
The estimated time to create a chatting application was 1 month (04.01-15.02) but I started working on it back in November. I was doing all the work by myself during the first 2 months, learning how to work with GTK + and all of its stuff... It was tough times but I've made it! In the beginning, the application looked and worked awful, but over time I've learned how to deal with GTK and rewrote old code for the program to be more optimized and prettier. Inspired by the still popular anime cartoon I've created something bigger than a common messanger. Why Pokémon? Well, back in November we were playing Pokémon GO and thought that this app needs something to chat with, it was a quick choice.
Then, in mid-December, one person from the team joined the work. naztar0 was doing server-side work using OpenSSL and SQLite.
I can't believe that 2/4 people can make such work using C. Also Overwolf-live helped with different Pokémon data: images, description and sounds.

First concepts


That's how the first concept looked back in November. It had no theme at the beginning and messenger looked simple, common. I don't think it was ugly but I've rejected that idea.


Now it looks more like the final version. First concept of PokéChat! Pretty Discord-like colors and user-friendly interface.


Here's the first and almost the final look of home screen with three big buttons, activity block and Pokémon facts! Messanger screen is the same as the previous, but prettier: message blocks, icons, images.

Logo


I was not planning to make a messenger logo but more I was doing the work more I wanted to make a logo. That was the first one.


The second.


And the final one. I think that's the best one.

Let's guide you through

Compiling the program

  1. Install GTK3 - for the graphical user interface. You can download it here or use Homebrew - brew install gtk+3 and it will be downloaded with all it's dependencies. It's necessary for you to install this framework.
  2. You can use portable version by downloading it below and skip next two steps.
  3. Compile this app: fonts - make font.
  4. Compile this app: PokeChat - make.
  5. Start the server: ./uchat_server [port], port 10000 or higher is recommended.
  6. Launch: ./uchat [ip] [port], use IP 127.0.0.1 or 0.0.0.0 with servers port for local connection or use servers actual IP address to connect through LAN.

Now you can use the PokeChat!

Registration

As soon as you launch the messenger, you will need to register. To register, you need to enter your username in the PokeChat, your name, password (do not worry, all data is securely encrypted), and select your team: Mystic, Instinct, or Valor.

Home screen

After registration, you are greeted with a cozy home screen. On the first block, you can see a list of active users in your friends' list. The second block contains the most interesting thing - Pokémon. The messenger has a fairly large database of Pokémon that you can read about. Also, don't forget to click on them to hear the sound!

Messaging

Chatting is easy, isn't it? Just write the trainer's name and add it to your list! Use words, send stickers or embed images! We have everything to make your communication comfortable!

Group chat

Want to chat with several people at the same time? Create a group chat and enjoy the conversation!

Settings

You can change your account details. Change your username, name, password, trainer code, or team easily! Also, you can change your avatar: choose one of the available avatars (we have about 100 avatars to choose from!) Or upload your own!

Customization

Customize everything the way you like! Choose from three perfectly composed color themes - which one do you like best? There are also four backgrounds for your chat to please the eye!

The server

Here are some useful diagrams that describe server-client work and database structure.

That's all!

After all I would like to say that working on this project was something new and interesting for me, I would gladly work on such projects again!
I also want to thank my friends and fellow students who watched the broadcast of the presentation and from whom I received a lot of kind words!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].