Skip to content

Standalone flow editing tool designed for use within the RapidPro suite of messaging tools

License

Notifications You must be signed in to change notification settings

ycleptkellan/floweditor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status

Flow Editor

This is a standalone flow editing tool designed for use within the RapidPro suite of messaging tools but can be adopted for use outside of that ecosystem. The editor is a React component built with TypeScript and bundled with Webpack. It is open-sourced under the AGPL-3.0 license.

Prerequisites

NPM
Node.js >= 6.x

Installation

The flow editor uses npm for all dependencies.

% npm install

Building

Webpack is used to transpile TypeScript and SASS. After invoking a build, the compiled results will arrive in the /dist folder.

% npm run build:dev

or

% npm run build:prod

Development

You can run the editor in a development server. To start a development server, compile all necessary bits, and then launch your default browser with the results. The development server watches for changes to any TypeScript or SASS documents and automatically recompiles them.

% npm start

Hot Reloading

This project uses React Hot Loader to keep components mounted/preserve their state while in development.

Configuration

This project is currently configured via flowEditor.config.*.js in the root directory, which is loaded into the bundle as an external, Config, via Webpack. The ConfigProvider component composes the app's configuration and provides it to each component via React's context API.

Styling

This project uses SASS (SCSS) to compose styles and CSS Modules to scope those styles to components. Typings for CSS Modules are generated on the fly by typings-for-css-modules-loader.

Running Tests

This project uses Jest for unit/snapshot testing and Enzyme to test React components. Typescript and Jest are integrated via ts-jest.

% npm run test:local

Linting

This project uses both eslint (Node) & tslint (TypeScript) to enforce consistent style.

% npm run lint:es
% npm run lint:ts

Formatting

Prettier is used to keep formatting consistent.

% npm run prettify

Contributing

Please read CONTRIBUTING.md for details on this project's code of conduct, and the process for submitting pull requests to this repo.

Versioning

We use SemVer for versioning. For the versions available, see this repo's tags.

About

Standalone flow editing tool designed for use within the RapidPro suite of messaging tools

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 83.7%
  • CSS 8.6%
  • HTML 4.8%
  • JavaScript 2.9%