A collaborative drawing application where users can create rooms, draw together in real-time, and chat with each other.
- Next.js 14
- TypeScript
- Tailwind CSS
- Socket.io Client
- Express.js
- Socket.io
- TypeScript
- JWT Authentication
- PostgreSQL
- Prisma ORM
- Docker & Docker Compose
- Turborepo (Monorepo Setup)
- pnpm
collabdraw/
├── apps/
│ ├── web/ # Next.js frontend
│ └── api/ # Express backend
├── packages/
│ ├── database/ # Prisma schema
│ ├── types/ # Shared TypeScript types
│ └── config/ # Shared configs
└── docker-compose.yml
- Node.js 18 or higher
- Docker Desktop
- pnpm (install globally)
npm install -g pnpm
git clone https://github.com/your-username/collabdraw.git
cd collabdraw
pnpm install
Create .env files in the required locations:
# apps/api/.env
# packages/database/.env
Example .env for backend:
DATABASE_URL=postgresql://user:password@localhost:5432/collabdraw
JWT_SECRET=your_secret_key
docker-compose up -d postgres
cd packages/database
pnpm prisma migrate dev
pnpm prisma generate
Backend:
cd apps/api
pnpm dev
Frontend (coming soon):
cd apps/web
pnpm dev
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register new user |
| POST | /api/auth/login |
User login |
| GET | /api/auth/me |
Get current user (protected) |
This project is licensed under the MIT License.
Anuj Tiwari Full Stack Developer | MERN & DevOps Enthusiast 🚀 Building scalable real-time web apps