Skip to content

KAZOOcon 2023 hackathon starter kit KAZOO app (targetting KAZOO 4.3)

License

Notifications You must be signed in to change notification settings

amolist/kazoocon-2023-hackathon-collabazoo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Collabazoo: KAZOOcon 2023 hackathon starter kit

Collabazoo is a simple app that allows you to draw on a whiteboard canvas. Other users can observe the drawings in real time. This project is part of the starter kit for the KAZOOcon 2023 hackathon.

The project is composed of 3 parts: this KAZOO application (kapp), an ugly example web client, and a Meta Quest 2 VR application. When users draw in the VR world, the drawings are relayed through KAZOO's blackhole app in real time to the web client! The kapp then broadcasts the drawings to all connected clients, including the web client and the VR application.

Hackathon instructions

Instructions and project ideas can be found here.

Installation (kapp)

From source

KAZOO 4.3

  1. Clone this repository to the applications directory of your KAZOO source tree.
  2. Run make in the applications/collabazoo directory.
  3. Rebuild your KAZOO release, e.g. using make build-dev-release in the KAZOO source tree root.

KAZOO 5.x

Building from source is not available. If the precompiled build for KAZOO 5.3 does not work for you, please contact me (at the hackathon booth or via email) for a build targeting your KAZOO 5.x version. I will compile one for you.

You can try building the KAZOO 4.3 version and running it on KAZOO 5.x, but it is not guaranteed to work.

Precompiled

Precompiled versions are available on the releases page for KAZOO 4.3.142 and 5.3.65.

  1. Extract the .tar.gz to /opt/kazoo/lib.

Installation (web client)

  1. Update the Crossbar/Blackhole hosts/ports near the top of the example web client to point to your KAZOO servers.
  2. Serve the example client .html file from a web server. Alternatively, you can just open the file in your browser (file: protocol).
  3. Visit the URL for the client in your browser.

Installation/usage (VR app)

  1. Download and extract the app source code .zip file.
  2. Follow the instructions in the included README.md.

Usage (kapp)

  1. Start or restart KAZOO after installation (e.g. systemctl restart kazoo-applications).
  2. Start the kapp (e.g. sup kapps_controller start_app collabazoo) (only necessary if you will build on top of the kapp).
  3. Start the blackhole module (e.g. sup blackhole_maintenance start_module bh_collabazoo).

How it works (kapp)

The Blackhole module adds collabazoo Blackhole bindings that clients can subscribe to. It also accepts commands sent by Blackhole clients to draw on or clear the whiteboard. Those commands result in corresponding AMQP messages being published using the KAPI module to all listeners bound by the Blackhole bindings. Hence, every command is broadcast to all other collaborators (within the same account).

The full collabazoo kapp is only a formality right now, but it exists to be built on, e.g. for adding whiteboard state persistence.

How it works (web client)

When the user submits their credentials, a fetch is made to the Crossbar user authentication endpoint to acquire an auth token. The token is then used to authenticate with the Blackhole module. The Blackhole module then binds the client to the collabazoo bindings, which allows the client to receive messages from the kapp via WebSocket. draw and clear messages update the canvas on the web page accordingly. The client can also send a clear command to the Blackhole module, which will result in a clear message being broadcast to all other collaborators and their whiteboards being cleared.

About

KAZOOcon 2023 hackathon starter kit KAZOO app (targetting KAZOO 4.3)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Erlang 57.9%
  • HTML 41.9%
  • Makefile 0.2%