A real-time collaborative drawing application that allows multiple users to draw together on a shared canvas.
- Real-time collaboration - Draw with others simultaneously
- Multiple drawing tools - Pen, line, rectangle, circle, eraser
- Room-based sessions - Private drawing rooms with unique IDs
- Clear all functionality - Clear the canvas for all users
- Responsive design - Works on desktop, tablet, and mobile
- Cross-platform - Web-based, works on any device with a browser
- Node.js 18+
- npm or pnpm
-
Clone the repository
git clone <your-repo-url> cd sketchParty
-
Setup Backend
cd backend-server npm install cp .env.example .env npm start
-
Setup Frontend (in a new terminal)
cd frontend npm install cp .env.example .env.local npm run dev
-
Open the application
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
- Next.js 14 - React framework with app router
- TypeScript - Type safety
- Tailwind CSS - Utility-first CSS framework
- Socket.IO Client - Real-time communication
- Recoil - State management
- RoughJS - Hand-drawn style graphics
- Lucide React - Beautiful icons
- Express.js - Web application framework
- Socket.IO - Real-time bidirectional communication
- TypeScript - Type safety
- CORS - Cross-origin resource sharing
- Create or Join a Room - Each drawing session has a unique room ID
- Choose Your Tool - Select from pen, line, rectangle, circle, or eraser
- Start Drawing - Draw on the canvas and see others' drawings in real-time
- Clear Canvas - Use the clear button to remove all drawings for everyone
- Share Room ID - Copy and share the room ID for others to join
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally
- Submit a pull request
Happy Drawing! 🎨✨