Skip to content

AOT-Technologies/forms-flow-ai

master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.

FormsFlow WEB CI FormsFlow API CI FormsFlow BPM CI Join the chat at https://gitter.im/forms-flow-ai/community Join the chat at https://stackoverflow.com/questions/tagged/formsflow.ai

formsflow.ai is an open source solution framework developed and maintained by AOT Technologies. The framework combines selected open source Forms, Workflow, Analytics, and Security products with custom-built integration code to provide a seamless solution that provides a viable alternative to expensive, enterprise software products.

Table of Contents

  1. Introduction
  2. About the Project
  3. Download and Installation
  4. Project Tree
  5. System Architecture
  6. Security Instructions
  7. System Operation
  8. Quick Start
  9. License
  10. Links

Introduction

A brief introduction about formsflow.ai is given below.

Introduction

About the Project

The project was initiated by AOT Technologies as a means of addressing the general situation whereby end-users fill in a form, the form is processed and there may be a requirement to report on the form metrics or data.

Typical use cases are:

  • Applications for licenses
  • Public submissions
  • FOI requests
  • Applications for funding
  • Statements of compliance
  • Employee onboarding
  • Performance Reviews
  • Emergency processes
  • Escalations
  • Surveys
  • Case Management

Features

  • Drag-and-drop forms-builder with rich UI components
  • Lightweight server-based workflow engine with full capabilities including human, parallel, asynchronous and timed flows, decision engine, and graphical designer
  • Notifications engine for notifications, reminders, and alerts on tasks and even data thresholds.
  • Metrics and data visualization dashboards for the display of key workflow and form data
  • (future) Multi-tenancy isolation
  • Containerized deployment with docker, docker-compose, and Openshift
  • Flexible Identity Management uses existing IDM systems for authentication and single sign-on

Download and Installation

  • If you want to download and setup, follow the installation guide, you will find step-by-step instructions to download and install.
  • For Docker based single click installation follow the instruction from here

Project Tree

System Architecture

formsflowai component architecture

Components

The components of the system are:

formsflow UI

Browser-based React integration web UI Most of the day-to-day end-user and review tasks are performed from this application, built specifically to act as a common UI combining forms, workflow, and analytics functionality. The web application is written as a progressive app with the potential for offline data-entry. formsflow UI accesses the individual system component data through native API's using OIDC or SAML access tokens.

formsflow UI Extension for Vue.js (optional)

There is a Vue.js based web user interface for easy integration of formsflow.ai to your existing User Interface. This extension provides components for easily using Forms, Tasklist by installing as a npm package. To know more details checkout formsflow-ai-extension repository and to install package go here.

Redash Admin UI

The native admin interface to Redash (bundled and unchanged). Use this to build analytics dashboards.

Redash API

The REST interface to the Redash core. Bundled and unchanged

Form.io API

The REST interface to the form.io core

Camunda Admin UI

The native admin interface to Camunda (bundled and unchanged) . Use this to define workflows and to manage workflow tasks as an admin.

REST API

Python REST API providing business logic around the internal formsflow.ai Postgres database. This API is used extensively by the formsflow.ai UI to synchronize, maintain state, extend functionality, and integrate between components.

Nginx Web server (optional)

Webserver providing reverse-proxy redirection and SSL to components for remote deployments. ( bundled and configured )

Keycloak Identity management server

The system uses an existing (your) Keycloak server which provides a common identity management capability. The system provides default installation and provisioning of the Keycloak server for local setup, steps are mentioned here. However, you can setup your own Keycloak server and follow the provisioning steps here.

Security Instructions

To secure formsflow.ai and understand authorization roles follow the documentation on Security Setup.

System Operation

In general, the operation is as follows :

Note The URL links assume a local installation on the default ports as per the installation instructions:

Client

  • End-user logs into formsflow.ai UI at URL- http://localhost:3000/
  • User is redirected to Keycloak via OIDC where user's roles are returned as OIDC claims in a JWT
  • User selects a form from the list of forms available. The available forms can be filtered by the user group with advanced configuration, by default the user sees all forms published. Form details are provided through form.io
  • The user fills in the form and submits it
  • The form data is added to the Mongo DB. Details of the transaction are added to the Postgress DB
  • A task is created on the Camunda server corresponding to the form type
  • Notifications are sent to reviewers associated with that task type

Reviewer

  • Reviewer logs into formsflow.ai UI at URL- http://localhost:3000/
  • Reviewer is redirected to Keycloak via OIDC where the user's roles are returned as OIDC claims in a JWT. The fact that the reviewer has a reviewer role from Keycloak enables additional capabilities in the UI.
  • Reviewer accesses task from task list. Tasks are retrieved through the Camunda API, filtered by the reviewer group memberships mapped between Keycloak and native Camunda.
  • Reviewer claims a task and processes it. The task moves to the next step in the workflow, with appropriate notifications and actions specific to that workflow.
  • Reviewer can access forms from the forms list, filtered by the group permissions of the user groups as per advanced configuration.
  • Reviewer can access metrics data from the Postgres database filtered according to the configuration. formsflow.ai UI renders these metrics into usable pages.
  • Reviewer can access Redash analytics dashboards (as iframes).

Designer

These users are responsible for accessing the native capabilities of the embedded products to configure analytics dashboards, create and manage workflows, and create and manage forms. It is beyond the scope of this document to describe the detailed functionality of these products, however, the general process is :

  • Access product URL as follows:
  • The login process is the same for all of them except for forms-flow-forms where separate credentials can be configured, redirect to Keycloak as OIDC (SAML for Redash), and obtain the appropriate JWT + claims.
  • For the forms designer, the FormFlow UI recognizes the additional role of forms-flow-designer and enables a form design capability
  • For Redash and Camunda, there is a mapping in the configuration file which needs to be setup between forms-flow-analytics and forms-flow-bpm and the corresponding groups in Redash and Camunda respectively. This is all covered in the installation instructions.

Managing Forms

  • Login to http://localhost:3000/ using valid designer credentials
  • Navigate to menu Forms
  • Click the button + Create Form to launch the form designer studio.
  • Design the form using Drag and Drop of components from LHS to RHS and publish by clicking the button Create Form.

To know more about form.io, go to.

Managing Workflows

Managing Analytics Dashboard

Quick Start

We recommend you visit Web site and read the "Getting Started" page.

License

Copyright 2020 AppsOnTime-Technologies 2020

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Links