# Vrkflow [![CircleCI](https://circleci.com/gh/pixari/vrkflow/tree/master.png?style=shield)](https://circleci.com/gh/pixari/vrkflow)

> A (wip) flexible implementation of the step-by-step workflow/wizard pattern for VueJs and Vuex.

# Project 

**vrkflow** is a [mixin](https://vuejs.org/v2/guide/mixins.html) for Vue components and a store wrapper based on [Vuex](https://vuex.vuejs.org/guide/) which implements the functional part and the state management of a workflow/wizard pattern.

### Definition
It is the environment in which you define the steps, the workflows (set of steps), the navigation rules belonging to your wizard. It enables you to add and remove steps, to load and save data at any time. It is very flexible and you can use it with any UI implementation of your choice.

### Navigation
vrkflow supports two different navigation modes : _sequential_ and _not sequential_. 
By default the navigation is sequential and the user can just go 1 step backward/forward.
If a step is described as non sequential (_jump_), the user can directly jump to that specific step skipping those in between.

### Validation
vrkflow doesn't provide a specific validation system. It just doesn't allow the user to leave the current step until isn't not "completed". You can choose when and how to toggle this flag using one of the provided callbacks.

### Documentation
See [Project Documentation](https://github.com/pixari/vrkflow/wiki/Project).

### Roadmap
See [Project roadmap](https://github.com/pixari/vrkflow/wiki/Roadmap).

# vrkflow

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```

### Run your unit tests
```
npm run test:unit
```


