Crowd-timing Breakfast

Case Study #1: Crowd-timing Breakfast

1 May 2014 – by Andrew McGrath – Brisbane, Queensland, Australia

“When can you make the Masterclass breakfast?”

An 80% configuration, 20% coding adventure



In recent years I have taken a strong interest in Change Management with respect to understanding the psychology behind facilitating change in large organisations.

As a software developer, I have struggled for many years with introducing new information management paradigms into large businesses in Australia. These have often been major engineering companies and mining infrastructure construction projects.

As an introduction to the SiteStudio platform, this case study details how to rapidly create and configure a small system to better manage the breakfast group that I am coordinator for.


Lunch with a major bank CIO

My change management journey began in earnest a few years ago at a free lunchtime university lecture delivered by the CIO of a major Australian bank. The CIO spoke about introducing the cloud-computing paradigm to the bank in order to prepare the bank for the future. Instead of a technology centric lecture, the CIO devoted most of his presentation to the challenge of changing the culture within the bank. Culture change was the main challenge faced by the organisation in adopting this new paradigm.

The talk resonated very strongly with my own experience.


Change Management

As a result I joined the local Chapter of a change management industry group. We will refer to this industry group as Queensland Change Management or the acronym QCM.

One of the key ways I have learnt about change since joining QCM has been the QCM Masterclass Series where a small group of people (up to ten) sit around a table for breakfast. At each monthly breakfast two or three participants present on a change management topic of their own choosing. Topics have included Stakeholder Engagement, Resistance to Change, and Change Management for Project Managers.

After completing three of these series, I am now group coordinator.


The Problem

One challenge when coordinating such a group is keeping track of who is available on which date. Of course I could just mandate the date but some people might miss out on a valuable session.


The Solution

This is where my other interest – enabling people with even a moderate amount of technical skill to solve their own information management challenges in innovative ways – comes into play.

So let’s explore how various capabilities of the SiteStudio platform help us achieve the desired outcome for the Masterclass Series participants.

Click the following links to jump to the related section or simply keep scrolling down.

1)    Create a new SiteStudio system
2)    Add users to the new system
3)    Import database table definitions
4)    Verify and adjust metadata
5)    Modify form layouts to suit
6)    Adjust record list queries
7)    Add/Change record list columns
8)    Select code template for main interface form
9)    Customise source code for main user form
10)    The end result
11)    The future – empower other Chapters

Note: Each section starts with a Summary subsection. It may be easier to read these the first time through before diving into the Detail subsections.


1)    Create a new SiteStudio system


Each SiteStudio system contains three types of modules:

1.    End user modules for interacting with the current system (eg Employees, Labour Hours, Employee Leave, Notifications)
2.    Metadata modules for managing the current system ( eg Modules, Worksheet Queries, Standard Worksheet Columns, Module Permissions, User Favourite Modules)
3.    Platform modules for managing your collection of SiteStudio systems. (eg Systems, System Modules, Client Notifications)

End User, Metadata, Platform

 Three types of SiteStudio Modules



Users with Administrator level permissions can create a new SiteStudio system from within any existing SiteStudio system via the Systems module by following these steps:

1. Log into the Control Panel SiteStudio system

SiteStudio Login

Log into SiteStudio


2. Click Systems in the Favourites list (Platform modules appear in a lighter colour after other modules)

SiteStudio Favourites Menu

SiteStudio Favourites Menu

3. Enter a name for your new system. For example “QCM”.
4. Press tab and remainder of the form auto-fills.
5. Click Save and the new system will be created from the latest available SiteStudio platform source code.

Create New System

Create New System

6. After a short while, a message notifies you that the new system has been created and that you will receive an email with a link to the QCM system.

New System Email

New System Message

7. Click the link in the received email to the new system.


2) Add users to the new system


The SiteStudio platform enables you to centrally manage the assignment of users to your various systems via the SiteStudio Control Panel system.



After logging into the Control Panel system:

1. Click the Users module
2. Click New and enter details for each new user in the system (in this case each of the Masterclass attendees).

Add New User

Add New User

3. Click on System Users module and then click Manage By System
4. Choose the “QCM” system from the list of Systems
5. “Include” each of the new users and choose to copy your permissions to the new user (in this case “amcgrath”)
6. Click Save

Manage System Users

Manage System Users

The new users are now setup to use the QCM system.


3) Import database table definitions


There are several methods available to create modules in the SiteStudio system.

1. Design modules via the Form Designer (inside every SiteStudio system)
2. Import spreadsheets of existing data to create modules
3. Import spreadsheets that contain table definitions of a group of modules

Modules for the QCM system will be setup via option 3.

The table definitions have been drawn up in Excel as per below.

Excel Diagrams of Table Definitions

Excel Sheet of Table Definitions



Some important points to help explain the nuances of this spreadsheet:

1. The first row of each table definition contains the name of the database table. (eg MasterclassAttendees, MasterclassSeries, MasterclassSessions)
2. Below the table name are the field names for that table.
3. The first field is the automatically generated unique identifier for the table. Technically, unique identifiers are 128 bit numbers that uniquely identify each record. We use these rather than an AutoNumber to make synchronization with mobile devices possible. This is also the field that is used to join other tables that lookup this one.
4. Any field that ends with capitalised “ID” is considered a unique identifier field.
5. We can specify a field as optional by including (o) somewhere after the field name.
6. Fieldnames that end with “Date” are considered to be DateTime fields.
7. For various data types you can use (int), (integer), (float), (real), (double), (single), (bool) to denote them.
8. Any field that does not have an ID, Date or a specific data type identifier will be considered to be a text field.
9. The default text field is 100 characters, to specify a different size, signify this as (200) for example. To specify the maximum size use (Max).
10. To specify that the text field should be displayed as a multiline textbox use (multi) as part of the definition.
11. To signify that a field should be a dropdown list, follow the fieldname with a semicolon and then the name of the module that it looks up (eg “: Users”)
12. Separate all extra information related to fields with spaces.

To import this schema:

1. Click on Configurator Go To under the Favourites list
2. Choose Schema Imports from the list

Configurator Go To Menu

Access Schema Imports from Configurator Go To Menu

3. Click New and fill in appropriate details

New Import Schema

New Import Schema


4. Click Save
5. Click on the newly created schema in the Schema Imports record list.
6. Click on Upload Schema
7. Choose the Excel spreadsheet and click Ok.
8. The system will then interrogate the spreadsheet and report back the number of modules found.
9. Click Save
10. At this point you can go into Schema Tables and Schema Fields to verify that the metadata is correct.
11. Next, go back to Schema Imports and click on the schema name again.
12. Choose Import Modules
13. The system will then turn each module specification into a module with related attributes as shown in the diagram below.

[ToDo: Show imported module information]


4) Verify and adjust metadata


You can view, verify and update details related to the imported modules by filtering for “Masterclass” in the System Modules and Fields modules of the Platform.

This includes setting up Dropdown Queries to create lists for some modules that can be chosen from a dropdown list when adding records to another module.



Verify Modules metadata

To verify metadata related to the imported modules:

1. Click on System Modules in the Favourites list
2. Type “Masterclass” into the entry field to the right of the dropdown showing “Contains” and press Enter. This will filter the list for “ModuleName Contains Masterclass”.
3. Click on any of the found rows to view/modify details related to the module

Verify Fields metadata

To verify data field metadata:

1. Click on Fields in the Favourites list
2. Type “Masterclass” into the entry field to the right of the dropdown showing “Contains” and press Enter. This will filter the list for “ModuleName Contains Masterclass”.
3. Click on any of the found rows to view/modify details related to the data field

Add Dropdown Queries

Several of the new modules provide data in dropdowns for use in other modules. To setup MasterclassSeries as a dropdown and consume it in MasterclassSessions:

1. Click DropDown Queries in the Favourites list
2. Click New
3. Choose “MasterclassSeries” from the System Module dropdown
4. Notice that most the fields are automatically populated

[ToDo: Show populated New DropDown Query Form]

5. In this case there are no further modifications required so click Save
6. Next click on Fields in the Favourites list
7. Filter for “MasterClassSessions” and open the MasterClassSeriesID field record
8. Change the Control Type to “ComboBox” and you will see that the Dropdown Query value is automatically populated.
9. Click Save


5) Modify form layouts to suit


In SiteStudio we can modify the size and location of controls to better suit the data we will be entering.



As an example, we will extend the length of the First Name textbox in the Master form. To do this:

1. Click on System Modules in the Favourites list
2. Filter for “MasterclassAttendees
3. Click on “MasterclassAttendees
4. Click Designer on the top menu
5. Click on the FirstName textbox (to the right of the label that says “First Name”)
6. On the right side of the screen the attributes for this field are displayed
7. Scroll down to the Control Width property and change it to “160” for example.

[ToDo: Show the Designer Field Info panel]

8. Click Save and a message saying “Module Saved” will display.
9. To verify that the change we have just added is live, you can click on Masterclass Sessions in the Favourites list and click New.


6) Adjust record list queries


The first of two steps in fine-tuning the information that the user sees in record lists is achieved via the Worksheet Queries module.

Any data that makes it into these queries are both queryable via the record list form and exportable regardless of whether a matching column is created in the Standard Worksheet Columns module.



As an example, let’s customise the Masterclass Attendees record list query:

1. Click on the Go To button towards the bottom left corner of your browser
2. At the top left of the browser type in “Worksheet Queries” to filter down to that module
3. Click on Worksheet Queries
4. Filter for “ModuleName Contains Masterclass
5. Click on Masterclass Attendees
6. Replace the current Query String with the following:
SELECT MasterclassAttendeeID, UserName, FirstName, LastName, MasterclassAttendees.EmailAddress, PhoneNumber FROM MasterClassAttendees LEFT JOIN Users ON MasterclassAttendees.UserID = Users.UserID ORDER By LastName, FirstName

7. What we have done here is to replace the UserID field (a 128 bit number) with the corresponding UserName value from the Users database table.
8. Click Save

[ToDO: Show WorksheetQueriesEdit Form]


7) Add/modify record list columns


The second step in fine-tuning what the user sees in record lists is to determine what to show. This is achieved via the Standard Worksheet Columns module.

The default record list columns generated when the schema is imported often need some refining to make the record lists useful.



Following on from the previous section, let’s update the columns that show for the Masterclass Attendees record list. To achieve this:
1. Click on the Go To button towards the bottom left of the browser window
2. In the textbox at the top left of the browser window filter for “Standard Worksheet Columns
3. Filter for “Masterclass Attendees
4. Click on the UserID record
5. Change Column Name to “UserName
6. Change Column Title to “User Name
7. Click Save
8. Now click on “Masterclass Attendees” in the Favourite Modules list to see the User Name column


[ToDo:  Show Standard Worksheet Columns Edit Form]


8) Select code template for main interface form


Some complex actions, such as categorising records, occur regularly enough when developing systems like QCM that it is useful to keep templates of this capability on hand.

This is where the Code Templates and Code Template Source Code modules enter the picture.

You can choose from pre-existing templates or add your own.



For this example the full required code has been provided. First let us see where this code is stored and how you can manage future code templates

1. Click on the Configurator Go To button (bottom left corner of browser window)
2. Filter for and click on “Code Template Source Code
3. Click on any of the records there to see the source code that is stored for them

Next we will replace the NewEditRecordForm for the Masterclass Session User Date Options module:

1. Click on System Modules in the Favourites list
2. Filter for “Masterclass Session User Date Options” and open this System Modules record
3. Click Designer in the top menu (See Form Designer screenshot below)
4. With the Web New/Edit form tab displaying and Web New/Edit code tab currently selected, right click on the Web New/Edit code tab title and choose “Choose Code Template” from the context menu
5. Select “Masterclass Session User Date Options” from the list that is then shown
6. You will then see that the previous code for the Web New/Edit code tab is replaced. Also added is a Web New/Edit Designer code tab. This tab replaces the form at the top of the screen for managing what is displayed on the form.
7. You will also notice that a Web View code tab has been added as this is part of the same code template. The reason for the Web View code tab was so we could replace the New menu at the top of the form with a Manage menu title. We will see this in action shortly.
8. Click Save

[TODO: Show Form Designer]



9) Customise source code for main form


Now that we have replaced the NewEditRecordForm for the Masterclass Session User Date Options module, we can customise the source code to suit our requirements.



In this case, we have dropped in all the required code for the Masterclass Session User Date Options module.

There are no further modifications required.

Had we wanted to modify any code, we can do this via the Form Designer window that is accessible via the System Modules module.

Here is the code from the template. Hopefully someone in your organisation is up to the task if any customisations to it are required.

[TODO: Show code template source code]


10) The end result


As a result of this exercise, all members of the Masterclass Series are able to maintain their availability as per the screenshot below.

[TODo: Masterclass screenshot]



The speakers (who must attend) are denoted with an orange background while the currently logged in user has a blue background.


11) The future – empower other CMI Chapters


One of the benefits of using a platform like SiteStudio to create capability is that you can store capability and easily reuse it when the need arises.

For example, other Chapters may want to use this capability and may want to customise it to suit their particular situation.

Other capabilities are in final testing and will be released soon. Watch this space.



The SiteStudio Platform includes the ability to link and clone capabilities across systems.

Linking refers to capability that is identical across all systems and any changes to the capability are reflected in all systems.

Cloning refers to making a copy of a capability and any subsequent changes to the copy are not synchronised with the original.



Thank you for reading

We hope you found this useful in understanding how easily one can build powerful, enduring and easy to manage capabilities to better manage the world of information we live in.