Skip to content

Hell1213/NovaDraw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ NovaDraw – A Collaborative Whiteboard App

NovaDraw is a real-time collaborative whiteboard built with MERN + Yjs.
It allows teams to brainstorm, draw, and collaborate on an infinite canvas β€” just like in-person whiteboarding sessions.


πŸš€ Tech Stack

Frontend

  • React + Vite
  • TailwindCSS
  • shadcn/ui

Backend

  • Node.js + Express
  • MongoDB Atlas (Mongoose)
  • Yjs + WebSockets (for real-time collaboration)
  • Helmet + Morgan + CORS (security & logging)

πŸ“‚ Project Structure

/frontend β†’ React + Vite app (UI) /backend β†’ Express + MongoDB API + WebSocket server

markdown Copy code


✨ Features

  • πŸ’― Free & open-source
  • 🎨 Infinite, canvas-based whiteboard
  • ✍️ Hand-drawn style (smooth, sketch-like drawings)
  • πŸŒ“ Dark mode support
  • πŸ—οΈ Customizable tools & board management
  • πŸ“· Image upload & support
  • πŸ˜€ Shape libraries support (rectangles, circles, diamonds, arrows, etc.)
  • πŸ–ΌοΈ Export options β†’ PNG, SVG, and clipboard
  • πŸ’Ύ Open format β†’ export/import drawings as .json
  • βš’οΈ Wide range of tools β†’ free-draw, shapes, arrows, eraser, laser tool, highlighter, text tool
  • ➑️ Arrow binding & labeled arrows
  • πŸ”™ Undo / Redo history
  • πŸ” Zooming & panning
  • πŸ” Authentication (JWT) β†’ secure login/register
  • πŸ“Š Board Management β†’ create, list, and manage whiteboards,library to save shapes,workspaces to save your canvas
  • πŸ“ File uploads (basic sharing support)
  • πŸ”— Real-time collaboration (multi-user sync with Yjs)

πŸ› οΈ Installation & Setup (Local)

1. Clone the repo

git clone https://github.com/yourusername/NovaDraw.git
cd NovaDraw
2. Backend setup
bash
Copy code
cd backend
npm install
Create a .env file in /backend:

env
Copy code
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.xxxx.mongodb.net/?retryWrites=true&w=majority
PORT=5000
JWT_SECRET=your_jwt_secret
Run server:

bash
Copy code
npm run dev
➑ Backend runs at β†’ http://localhost:5000

3. Frontend setup
bash
Copy code
cd collab-frontend
npm install
Create a .env file in /collab-frontend (or copy from .env.example):


env
Copy code
VITE_API_URL=http://localhost:5000
Run frontend:

bash
Copy code
npm run dev
➑ Frontend runs at β†’ http://localhost:5173

βœ… To-Do (Future Enhancements)
.. More whiteboard tools (sticky notes, templates, grids)

.. Role-based access control (RBAC)

.. Persistent file storage (S3 / Cloudinary)

.. User profiles & avatars

.. Whiteboard history & replay mode

..  Laser tool integration is still remain
.. Highlighter tool for better marking

🀝 Contributing
1. Fork the repo

2. Create your feature branch β†’ git checkout -b feature/my-feature

3. Commit changes β†’ git commit -m "Add my feature"

4. Push to your fork β†’ git push origin feature/my-feature

5. Open a Pull Request πŸŽ‰

πŸ‘¨β€πŸ’» Author
Built  by Hell1213

About

A Whiteboard canvas

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published