# CanvasX README

## Introduction

Welcome to **CanvasX**! CanvasX is an open-source collaborative digital whiteboard centered with sticky note expereinces and designed to empower individuals and teams to work together seamlessly. Forked from Fabric.js, CanvasX aims to enhance the collaborative experience by providing robust features that support real-time interaction, visual collaboration, and integration with AI-driven tools.
 [Demo Page](https://boardx-demo.pages.dev/)
![Screenshot 2024-05-15 at 11 28 47 AM](https://github.com/boardx/canvasx/assets/2325074/48756376-fdcc-4d1f-9952-f23538ca6114)

## Table of Contents

- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Documentation](#documentation)
- [Contributing](#contributing)
- [License](#license)
- [Community](#community)
- [Contact](#contact)

## Features

- **Real-Time Collaboration**: Multiple users can work on the canvas simultaneously with real-time updates.
- **Rich Object Manipulation**: Create, modify, and delete various objects (shapes, images, text) with ease.
- **Version Control**: Track changes and revert to previous versions of the canvas.
- **AI-Driven Recommendations**: Get suggestions and enhancements powered by AI.
- **Customizable Tools**: Extend and customize tools to fit your specific needs.
- **Integration with BoardX**: Seamlessly integrate with BoardX for a unified collaboration experience.
- **Responsive Design**: Optimized for various screen sizes and devices.

## Installation

To get started with CanvasX, follow these steps:

1. **Clone the Repository**:
    ```bash
    git clone https://github.com/boardx/canvasx.git
    cd canvasx
    ```

2. **Install Dependencies**:
    ```bash
    npm install
    ```

3. **Run the Development Server**:
    ```bash
    npm start
    ```

4. **Open CanvasX in Your Browser**:
    Navigate to `http://localhost:3000` to start using CanvasX.

## Usage

Here's a quick guide to help you get started with CanvasX:

1. **Creating Objects**: Use the toolbar to add shapes, images, and text to the canvas.
2. **Collaborating**: Invite team members to join your session and collaborate in real-time.
3. **Saving Your Work**: Save your canvas state locally or export it as an image or JSON file.
4. **Version Control**: Access the version history to track changes and revert to previous states.

## Documentation

For detailed documentation on how to use CanvasX, visit the [CanvasX Documentation](https://github.com/boardx/canvasx/wiki).

## Contributing

We welcome contributions from the community! If you'd like to contribute, please follow these steps:

1. **Fork the Repository**: Click the "Fork" button at the top of this page.
2. **Create a Branch**: 
    ```bash
    git checkout -b feature/your-feature-name
    ```
3. **Commit Your Changes**:
    ```bash
    git commit -m "Add your commit message here"
    ```
4. **Push to Your Branch**:
    ```bash
    git push origin feature/your-feature-name
    ```
5. **Create a Pull Request**: Open a pull request from your forked repository on GitHub.

For more details on contributing, please refer to our [Contributing Guide](CONTRIBUTING.md).

## License

CanvasX is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.

## Community

Join our community to stay updated and collaborate with other CanvasX users and developers:

- [Discussion Forum](https://forum.boardx.us)
- [Slack Channel](https://boardx.slack.com)
- [GitHub Issues](https://github.com/boardx/canvasx/issues)

## Contact

For any questions or inquiries, please contact us at [support@boardx.us](mailto:support@boardx.us).

---

We hope you enjoy using CanvasX and look forward to your contributions to making it even better!
