/Chatroom

Simple Chatroom Application using Socket Programming

Primary LanguageJava

Chatroom

A simple Chatroom using Java Socket Programming

Chatroom


Table of Contents


Description

A simple Chatroom which uses Java Socket Programming to manage multiple clients inside a server, allowing them to interact with each other, and allowing the server administrator to manage the chatroom and its clients.

Back To The Top


How To Use

To open the chatroom, you must first turn on the server by running ChatServer.

Then, each client can enter the chatroom by running the ChatClientCLI and signing up or logging into an account.

Multiple clients can join the server and start chatting with each other.

  NOTE: To open multiple clients from the save system, you must configure Intellij Idea
  to "Allow Multiple Instances" of a file to be runned at the same time.

Back To The Top


Features

Signing up & Logging in

Each client can create their own personal account with a unique username and a password, and they can log back into their account after they leave.

    NOTE: Clients cannot enter an account if the account is already online in the server.

Message History

All messages exchanged in the chatroom are saved so that when a new user enters the chatroom, or the server is turned off & on, the message history can be accessed.

Private Messages

Clients can send a private message to each other users using the command /message username 'message to be sent'.

They can also send a private message to the Server Administrator by using the command /message admin 'message to be sent'.

Private messages won't be shown to other users, and won't be saved into the log files.

Chatroom Polls

The Server Administrator has the ability to create a poll with multiple options inside the chatroom for the users to vote to.

Kick & Ban

The Server Administrator has the ability to kick out or ban any users that don't follow the chatroom rules.

Chatroom Commands

Both the Server Administrator and the clients have access to a variety of commands to help them do what they want.

Here's a list of available Admin Commands:

Admin Commands

/help => To see a list of available commands

/log => To see a list of all messages

/log -s address => To save all messages in a specific address inside the system

/log -c => To clear the message history

/members => To see a list of all chatroom members

/members -o => To see a list of all online chatroom members

/message username 'Your Message' => To send a private message to a user

/message all 'Your Message' => To send a message to everyone in the Chatroom

/kick username => To kick a user from the chatroom temporarily

/ban username => To ban a user from entering the chatroom forever

/ban username -u => To unban a banned user

/poll -create -t {Your Title Here} -o {First Option} -o {Second Option} ... -uname uniqueName

/poll -show uniqueName /poll -show pollID

/poll -show-all /poll -show-all-details

/poll -end uniqueName /poll -end pollID => To create or see Chatroom Polls

/shutdown => To close and shutdown the server

And here are the Commands available to the Clients:

Client Commands

/help => To see a list of available commands

/message username 'Your Message' => To send a private message to a user

/message admin 'Your Message' => To send a private message to the server administer

/poll -join uniqueName -v optionIndex

/poll -show uniqueName /poll -show pollID

/poll -show-all /poll -show-all-details => To join or see Chatroom Polls

/exit => To exit the chatroom

Back To The Top


Creators Info

This chatroom was developed by the Cein Company.

Cein (Computer Engineers In Noshirvani) is a company formed by a team of developers inside the Babol Noshirvani University of Technology (NIT or BNUT) to help each other in learning and developing interesting projects.

We would appreciate any comments or thoughts that would help us improve our program. And if you encounter any issues while using the Chatroom, we would be more than happy to be informed about it.

Back To The Top