Git Product home page Git Product logo

drawflux's Introduction

drawflux

A collaborative virtual whiteboard tool for sketching diagrams.

drawflux

Features

  • Selection of tools - rectangle, ellipse, arrow, free-draw, text.
  • Customizable shape style - color, size, fill, opacity, line style, animation.
  • Shapes library.
  • Live collaboration.
  • Zoom and panning.
  • History undo / redo.
  • Export to PNG / JSON.
  • Offline support.
  • Dark Mode.

Local development

Pre-requisites

  • Node.js: >=18.17.0
  • pnpm: >=8.6.12

Install

Clone the repository to your local machine.

Install dependencies:

pnpm install

Docker

The docker-compose file sets up a posgresql database and the backend for you.
Alternatively you can also set up your own postgresql database, you will need to set environment variables for it to work.

Requirements:

Usage:

docker compose build
docker compose up
docker compose down

Development Mode

Make sure to build packages before starting the development mode:

pnpm packages:build

Run client in development mode:

pnpm dev:client

Run server in development mode (if you don't use docker-compose):

pnpm dev:server

Monorepo Essentials

Structure

├── apps
│   ├── client (react codebase)
│   └── server (express api)
└── packages
    ├── eslint-config-bases (eslint configs)
    └── shared              (utils, types, schemas, themes)

Scripts

Some handy scripts that can be run from any directory.

Name Description
pnpm dev:app Run server and client in dev mode with --stream flag
pnpm dev:client Run react client in dev mode
pnpm dev:server Run express server in dev mode
pnpm g:build Run build in all workspaces
pnpm g:typecheck Run typechecks in all workspaces
pnpm g:lint Display linter issues in all workspaces
pnpm g:fix-all-files Attempt to run linter auto-fix in all workspaces
pnpm packages:build Build all packages workspaces
pnpm packages:lint Display packages linter issues
pnpm packages:typecheck Run packages typechecks

Acknowledgments

Awesome open-source packages used in this project:

drawflux's People

Contributors

gkuzin13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

drawflux's Issues

What is the license?

Can you add license to this repo? I am interested in contributing to it and using it on my own project. To have license clearly stated would be necessary.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.