Talkie

Talkie

A chat application built for desktop. Database is stored using MariaDB.

“Chatting is like a window into someone’s world. It allows us to see beyond the surface and connect on a deeper level, sharing our thoughts, experiences, and emotions in a way that is both personal and profound”

Project Description

Talkie is a chat app I developed using Java and socket technology. It allows users to connect and communicate with each other in real-time. Using Talkie, users can create individual or group chats, and send text messages, images, and files with ease.

Features

  • Register chat account (saved in MariaDB/MySQL database)
  • Chat 1v1
  • Chat with many people at the same time (Multithreading)
  • Chat Group
  • Send file

Experiences

  • Java
  • MariaDB/MySQL
  • Socket
  • Multithreading

Build and Run Project

Create database

Firstly, because the program uses MariaDB to store user data, we need to create and run the database

  • We need to type commands to log in as root. by typing the command:

    mysql -u root -p
    

    Screenshot from 2022-06-01 15-39-32

  • Next, we need to create a database named “chatUser” with the following comand:

    CREATE DATABASE chatUser;
    

    Screenshot from 2022-06-01 15-40-53

  • Run the following SQL script to create the table:

    DROP TABLE IF EXISTS chatUser;
      
    CREATE TABLE chatUser (
      username varchar(50) NOT NULL primary key,
      userpassword varchar(256) DEFAULT NULL
    )
    

Build the project

  • Go to the project directory and type the following command:

    mvn install
    

    Screenshot from 2022-06-01 16-58-33

  • After maven says “BUILD SUCCESS”, the .jar file will be in the directory called target, go to that directory and execute the java program by typing the following command:

    java -jar ChatClient-1.0-SNAPSHOT-jar-with-dependencies.jar
    
  • Note, there will be 2 .jar files, we need to select the file whose name includes the word “with-dependencies.” For the ChatServer project we also do the same. The following screen shot is the result of the application running successfully:


© 2023. All rights reserved.