Skip to content

DaudTalat/GOChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOChat

GOChat is an encrypted messaging app that allows users to create and host their own chat rooms or join existing chat rooms in a local network. Messages sent through the GOChat server can be encrypted using AES-256 - the premier of Advanced Encryption Standard.

Structure

The usage of GOChat is divided up based on the server and user. Users have the option to directly connect with the GOChat server directly using TCP. TCP connections are not recommended and the listener.go program was created to fix some of the usability issues related with raw TCP connections. The listener.go program supports client-side encryption and decryption—this meaning that the server host is unable to read these messages without the appropriate encryption key.

The commands to interact with server through a console are listed below:

'/create <name>'     create a room and join it
'/join <name>'       join a room with associated room name
'/nick <name>'       set name, otherwise name will be "stranger"
'/exit'              disconnects from chat server 
'/rooms'             show list of available rooms to join
'/msg <msg>'         broadcasts message to everyone in a room
'/encrypt'           generate AES-256 encryption key for messages
'/encrypt <key>'     assign AES-256 encryption key for messages

Alternatively, the user can use to the server using a GUI interface instead of a command line. The GOChat GUI further abstracts the connection process and improves discoverability of features. The GUI sends HTTP requests to the listener.go file which relays the requests to the server. In future, technologies like Web Sockets can be used to improve the frontend preformance.

Alt text

Usage

The following instructions assumes the user has installed go, npm, and is running the program on a Windows machine. Please refer to the go documentation and Node Js documentation for more information on installing the dependencies required to run the project.

Running GOChat Server

To start the server:

  1. Open up the GoChat\Scripts folder in a terminal
  2. Start the server program using:
    .\startGoServer.ps1

Using GOChat With Telnet

To connect with the GOChat server using telnet:

  1. Open up a terminal and start a telnet connection using:
    telnet localhost 8080
  2. Press enter to start the connection.

Using GOChat With Listener

To startup the listener:

  1. Open up the GoChat\Scripts folder in a terminal
  2. Start the listener program using:
    .\startGoListener.ps1

Note: When using /encrypt the encryption key will be set and displayed for use.

Using GOChat With GUI

To start Go GUI:

  1. Open up the GoChat\Scripts folder in a terminal
  2. Start the listener program using:
    .\startGoListener.ps1
  3. In a new terminal window navigate to the GoChat\Scripts folder
  4. Start the frontend development server using:
    .\startDevFrontend.ps1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published