FlowApp
Fractaltech
4.10.3 Varies with device
Any business comprises of processes that are carried out by people.
A few examples of processes would be item delivery, procuring inventory, hiring, sales, market-research, order management etc

Any such business process can be described using 3 things:
1. A Form, which provides a data-structure to represent what the process is operating on. Let's call each entry in this form an "entity".
2. Statuses, which act as an indicator of the progress of each entity moved in a process
3. Steps, which constrain the movement of an entity to, and from a status

Using `FlowApp`, when creating a `Flow`, you create an associated form, and the statuses that would be needed in a process.
You also create steps of the process, which constrain the movement from and to a status.

As an example, let's consider a flow for "item delivery".
- Its form will contain the fields:
Item Id,
Customer Name,
Customer Address,
Receiver's Signature

- Its statuses will be:
ready,
dispatched,
undelivered,
returned,
cancelled,
delivered

- Its steps will be:
ready->dispatched,
undelivered->ready,
dispatched->undelivered,
dispatched->returned,
dispatched->cancelled,
dispatched->returned

Once you are satisfied with the flow you have created, you activate it, and next we come to "Teams"

When a form is activated, by default it has an "admin" team, which has all the permissions, and can perform all the steps.
When you create a new team, which can be the "delivery" team in case of our example flow, you select what all actions it can perform,
and what all steps it can move the managed "entities" through.

Available permissions are: view, update, delegate, delete, comment(this one is useless at the moment)
Available steps are defined when creating a flow.

Extending our example of item delivery, the "delivery" team will probably have no permissions, and will have all the steps
starting from "dispatched" status accessible to them. Which are:
- dispatched->undelivered,
- dispatched->returned,
- dispatched->cancelled,
- dispatched->returned

Along with all this, there is something called "states" in our app. Each status is created under a state. One of the states is "UNSYNCED".

If the dispatched status is created under "UNSYNCED" state, all "entities" which are moved to dispatched will get downloaded to the phone
of the user assigned to them, and will be available offline on their phones until the assigned user moves them to another status.

Content rating: Everyone

Requires OS: 4.2 and up

...more ...less