A modern, real-time collaborative whiteboard application built with the MERN stack, featuring instant synchronization, interactive drawing tools, and seamless team collaboration.
- Real-time Collaboration: Instant canvas synchronization across all connected users using Socket.IO
- Advanced Drawing Tools:
- Pen/Pencil with customizable stroke width and color
- Shapes (Rectangle, Circle, Line)
- Text tool with inline editing
- Highlighter/Eraser functionality
- Object Manipulation: Select, move, resize, rotate, duplicate, and delete objects
- Grouping: Group and ungroup multiple objects for easier management
- Undo/Redo: Complete history management with up to 50 states
- Permission System: Host can grant/revoke drawing permissions to specific users
- Live Chat: Built-in chat system with message history
- AI-Powered Summary: Generate intelligent summaries of whiteboard content using Google Gemini AI
- Session History: Access and view past whiteboard sessions
- PDF Export: Download whiteboard sessions as PDF files
- JWT Authentication: Secure user authentication with bcrypt password hashing
- Room System:
- Create unique rooms with custom names
- Join rooms via unique 8-character room IDs
- Share room links for easy access
- User Presence: See who's online and track active participants
- Host Controls: Room creator has special privileges for permissions and room management
- Responsive Design: Works seamlessly on desktop and mobile devices
- Auto-save: Continuous board state saving with debouncing
- Session Persistence: Board data stored in MongoDB for 30 days
- Real-time Sync: Zero-latency updates using WebSocket connections
- Optimized Rendering: Efficient canvas rendering with Fabric.js
- React - UI framework
- Fabric.js - Canvas manipulation and rendering
- Socket.IO Client - Real-time communication
- React Router - Client-side routing
- Tailwind CSS - Styling framework
- Axios - HTTP client
- React Toastify - Notification system
- Node.js - Runtime environment
- Express.js - Web framework
- Socket.IO - WebSocket server
- MongoDB - Database
- Mongoose - ODM for MongoDB
- JWT - Authentication tokens
- bcryptjs - Password hashing
- Google Gemini AI - AI summary generation
- Node.js (v20.0.0 or higher)
- MongoDB (local or Atlas)
- npm or yarn package manager
- Sign up or log in to your account
- Click "Create Room" from the home page
- Enter a room name
- Share the generated room ID or link with collaborators
- Click "Join Room"
- Enter the room ID or use a shared link
- Start collaborating immediately
- Select (V): Click to select and manipulate objects
- Pen: Freehand drawing
- Shapes: Create rectangles, circles, and lines
- Text: Click to add and edit text
- Highlighter: Semi-transparent drawing tool
Ctrl/Cmd + Z: UndoCtrl/Cmd + Y: RedoCtrl/Cmd + D: Duplicate selected objectDelete/Backspace: Delete selected object
- Click "Summary Generation" tab in the right panel
- Click "Generate Summary" button
- AI will analyze the whiteboard and provide:
- Description of visual elements
- Possible interpretations and meanings
- Structured insights in formatted text
- Navigate to History page from navbar
- View "Created by Me" and "Joined by Me" tabs
- Click "Open" to view past sessions
- Download sessions as PDF using the download button
The application is deployed at: [https://drawsync-frontend-7ekx.onrender.com]
Backend: Render Frontend: Render Database: MongoDB Atlas
👨💻 Author Yash Dabhekar