This is a blank digital space where multiple people can collaborate (write, share and interact) in real-time. Some of the common uses of a whiteboard are brainstorming, problem-solving and visualizing ideas.
- Browser synchronization
- Real-time collaboration
- Mobile support
- Flask
- Python
- Twilio Sync
- Pamoja whiteboard on Heroku
This is a work in progress. The project is at its early stages. I intend to add more features and improve the UI over time. Some of the ideas I am thinking to incorporate are:
- User authentication
- Synchornization of the clear button
- Reduce latency between users who type fast
There are a couple of other whiteboard projects, with more features that I am currently looking into. Some of them are:
Meanwhile, you can run the application locally. Run the commands below to start the application.:
-
Clone this repository:
git clone git@github.com:GitauHarrison/collaborative-whiteboard-using-flask-and-twilio-sync.git
-
Change directory to the repository:
cd collaborative-whiteboard-using-flask-and-twilio-sync
-
Create and activate a virtual environment:
$ virtualenv venv $ source venv/bin/activate # Alternatively, you can use virtualenvwrapper $ mkvirtualenv venv
- Virtualenvwrapper is a wrapper around virtualenv that makes it easier to use virtualenvs. mkvirtualenv not only creates but also activates a virtual enviroment for you. Learn more about virtualenvwrapper here.
-
Install dependencies:
(venv)$ pip3 install -r requirements.txt
-
Update environment variables:
(venv) cp .env.example .env # Ensure that the .env file is in the root of the project
-
Run the application:
(venv)$ flask run
-
Open the browser and navigate to http://localhost:5000/. You should see the application running.
-
Click on the whiteboard link in the URL bar. You should see the whiteboard.
-
Paste the same whiteboard link on another browser window to test collaborative features.
-
Try to write something on the whiteboard. You should see the text appear on the other browser window.
You can also run the application on your mobile devices.