furmly-core
v1.0.3
Published
This is the backend processor for configurable dynamic tasks
Downloads
9
Maintainers
Readme
This is the core abstraction of furmly. It is divided in the following main concepts.
- Process
- Step
- Processor
- Form/Elements
- Async Processors
Process
A process like the name implies is represents everything needed for a user to complete a set of steps. It has a number of predefined steps. Rules:-
A process is a sequence of steps an actor or actors take to achieve a business goal.
A process must be uniquely identifiable system wide.
There can be several steps in a process but there must be atleast one step.
A process can describe its required steps.
A process can be returned to when not completed.
Processess are created with a unique id,title,description and steps.
Step
A step like the name implies is a task the user must complete to proceed towards the final goal. There are two types of steps namely:-
- Client:- these steps present an interface the user can interact with. All client type steps contain forms.
- Offline:- these steps don't have an interface. They could be used to start offline tasks.
Steps also have two distinct modes:-
- default:- steps in this mode require a processing after a user submits a form.
- view:- steps in this mode do not require any processing, i.e a user cannot submit this kind of step/form.
Rules:-
Steps can either involve collecting input from a user or from another system generated event.
A step must be uniquely identifiable within a process.
Steps can have a chain of processors but the chain must have atleast one.
Steps can have a chain of post processors but no minimum is required.
Steps requiring user input must contain a form.
Steps are created with id ,type and processors.
A step can describe its form and processors.
Client Steps require a form.
A form can describe its elements properties and validators.
Processors
Processors are snippets of code that contain business logic used to process several tasks during the lifecycle of a process. When steps are completed and submitted ,processors are responsible for processing the user input.
Processors can modify the regular flow of steps.
Processors are uniquely identifiable system wide.
Processors can create entities
Processors can edit entities.
Processors can delete entities.
Elements/Form
A form is a collection of elements presented to a user. Elements describe the type of information required by the form/step. Elements can contain other elements.
A form must contain atleast one element.
An element can contain any number of validators.
Validators can either run on the clients machine or externally.