Our second project in Hacking the Library tasked us with creating an add-on for the Idea Harvester, a rolling installation in the Library intended to help with team projects, ideation, and creation. In three weeks. We decided to build off of the Idea Harvester’s uses in team collaborative work and create InfinityBoard: a virtual whiteboard, a space for team collaboration and free-form ideation that can be set up with low activation energy and used to organize thoughts. It’s a real-time collaborative web app allowing multiple users to easily add and manipulate text and images in real time.
The biggest challenge of the project was handling state across multiple clients. We used websockets to send updates to the server, and then propagate those changes to everyone else viewing the same board. However, this raised a number of challenges. In order to simplify the process of propagating and handling changes to state, I implemented Redux functionality, which allows state updates to be asynchronously dispatched across all clients.