Skip to content

YusufCoder/paintchat

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PaintChat

Build Status

A chatroom with support for real-time collaborative drawing. Think MS Paint meets Google Docs!

Live demo

Features

  • run a single server or as a cluster
  • consistent, persistant state
  • dynamically add/remove nodes at any time

Usage

PaintChat requires a Cassandra server instance to run. Launch a quick instance with Docker using the official Cassandra image:

$ docker run -d -p 9042:9042 cassandra

Export the ip of your cassandra instance to CASSANDRA_IP (PaintChat will use 127.0.0.1:9042 by default if unbound)

$ export CASSANDRA_IP=[your Docker machine's ip]

Run a local PaintChat instance

With Docker:

$ docker run -it --net=host -e CASSANDRA_IP=$CASSANDRA_IP kevinchabreck/paintchat

With SBT:

$ sbt run

Multiple instances of PaintChat can be run in parallel on the same host. They will attempt to bind to port 8080, and retry at monotonically increasing port numbers upon failure. The default number of max retry attempts is 3.

Connect to local PaintChat instance

Point your browser to http://DOCKERHOST:8080/ (replace DOCKERHOST with the ip or hostname of your Docker machine)

About

Real-time collaborative drawing with Akka and WebSockets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 38.2%
  • Scala 35.0%
  • CSS 15.7%
  • HTML 10.0%
  • Shell 1.1%