When building an app, it's important to understand how an end user may interact with your app through workspaces. This understanding will guide you in designing attributes and boards, and help identify some cases to test for.
In this article, we will walk through how users interact with apps using an example of a user analysing a precinct development with Kinesis' Sustainability app. This workflow can be generalised or extended to different use cases, apps, and attributes.
Setting up the workspace
The first thing a user does when starting a project is create a new workspace. A newly-created workspace will have the Kinesis Platform app added by default, which provides an overview of scenarios. They will then add your app (and any of its dependencies) to the workspace. They may add other apps to the same workspace.
At this point, there will be one scenario, the Baseline, with no locations. Your app should support being added to workspaces with locations or attribute values for those locations.
It is important to note that users may check your app's pre-configured boards at any point in this workflow. In the case of the example Sustainability app, the boards will show that there is no data until all required inputs have been entered.
Building scenarios
The next thing a user will do is build scenarios. Naturally, they will start by adding locations to the Baseline scneario. Locations can be added one at a time or imported (along with their attributes) from existing workspaces.
When creating a new location, the user is able to pick a point anywhere in the world by clicking on a map or entering exact coordinates. Most of the time, the locations will be somewhere you expect and fully support, however, it is important to remember that locations may be created in unexpected areas, such as:
Regions or countries that you don't have good data for
In the middle of the ocean
Somewhere without a road network
Borders of certain geographies
Once they have created the locations, they will now add values to relevant attributes to describe their scenario.
Here are some things to note about entering attribute values:
These attribute values can change over time with stages, and there may be stages where there are no set values for that attribute; in this case, they simply inherit the values of the stage immediately prior to them.
There can be some validation rules applied on the values that are defined by your app. For example an acceptable range for numbers, or a dropdown of options.
For attributes with multiple values, some fields may be populated while some fields may not.
For attributes where you can add items, there may be items that the user created themselves.
They can also change attribute settings:
The next thing they may do is build alternative scenarios that they want to compare. There are several ways to create new scenarios:
Adding a new scenario, which essentially duplicates the Baseline scenario
Duplicating another scenario
Making changes to an existing scenario then saving it as a new scenario
Other changes that can be made to scenarios:
Removing a location from a scenario
Undoing/redoing any modifications they've made within a scenario, prior to publishing their draft
Exploring outputs
Once the user has constructed a scenario, they would expect to see results in the boards. Users interact with boards to review the results provided by apps, understand the effects of certain changes in scenarios by manipulating views, or piece together a narrative to share with teammates.
When viewing a board, users can switch between scenarios to compare them.
They may delete blocks that they don't need, or add blocks from other boards that they want to view together.
Users can create their own visualisations using the outputs from your apps, and how you structure these outputs will affect how they configure these visualisations.
When interacting with visualisations, they can hover or select data points to view details, and scrub time when applicable to view how data changes over time.
They can also filter the data shown on visualisations.
This is a common workflow that users go through when interacting with apps and can be generalised or extended to different use cases, apps, and attributes.
Setting up the workspace
Building scenarios, and
Exploring outputs