Collabdraw is an open-source online whiteboard application built to work on desktops and tablets alike. The user interface is HTML5 (using enyojs), and the backend runs on python tornado and redis.
- Works on most tablets out of the box, interface designed for touch interfaces
- Multiple rooms, pages for collaboration
- Take quick snapshots of the board
- Upload pdf and annotate on whiteboard
- Support for SSL, and authentication
- Fast, handles lots of users simultaneously
- Runs on heroku out of the box!
- Python 3.2+
- Redis server
- All python packages specified in requirements.txt (which might involve installing other non-python dependencies like cairo, redis)
- libpoppler (for pdfseparate), imagemagick (for mogrify) for upload functionality
- ffmpeg to enable video functionality
Install all system requirements. If on Ubuntu/Debian do:
apt-get install python3 redis-server poppler-utils imagemagick ffmpeg python3-pip git pkg-config libcairo2-dev
Clone the git repository
git clone git://github.com/anandtrex/collabdraw.git
Initialize submodules to get enyojs libraries.
cd collabdraw git submodule init git submodule update
Install python library requirements
pip-3.2 install virtualenv virtualenv venv source venv/bin/activate pip install -r requirements.txt
Set the hostnames, ports and other options in config.py. Most of the options are explained in the config file. You need the url that points to your redis server, and the url that points to your websocket endpoint
Test if your setup works
- Start the redis server (On Ubuntu/Debian, on most setups, this is started automatically on installation)
- Create a heroku account, create an app, and add the "Redis cloud" plugin.
Install heroku toolbelt on your box. Login to heroku with
heroku login. You can follow the instructions on the heroku quickstart page
- Clone the git repository
git clone git://github.com/anandtrex/collabdraw.git && cd collabdraw
- Edit config.py to point to your app. If you use the "Redis cloud" heroku addon, you can leave the redis url as it is.
- Add your app as a remote in git with:
heroku git:remote -a <your heroku app name>
./set_heroku_path.shto set the LD_LIBRARY_PATH in your heroku app config to point properly to ffmpeg
git push heroku master
- You can check your heroku installation by logging into the heroku dynamo with
heroku run bash, and running
./run_tests.sh. If this passes, all's good.
- All rooms are currently "public". Anyone registered user can join any room, if they know the room name. Private rooms on the way.