/Nibriboard

🖼 An infinite whiteboard for those big ideas. Currently unstable and in alpha.

Primary LanguageC#Mozilla Public License 2.0MPL-2.0

Nibriboard

An infinite whiteboard for recording those big ideas.

Nibriboard is a product of an initial idea that I thought I could get done in about 3 weeks in February 2017, but some considerable time later I'm still going strong, but not quite there yet :P

A screenshot of what the interface looked like in July 2018.

Features

  • Infinite whiteboard that can be panned around (limited only by your hard drive space and floating-point number limits)
  • Real-time multi-user support
  • User input is simplified to reduce disk space / bandwidth

Todo

  • Authentication + user accounts
  • Multi-whiteboard support (the backend supports it - it's just not exposed correctly yet)
  • Improve client-side multi-user cursor support (disconnected users' cursors don't disappear correctly)
  • Improve colour palette
  • Improve left-hand user interface panel
  • Make debug info hidden by default + toggleable
  • Implement WebSockets gzip support in the GlidingSquirrel

Getting Started

Nibriboard is not ready for general consumption just yet. It's got no authentication yet for one! If you'd like to play around with it, then you'll need the following:

  • git
  • Node.JS + npm
  • mono if you're on Linux / macOS / etc. (See below for Ubuntu 20.04 instructions)

Once you've verified that you've got the above installed and in your PATH, simply run msbuild (or dotnet msbuild, or xbuild) in the root of this repository to build Nibriboard.

Windows users may need to use a Visual Studio Command Prompt if the msbuild command isn't in your PATH environment variable.

Note that if you're intending to use Nibriboard over the internet or an untrusted network, you should proxy it behind nginx to provide TLS, as Nirbiboard doesn't handle HTTPS on it's own.

Getting Started with Ubuntu 20.04 (and probably others)

This may or may not work with Ubuntu's provided mono packages, though was tested with those provided by mono-project. Note: if for whatever reason you don't have mono-roslyn (which provides msbuild), use mono-xbuild and xbuild in their respective places.

  • packages: sudo apt install mono-devel mono-roslyn
  • nuget for dependencies: wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe (note: msbuild -restore did not work)
  • mono nuget.exe restore
  • msbuild

Finally, run with mono Nibriboard/bin/Debug/Nibriboard.exe

If you have any trouble with nuget and the JSON dependencies, there's a package you can try installing: libnewtonsoft-json-cil-dev

Credits

Useful Links