Skip to content

Distributed Shared Whiteboards is a distributed application that provides a range of features enabling real-time collaboration on shared whiteboards.

Notifications You must be signed in to change notification settings

null-routed/Distributed-Shared-Whiteboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mnesia Erlang MySQL Java JavaScript Bootstrap

Distributed Shared Whiteboards

Overview

Shared Whiteboards is a distributed application designed to allow users to collaborate on shared whiteboards. The main features we developed are:

  • Whiteboard Management: Allows users to create, edit, and delete whiteboards.
  • Real-Time Collaboration: Enables multiple users to draw, erase, and view updates on whiteboards in real time.
  • Action Broadcasting: Uses Erlang processes to broadcast actions like adding or removing strokes across nodes, ensuring data consistency.
  • Undo/Redo Actions: Supports undoing and redoing actions on the whiteboard via a managed stack structure.
  • WebSocket Communication: Facilitates real-time communication between the client and server using WebSockets.
  • Load Balancing: Implements custom load balancing strategies with NGINX.

Application Components

dsmt

  • NGINX: Employed as a proxy server to ensure proper load balancing.
  • Erlang: Erlang servers manage whiteboard activities through WebSocket communication. These servers handle everything from user authentication using JWTs for secure sessions to the real-time updating of whiteboard content.
  • Glassfish: Serves as the Jakarta EE Application Server.
  • MySQL: Utilized for storing persistent data such as user credentials and whiteboard metadata.
  • Mnesia Database: Integrated within Erlang nodes to store whiteboard-specific data like access permissions, user connections, and action logs.

Short demo

distributed_shared_whiteboard_demo.mp4

Installing, configuring and running

You can refer to this README file for all the necessary instructions.


Contributors

About

Distributed Shared Whiteboards is a distributed application that provides a range of features enabling real-time collaboration on shared whiteboards.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •