In this conceptual stage, let’s decide how each object type page should look.

For each object page, we’ll define its:

  • Attributes = stored data
  • Components = displayed features and visuals

By defining these details now, we create a clear blueprint for what needs to be implemented in the package later.

The table below outlines what each object type’s of our Recipe Manager application will need. For example, the Cuisine object type will include a description and a table of recipes.

Object TypeAttributesComponents
CuisineDescriptionTable of Recipes
RecipeDescription Last MadeTable of similar recipe recommendations Diagram with recommendations
[Right-side panel] Recipe creator/Best cook selector Easy/Medium/Hard label selector
Ingredients ListDescriptionTable of Ingredients
Ingredient TypeDescription Out of StockList of Recipes the ingredient is used in Diagram with relations
[Right-side panel] Ingredient season label selector

Understanding Attributes and Components

For this tutorial, we’ll break down the table into two parts to examine attributes and components separately. This distinction is necessary because attributes and components are defined in different assets in the package.

Attributes

Seeing the attributes listed for each object type helps identify what needs to be defined in the package and what attribute types you need.

For example, if you want a “Last Made” attribute, configure a date selector for it. Similarly, if you want an “Out of Stock” checkbox, specify it as a boolean type attribute.

In other words, for our Recipe Manager, we’ll need five text attributes for descriptions, one date attribute for ‘Last Made,’ and one checkbox attribute for ‘Out of Stock.‘

Object TypeAttributesAttributes Type (Feature)
Space App OverviewDescriptionTextbox
CuisineDescriptionTextbox
RecipeDescription Last MadeTextbox Date selector
Ingredients ListDescriptionTextbox
Ingredient TypeDescription Out of StockTextbox Checkbox

Components

Components are the building blocks used to define the visual and functional aspects of pages, dashboards, and other UI elements in your Dawiso environment.

Although components are also used to display the attributes from the previous section, in this step, we’ll take a look at the components that dynamically pull data based on API endpoints or their placement within the app. When planning these components, you will need to determine:

  • The component type (e.g., table, diagram).
  • What kind of information it needs to display (e.g., what kind of columns, attributes, or relations).
Tip

Having a clear picture of how an object type’s page will look makes it easier to determine whether a component type can be reused.

For example, if two object types require a table with the same structure (e.g., columns for Object Name, Data Steward, and Parent Object), you can reuse the same component for both.

In our example, however, none of the components will be reusable. Each component will be tailored to its specific object type and purpose.

Object TypeComponentComponent Type
Space App OverviewList of all objectsTable 1
CuisineTable of RecipesTable 2
RecipeTable with recommendationsRelations table 1 (manually added relations)
Diagram with recommendationsRelations diagram 1
Right-side panel
Recipe owner and Best cook selectorsSelect box with users
Easy/Medium/Hard labelSelect box 1
IngredientsSelect box 2
Ingredients ListTable of IngredientsTable 3
Ingredient TypeDescriptionRelations table 2 (manually added relations)
Relations DiagramRelations diagram 2
Right-side panel
Spring/Summer/Autumn/Winter/Year-round labelSelect box 3

Next Step: Add Functionality

Once the structure of your object types and pages is clear, you can further enhance your app’s functionality by adding custom assets like workflows, diagrams, and comments. These elements define how users interact with the data, visualize relations, and collaborate effectively.

<— Back to: Define Object Types and Their Relations Next: Decide on Custom Assets —>