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
.
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.
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.
To start the server:
- Open up the
GoChat\Scripts
folder in a terminal - Start the server program using:
.\startGoServer.ps1
To connect with the GOChat server using telnet:
- Open up a terminal and start a telnet connection using:
telnet localhost 8080
- Press enter to start the connection.
To startup the listener:
- Open up the
GoChat\Scripts
folder in a terminal - Start the listener program using:
.\startGoListener.ps1
Note: When using /encrypt
the encryption key will be set and displayed for use.
To start Go GUI:
- Open up the
GoChat\Scripts
folder in a terminal - Start the listener program using:
.\startGoListener.ps1
- In a new terminal window navigate to the
GoChat\Scripts
folder - Start the frontend development server using:
.\startDevFrontend.ps1