1
0
Fork 0
Nibriboard/README.md

54 lines
2.9 KiB
Markdown
Raw Normal View History

2017-01-06 21:19:37 +00:00
# Nibriboard
2017-11-14 18:43:24 +00:00
> 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 9 months later I'm going strong, but not quite there yet :P
## 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](https://git.starbeamrainbowlabs.com/sbrl/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:
- Node.JS + npm
- mono if you're on Linux / macOS / etc.
Next, run
2017-01-08 18:03:07 +00:00
## Credits
- Main code - [Starbeamrainbowlabs](https://starbeamrainbowlabs.com/)
2017-01-21 19:50:30 +00:00
- Client-Side Libraries:
- [favicon-notification](https://www.npmjs.com/package/favicon-notification)
2017-04-25 18:33:31 +00:00
- [event-emitter-es6](https://www.npmjs.com/package/event-emitter-es6) - For ES6 class event generation and consumption
- [color](https://www.npmjs.com/package/color) - For colour generation and manipulation
- [cuid](https://www.npmjs.com/package/cuid) - For Id generation (Also available for .NET - todo look into using that here too)
- [fps-indicator](https://www.npmjs.com/package/fps-indicator) - The fps graph in the top right
- [pan-zoom](https://www.npmjs.com/package/pan-zoom) - Handles panning & zooming delta calculations
- [keycode](https://www.npmjs.com/package/keycode) - Key code -> key name translation
- [acorn](https://www.npmjs.com/package/acorn) - Syntax checking etc. during `npm build .`
2017-11-14 17:52:12 +00:00
- [webpack](https://webpack.js.org/) - Building and packing the client-sided js into a single bundle
2017-04-25 18:33:31 +00:00
- Images:
- [Transparent Square Tiles](https://www.toptal.com/designers/subtlepatterns/transparent-square-tiles/) from [subtlepatterns.com](https://subtlepatterns.com/)
- Icons:
- [OpenIconic](https://useiconic.com/open) - brush, move -> pan, sun -> point
- Future reference: Libraries I am considering
2017-01-21 19:50:30 +00:00
- [Paper.js](http://paperjs.org/) - Client-side rendering
2017-04-25 18:33:31 +00:00
- [IotWeb](http://sensaura.org/pages/tools/iotweb/) - Underlying HTTP / WebSocket server
## Useful Links
- MSBuild:
- [`Exec` task](https://docs.microsoft.com/en-gb/visualstudio/msbuild/exec-task)
- [Dynamic wildcarded embedded resources](https://ayende.com/blog/4446/how-to-setup-dynamic-groups-in-msbuild-without-visual-studio-ruining-them)