Skip to content

A real-time online collaborative paint chat website.

Notifications You must be signed in to change notification settings

yuki16bit/drawprism

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DrawPrism

drawprism-logo

A real-time online collaborative paint chat website

Live Demo

  • This repository is no longer maintained. The live demo is available only as a screenshot 🖼
  • Anonymously, no registration needed but still can sign up if you'd like to ✨
drawprism-gif

Main Features

✨ Create a free paint chat room in a second
  • After create the room, system will give you an url to invite your friends in, then you can drawing and chatting together, asynchronously!
  • Communication between client-side and server-side is handled through Socket.IO
drawprism-paint-chat-gif
✨ Pen Pressure Sensitive
  • If you draw by tablet, I have built-in support for pressure sensitivity!
drawprism-pen-pressure-gif

System Architecture

drawprism-architechure

Front-End Tech Stack

  • React.js (Hooks)
  • React Router
  • Redux Toolkit / RTK Query
  • Socket.IO Client
  • Html Canvas API
  • Tailwind CSS

Backend Tech Stack

  • Docker / docker-compose
  • gunicorn
  • gevent / gevent-websocket
  • Python / Flask
  • Flask-SocketIO
  • Celery
  • MongoDB Atlas
  • AWS ElastiCache for Redis
  • AWS S3
  • AWS CloudFront
  • AWS EC2
  • JSON Web Token (JWT)
  • MVC Design Pattern
  • Ubuntu 20.04 (Windows Subsystem for Linux 2)

Net-working

  • Nginx (Reverse Proxy / Http & Https support)

Version Control

  • Git / Github
  • GUI: Fork / Git Kraken