Role: Solo Developer
Duration: 1 month
Category: Systems & Tools
Created:
Links
Tech Stack
Java RMI Swing Multi-threading
Tags
Java RMI Distributed Systems
RMI-Shared-Whiteboard — Multi-Room Collaborative Drawing (Java RMI)
🏆 University Project (High Distinction)A multi-room shared whiteboard built with Java RMI and a client–server model. Any user can create a room (becoming the admin) and others join as clients to draw together in real time, chat live, manage participants, and export or persist the session. Includes room discovery, role-based controls, and image/export utilities.
Project Gallery



+4
View all
Why it Matters#
Remote collaboration needs more than chat: teams sketch ideas, annotate flows, and make decisions visually. This project demonstrates a distributed collaboration tool from first principles—synchronizing shared state across multiple clients with RMI callbacks, handling permissions and joins/leaves, and preserving session history—useful patterns for whiteboards, pair-design, or teaching tools.
Key Highlights#
Rooms & Roles#
- Create/join rooms; discover available sessions.
- Admin controls: approve join requests, remove participants, end meetings, clear board.
- Participant flows: request access, join/exit with proper notifications.
Real-Time Collaboration#
- Live drawing with shapes (lines, ovals, rectangles, text, freehand), color pickers, stroke widths, and optional author labels.
- Built-in chatroom synchronized with the whiteboard session.
Persistence & Export#
- Open / Save / Save As for drawings and chat history; export current canvas to an image.
Session Awareness#
- View active users, detect disconnects, and keep room history consistent across clients.
Technical Foundation#
- Language & Runtime: Java
- Networking: Remote Method Invocation (RMI) with a registry (default 1099; configurable).
- Architecture: Client–server; room creator acts as server/admin; clients join via RMI stubs.
- Features demonstrated: distributed state sync, concurrency control, role-based actions, and serialization of drawing/chat data.