This project aims to create a distributed shared whiteboard that enables multiple users to collaborate in real-time. Users can draw on a shared canvas, supporting features like freehand drawing, shapes, text input, and color selection. The system is implemented in Java, and choose technologies like TCP/IP Sockets for building this distributed application.
- Concurrency Handling: Addressing simultaneous actions to maintain a reasonable state.
- System Structuring: Options include multiple servers communicating or a central server managing the system state.
- Networked Communication: Deciding when and what messages are sent across the network, and designing an exchange protocol.
- GUI Implementation: Utilizing tools like Java Swing drawing package for functionality resembling MS Paint.
- Multiuser Whiteboard:
- Support multiple users drawing on a shared canvas.
- Single shared whiteboard for all clients.
- Key Elements with GUI:
- Support drawing shapes (line, circle, oval, rectangle).
- Text input allowing users to type anywhere on the whiteboard.
- Choose from at least 16 colors for drawing.
- Chat Window:
- Text-based communication among users.
- File Menu:
- New, open, save, saveAs, and close functionalities managed by the manager.
- Manager Controls:
- Allow the manager to kick out a specific user.
- Allow the manager to approve a user to join.
-
Create Whiteboard:
java CreateWhiteBoard <serverIPAddress> <serverPort>
-
Join Whiteboard:
java JoinWhiteBoard <serverIPAddress> <serverPort>