paintchat

a digital chalkboard written in go

APACHE-2.0 License

Stars
3

paintchat

a simple digital chalkboard written in go.

the server is similar to a chat server with rooms implemented using go channels. each client is streaming its drawing actions to the server throgh a websocket. the server then broadcasts changes to all other clients in the same room. As long as a client stays connected all its streamed data remains buffered at the server. If a new client connects it first gets a random name and color assigned and then receives all drawing history form all other currently connected clients. Once a user leaves a room all her drawing data will be lost.

Feature list

  • all users enter a public board when opening the root url
  • create private boards
  • copy board url on click
  • three different pencil sizes
  • random name and color assignment
  • erase all what you've been drawing so far
  • save drawing as png

Dependencies

All dependencies are installed using go modules.

Build & run

simply run go build . or go run to build.

Contribute

You are welcome to open pull-request or simply report feature requests or issues.