Skip to content

kunal-yelgate/White_Board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖊️ White Board

A real-time collaborative whiteboard application built with React, Node.js, and Socket.io — draw, sketch, and collaborate with others live in the browser.


✨ Features

  • 🖊️ Freehand Drawing — Smooth pencil/brush tool for freehand sketching
  • 🔷 Shapes & Tools — Draw lines, rectangles, circles, and more
  • ↩️ Undo / Erase — Undo actions or use the eraser to clean up your canvas
  • 💾 Save / Export — Export your whiteboard as an image
  • 🌐 Real-time Collaboration — Multiple users can draw together simultaneously via WebSockets

🛠️ Tech Stack

Layer Technology
Frontend React, HTML, CSS, JavaScript
Canvas HTML5 Canvas API
Backend Node.js, Express
Real-time Socket.io (WebSockets)

🚀 Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/kunal-yelgate/White_Board.git
    cd White_Board
  2. Install dependencies

    For the backend:

    cd server
    npm install

    For the frontend:

    cd client
    npm install
  3. Start the development servers

    Backend:

    cd server
    npm start

    Frontend:

    cd client
    npm start
  4. Open your browser and navigate to http://localhost:3000


📁 Project Structure

White_Board/
├── client/                    # React frontend
│   ├── src/
│   │   ├── components/
│   │   │   ├── Canvas/       # Canvas drawing component
│   │   │   ├── Toolbar/      # Tool selection & colors
│   │   │   ├── Collaboration/# User list & conflict resolver
│   │   │   └── UI/           # UI components (Header, etc.)
│   │   ├── hooks/            # Custom React hooks
│   │   ├── store/            # Zustand state management
│   │   └── App.js
│   └── package.json
├── server/                    # Node.js + Express backend
│   ├── index.js              # Entry point
│   ├── config/
│   │   ├── socket.js         # Socket.io configuration
│   │   └── .env.example      # Environment variables template
│   ├── middleware/
│   │   └── auth.js           # JWT authentication
│   ├── events/
│   │   └── drawingEvents.js  # Real-time drawing events
│   ├── rooms/
│   │   ├── RoomManager.js    # Room management
│   │   └── RoomState.js      # Room state management
│   └── package.json
└── README.md

🎮 Usage

  1. Open the app in your browser
  2. Use the toolbar to select a drawing tool (pen, shapes, eraser)
  3. Draw freely on the canvas
  4. Share the room URL with others to collaborate in real time
  5. Use the Save / Export button to download your drawing

🤝 Contributing

Contributions, issues, and feature requests are welcome!

  1. Fork the repository
  2. Create a new branch: git checkout -b feature/your-feature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature
  5. Open a Pull Request

📄 License

This project is open source and available under the MIT License.


👤 Author

Kunal Yelgate

About

Platform which provide text-to-diagram AI integration, the board summarizer, or the core drawing canvas itself.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors