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

 

History

272 Commits
 
 
 
 
 
 
 
 
 
 

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

  •  
  •  
  •