Viewflow is a reusable workflow library that is Django-friendly, easily customizable and ready to use. It was designed for Business Processes automation, back office implementation, and people collaboration software. There are not many workflow libraries for Django and Viewflow provides explicit, multi-user, static workflow with support for parallel tasks execution and complex split/joins.
How does it work? During usual web development with Django flow is scattered over the view code. Flow modifications are complicated, since object updation and the background task activation are done in the same place. Viewflow introduces a separate Flow class as a new layer on top of Django infrastructure. All flow code is extracted there and made explicitly visible. Using Flow class developers can define logic and manage all users activities, background jobs and operations. Separation of Process and Task code makes it more maintainable, easily customizable, testable and reusable in different workflows. Moreover, this separation allows to change workflow logic quickly without meddling with views or web screens code.
One of the main Viewflow goals is to help with Business Process Modelling Notation. BPMN is rich notation for describing processes and is very popular as the software specification for the websites. By offering a powerful set of API to express BPMN in code Viewflow takes care of concurrent updates, user permission checking, task state management, and parallel task synchronization.
Additionally, Viewflow provides build-in dynamic formset support and optional but handy pre-build UI. These tools allow to embed custom views and get immediate feedback from website users. Process details pages with pre-built task lists and queues offer easy way to navigate available flows.
Main Viewflow features:
- simple integration with Django views/signals/models;
- user and background tasks support;
- complex Split/Joins for parallel task execution;
- user interface similar to Django Admin for the tasks management;
- support of third party Django apps;
- boilerplate URLs registration and permission checks handling.
Viewflow is a Python-friendly workflow library that tries to provide the best tools for business processes and workflow automation. Basic Viewflow is free and open source. Although, if you want to extend its benefits you can use Viewflow PRO delivered under commercial license. It provides Python 2.7 support, compatibility with Django live versions < 1.6, subscription for the hotfix and backports, and priority email support. To know more visit viewflow.io.