Coder Social home page Coder Social 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

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.