A modern collaborative drawing platform built with Next.js and WebSocket technology.
- 🎨 Real-time drawing collaboration
- 🔄 Live canvas synchronization
- 🛠️ Drawing tools:
- Rectangle
- Circle
- Line
- Freehand drawing
- 🖐️ Canvas controls:
- Pan
- Zoom
- Reset view
- 🔐 Secure authentication
- 🏠 Drawing rooms
- 🌙 Dark theme
-
Frontend
- Next.js 14
- TypeScript
- Tailwind CSS
- Custom UI components
- Canvas API
-
Backend
- Node.js
- WebSocket server
- Prisma ORM
- PostgreSQL database
-
Development
- Turborepo
- pnpm package manager
- Vercel deployment
- Node.js 18 or higher
- pnpm package manager
- PostgreSQL database
- Clone the repository:
git clone <repository-url>
cd <project-name>- Install dependencies:
pnpm install- Configure environment variables:
# apps/web/.env
NEXT_PUBLIC_BACKEND_URL=http://localhost:5000/api/v1
# apps/http-backend/.env
DATABASE_URL=postgresql://...
JWT_SECRET=your-secret-key
# apps/ws-backend/.env
DATABASE_URL=postgresql://...
JWT_SECRET=your-secret-key- Set up the database:
cd apps/http-backend
pnpm prisma generate
pnpm prisma db push- Start development servers:
pnpm devapps/
├── web/ # Next.js frontend
├── http-backend/ # REST API server
└── ws-backend/ # WebSocket server
packages/
├── ui/ # Shared components
├── db/ # Database client
└── common/ # Shared utilities
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-tool) - Commit changes (
git commit -m 'Add new drawing tool') - Push to branch (
git push origin feature/new-tool) - Open a Pull Request
MIT License - see LICENSE for details