1 Authors, affiliations and contact information

Name: Heming Cui.

Department: Computer Science, Columbia University.

Email: hc2428@columbia.edu

Phone: 917-208-5612

2 Compile and run the application

    Fig. 1 shows the GUI of ONEChat.


Figure 1: The GUI of the ONEChat application

    Before you compile and run the application, make sure you have installed the software correctly, as described in the Readme.html. Assume you are in the top directory of the project package, and you are using Linux (if you are using Windows, just need to be careful to the file separator). Extract the ONEChat.rar in Code directory, and then type the following commands:


    cd Code/ONEChat/src


    javac *.java


    java GroupChat 2346 2346 red


    Then, the application is shown. You can choose any multicast IP address other than, but please make sure that different ONEChat applications should use the same multicast address. Make sure that the "pics" directory is within the Code/ONEChat/src/ directory, because we need to display image icons for users. You can change your image icon located in any directory after the application is setup. The GUI of the application is given in Fig. 1.

    After two or more applications are setup, please modify their usernames as described in Section 8 so that they can communicate. Users with the same username can not communicate with each other.

3 Creating a group

    Right click the tab in the GUI to create a new group, then there comes a menu called "Create new group", as shown in Fig. 1. The Global Group is permanent for each user, and a user could only create protected groups. When Creating a group, the user is required to enter the group name and password, then other users who want to join this group should enter a right password.

4 Joining a group

    After a user named A creates a new group, users within A’s network would receive a message showing that A has created a group, as shown in Fig. 2. Any user could double click this message to join this group, but he/she must enter the correct password.


Figure 2: Users are notified that a new group named Room 2 is created

5 Chatting

    People could chat within the Global Group, then their chatting would be known by all users. They could also chat within a protected group, then the chatting contents could only attained by those group members. Fig. 3 demonstrates a group chatting scenario.


Figure 3: Group chatting scenario

6 Leaving a group

    A user belonging to a protected group could double click the tab of that group to leave, and all users within that group would be notified automatically. A user could leave a protected group freely, but he/she is not allowed to leave the Global Group unless he/she closes the application.

7 Changing user image icon

    A user could click the "Settings" menu and choose the "Modify Image Icon" menu item to change his/her own image logo. The picture should not be too big (less than 64KB), otherwise you can not choose it in the file chooser box (I have added a file filter to the chooser box).

8 Changing user name

    A user could click the "Settings" menu and choose the "Modify User ID" menu item to change his/her own user name, and this event would be automatically notified by other users in the network. Others’ friend lists would be updated with the new user name.