/PokeChat

UNIX compatible, Discord and Telegram inspired, Pokémon-themed instant messaging service.

Primary LanguageCGNU General Public License v3.0GPL-3.0

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!