DrawHub is the easiest and fastest way to get your ideas onto a digital canvas. Work alone, or with others in realtime, to create and share digital masterpieces straight to the cloud. ✏️
- 
Sign in via Google using Auth0 and JWT Authorization 
- 
Draw (with custom pen widths and colors) onto a canvas with realtime updates with multiple users 
- 
Invite others, using email, to join the canvas session, through a unique shareable link 
- 
Create private canvases, hidden to other users - Invite other users to join the canvas session, but only specified in a list of allowed emails
 
- 
"Stitch" (copy/fork) other public canvases to add on top of it, either public or private 
- 
Save the canvas as an image and auto-upload it to Google Drive 
- 
View other users' public canvases 
- 
Get notified through when they have been invited to a canvas or their canvas has been stitched 
- Nx (Monorepo + CLI Tools)
- React + TypeScript (Client Application)
- NestJS (Server Application)
- Apollo GraphQL (Primary API)
- Socket.io (WebSockets)
- Bull (Queue Manager)
- Nodemailer (Emails)
- MongoDB (Primary Datastore)
- Redis (Queue Datastore)
- Auth0 (Authentication + Authorization)
- AWS S3 (Primary Blob Storage)
- Google Drive API (Personal Upload)
- Twilio SendGrid (Email API)
- Docker (Images)
- GitHub Actions (CI/CD)
- Kubernetes (Cluster)
- DigitalOcean (Cloud Provider)
- Nginx (Ingress + Static Server)
- Let's Encrypt (Certificate Authority)
Thanks goes to these wonderful people (emoji key):
| Navinn Ravindaran 💻 🚇 | Samyak Mehta 💻 | Aryan Patel 💻 | 
This project follows the all-contributors specification. Contributions of any kind welcome!

