Github Report

Introduction

This repo is an implementation of the assignment 2 for the course COMP90015: Distributed Systems. The details can find in the Assignment 2.


This projects consists of a simple real-time white board which allows multiple users to draw on the same canvas. The whiteboard is implemented using Java and SwingUI. Remote Method Invocation (RMI) is adopted to keep the real-time, efficient, and reliable communication between multiple JVMs.

GUI Design

Language and Tools

Java Badge VSCode Badge VSCode Badge VSCode Badge VSCode Badge IDEA Badge

How to compile and Run

Compile

  1. Compile the server and client files using the following command:
cd src

javac WhiteboardClient.java
javac WhiteboardServer.java
  1. Run the server with the following command:

    (the command should follow the format: java WhiteboardServer host port username)

java WhiteboardServer localhost 1099 Tom
  1. Run the client with the following command:

    (the command should follow the format: java WhiteboardClient host port username)

    Note: The client should get the same host and port with the server.

java WhiteboardClient localhost 1099 Jerry

Or

We also provide Jar file, you can run the server and client with the following command:

Note: The client should get the same host and port with the server.

For the server:

java -jar CreateWhiteBoard.jar localhost 1099 Tom

For the client:

java -jar JoinWhiteBoard.jar localhost 1099 Jerry

Interaction Diagram

Report

You can check the report in the Report.pdf

License

This project is open-source and free to use under the MIT License.