By this app , people can instantly collaborate with each other and the organiser(creater of the room) only has the full access to the whiteboard initially. The organiser's whiteboard is shared to all the joined clients and the whiteboards can be saved later in the database. The saved white boards can be edited or deleted also. The organiser can also give access to use and edit the whiteboard to any of the joined member. Since , these rooms are temporarily created , as soon as the organiser leaves a particular room ,the room is destroyed and all the other participants also gets automated removed from the room. Users can also share their saved whiteboards to some other user through email link and hence it's very easy to share the whiteboards between different users.Users can also use the whiteboards in mobile also.
Handling the canvas for whiteboard is the biggest problem we ran into. It was very much difficult to pan and zoom the whiteboard along with the erased section if the earser has been used before zooming or panning.Finally, we used the famous pythagoras theorem to cleverly get the effect of pan and zoom. Also, propogating the canvas contents to all the users was a bit challenging with all the erased section as well . Giving whiteboard access to any of the client was also tough.Editing and deleting the images from database as well as from cloudinary and and updating the states were also little bit tough to implement. Moreover , using the node server as a REST api , for HTML file serving as well as as a socket.io server and syncing all of them was the most challenging one. But with constant hardwork, thinking and team-work we were able to solve these issues.
Discussion