Code Monkey home page Code Monkey logo

noflo-ui's Introduction

NoFlo Development Environment Build Status

The NoFlo Development Environment is a client-side web application that helps users to build and run flow-based programs built with NoFlo and other compatible FBP systems.

Features

The NoFlo UI is still under heavy development. See the Kickstarter project for the full explanation of what is to come.

Projects

Full FBP projects stored on version control are not yet supported.

Sketches

Sketches are flow-based programs that are only stored locally in your browser's LocalStorage. These are intended for lightweight experimentation before actually moving the flows to real projects.

The sketches follow the same format as the example Gists explained below.

Examples

In addition to graphs developed by users, the NoFlo UI is able to load and run examples shared as Gists. The Gists used should contain a noflo.json file providing a JSON graph definition used for the example.

The examples should also provide the necessary information for running the example inside the environment key of the graph propeties:

  • runtime: html for client-side flows, websocket for Node.js server-side flows
  • content: optional HTML contents to insert into the UIs preview card
  • width: optional width of the preview card in pixels
  • height: optional height of the preview card in pixels

Please refer to an example Gist in https://gist.github.com/bergie/6608098 (you can also run it).

Managing server-side flows

In addition to being able to manage and run client-side NoFlo flows, the NoFlo UI is also able to run server-side NoFlo code (and indeed anything else compatible with the API). For NoFlo flows running on Node.js, you need to install and run noflo-ui-server. The NoFlo UI Server tool provides a web server that serves a version of the NoFlo UI.

Mobile app

In addition to the web version, the NoFlo UI also also packaged as a PhoneGap mobile app. This will enable us to provide it in an easier way and without unnecessary browser chrome to popular platforms like iOS and Android.

Development

To be able to work on the NoFlo UI you need a checkout of this repository and a working Node.js installation. Go to the checkout folder and run:

$ npm install

You also need the Grunt build tool:

$ sudo npm install -g grunt-cli

This will provide you with all the needed development dependencies. Now you can build a new version by running:

$ grunt build

If you prefer, you can also start a watcher process that will do a rebuild whenever one of the files changes:

$ grunt watch

In addition to this project, the other repository of interest is the dataflow graph editor widget used for editing flows.

Adding components

The HTML runtime of NoFlo utilizes a custom Component.io build of NoFlo that includes most of the common NoFlo component libraries that work with the browser. If you need to add new libraries, edit the preview/component.json file and rebuild.

Supporting other FBP systems

Even though the UI itself is built with NoFlo, it isn't talking directly with that for running and building graphs. Instead, it is utilizing the FBP Network Protocol which enables it to talk to any compatible FBP system.

If you want to integrate the UI with a new environment you need to provide some transport layer (for example, WebSockets) that can talk the protocol, and then implement runtime access for that in the UI. For showing the state of the runtime you may also want to implement a dataflow plugin.

noflo-ui's People

Contributors

bergie avatar forresto avatar jonnor avatar

Watchers

Lam Nguyen avatar James Cloos 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.