No description
Find a file
2023-08-06 21:20:31 +01:00
.circleci fix: forces case sensitive dir names through Git 2023-07-25 16:31:06 +01:00
.codesandbox feat: adds codesandbox config 2023-07-29 10:04:13 +01:00
.vscode refactor: integrates the renderer with react 2023-07-20 16:45:54 +01:00
src feat: adds utility methods on the window for debugging 2023-08-06 21:20:31 +01:00
webpack feat: adds utility methods on the window for debugging 2023-08-06 21:20:31 +01:00
.eslintrc feat: implements group rendering (UI not implemented yet) 2023-07-26 13:04:27 +01:00
.gitignore chore: configures CI 2023-03-16 21:27:09 +00:00
.nvmrc chore: adds an nvmrc file to ensure consistent node version 2023-08-05 09:54:31 +01:00
.prettierrc refactor: integrates the renderer with react 2023-07-20 16:45:54 +01:00
jest.config.js feat: implements group rendering (UI not implemented yet) 2023-07-26 13:04:27 +01:00
LICENSE Adds license 2023-03-08 20:35:02 +00:00
package-lock.json 0.3.42 2023-08-05 09:52:45 +01:00
package.json 0.3.42 2023-08-05 09:52:45 +01:00
README.md chore: updates README with link to Github repo 2023-07-29 10:20:26 +01:00
tsconfig.json revert: fix: excludes node_modules from type checking 2023-08-05 09:52:28 +01:00

readme-header

GitHub License MIT CircleCI

A highly customizable React component for building interactive network diagrams.

MIT licence | Source available on Github | Use it now on isoflow.io

Key Features

  • Real-time: Display real-time data on diagrams.
  • Customizable: Use your own isometric icon packs, or use our free set of networking icons (also under MIT).
  • Export options: Export diagrams as images, JSON or YAML.
  • Powerful annotation tools: Annotate nodes, groups and connectors.
  • Step-by-step walkthroughs: Create interactive tours of large diagrams to help viewers easily digest information.

Roadmap

Migration to open-source: ██░░░░░░░░░

  • Set up automated publishing to NPM registry
  • Migrate private JS project to public Typescript project
    • Pan / Select / Zoom modes
    • Display icons in itemControls
    • Node controls
    • Group controls
    • Connector controls
  • Publish icons as separate importable package

Installation

Note: Isoflow is currently in development and NOT production ready. To view it's current state of development:

npm install isoflow

import Isoflow from 'isoflow';

const scene = {
  icons: [
    {
      id: "block",
      name: "Block",
      url: "https://isoflow.io/static/assets/icons/networking/primitive.svg",
      category: "Networking",
    },
  ],
  nodes: [
    {
      id: "a_node",
      label: "A node",
      icon: "block",
      position: {
        x: 0,
        y: 0,
      },
    },
  ],
  connectors: [],
  groups: []
}

const App = () => (
  <Isoflow
    height={500}
    scene={scene}
  >
)

If using Next.js, make sure you only import Isoflow in the browser:

const Isoflow = dynamic(() => import("isoflow"), {
  ssr: false,
});

Development setup

  1. Clone the repo
  2. npm i
  3. npm run start
  4. Visit localhost:3000 in your browser

Codesandbox

You can preview the latest version of Isoflow on Codesandbox here. The sandbox is always synced with the Github repo. You can make changes by forking the template.

To deploy to npm

CI is sensitive to any tag pushed to main branch. It will build and deploy the app to NPM. To deploy:

  1. Bump the version using npm version patch or similar
  2. git push && git push --tags

Contributions

Branching Strategy:

Branches are named using the following convention:

  • feature/ for new feature implementations
  • fix/ for broken code / build / bug fixes
  • chore/ non-breaking & non-fixing code changes such as linting, formatting, etc.

Commit / PR Strategy:

  • Commits are to be squashed prior to merge
  • PRs are to target a singular issue in order to keep the commit history clean and easy to follow

See good first issues.

License

Isoflow is MIT licensed (see ./LICENSE).