menu
app outline

How to create an App outline

An App outline is used to specify how, exactly, your App should work. With an outline, we can quickly deliver a prototype.

Your App outline is not a comprehensive specification for your App; it's simply an outline of what information your App needs to collect in order to achieve its purpose.

An App outline consists of two parts:

  1. A copy of this spreadsheet template that includes all the information required by your App to populate your chosen document templates; and
  2. Copies of each document template with labels indicating where each piece of information should go.

An App outline does not include explainer text, images, style choices, etc. All of these details are important but technically irrelevant as they do not relate to the information your App needs to collect. You can easily add details to your App after the prototype is made.

In this guide:

Background: An intro to variables
Part 1: Spreadsheet
Part 2: Document templates
Download example
After you make an outline

Background: An intro to variables

The essential purpose of your App outline is to describe what information is required to populate your chosen document templates. Each piece of required information is known as a "variable."

How do you identify a variable? i.e. how do you identify all the pieces of information your App needs to collect in order to populate its document templates? 

The answer: look at your documents.

Sometimes, it's obvious from looking at your document what pieces of information are required. For example, to populate this section of a document it's obvious the App needs to collect the end-user's name and an address:

But what about this section: how does the App know where to populate the end-user's name? 

Does the name go on top of "Petitioner" or "Respondent"? To answer that question, the App requires an additional piece of information: the end-user's role in this legal matter.

The lesson here is that not every piece of information your App requires is a "blank space" on the document template itself. Sometimes, your App requires meta information which is then used to populate a "blank space" with another variable.

In the example above, the variable 'user_role' is a meta piece of information that is used to determine where the variable 'user_name' will be populated, i.e. above the line for "Petitioner" or the line for "Respondent."

Terminology

  • Each piece of information required by your App has a label known as a variable label. For example, 'user_name' and 'user_role' (from the examples above) are variable labels.
  • When a variable gets a value we say that it has been defined. The most common method for defining a variable is with a question. For example, the question "what is your name?" can be used to define the variable 'user_name'.

Part 1: Spreadsheet

Part 1 of your App outline is a spreadsheet of all the information required by your App in order to populate your chosen document templates.

Get started by downloading this spreadsheet template.

The spreadsheet has two tables:

Table 1 is where you'll describe those variables that are defined by asking the end-user a question. This is how most of your variables will be defined.

Table 2 is for describing variables that are defined by logical reasoning or by pulling information out of a database.

Table 1: Question Variables

Add each variable that you want to define with a question. For each variable, you can include the following information:

Block ID#

Each page of your App is known as a "Block". A single Block can include multiple questions. Use this column to group questions across multiple Blocks.

What's your question to the end-user?

Most variables will be defined with a question. For example "what is your name?" or "how are you going to deliver these documents to the other party?" (note: you don't need to be so verbose; oftentimes, question labels can be as simple as "name"). 

What type of question is this?

Different types of questions are appropriate for different types of variables. For example, if you want to ask the end-user "do you have any children?" a 'True/False' type question is more appropriate than a 'Short Text' question.

Some important notes about question types:

  • 'Short text' questions are appropriate for phone numbers, fax numbers, etc. Only use 'Number' type questions if you need to perform mathematical calculations on the value. 
  • 'Radio' allows the end-user to select only one option. 'Checkboxes' allows the end-user to select more than one option.

If this is a radio or checkbox question, what are the options for answering?

If the question type equals 'radio' or 'checkbox', use this column to list the multiple choice options. Separate each option with a comma. 

Variable label

Coming up with a good variable label is a subtle but important step. Although the only rule is no symbols, we recommend using prefix + underscore to indicate when a variable is part of a group (e.g. user_name, user_phone, user_address).

✅ Excellent variable labels

  • user_name
  • user_street
  • email_delivery

❌ Bad variables labels

  • name (not specific enough; whose name?)
  • StreetAddress (don't include uppercase letters; use underscores to differentiate words)
  • Email delivery is true (this combines a variable label, email_delivery, with a value, "is true". The purpose of a variable is that it can have multiple values. Don't use a variable label that assumes a specific value).

Is this question asked conditionally? If so, when?

Not all questions have to be asked of the end-user. For example, you may only ask the end-user for their spouse's name if they indeed have a spouse.

If you want to conditionally ask a question, use this column to communicate when that question should be asked. There is no wrong way to write this logic; try to be as clear as possible. 

Additional notes

This is a catch-all for any comments / notes you'd like to add. For example, if you want to conditionally display some text depending on how the end-user answers a question, you would describe that here.

Does this question repeat?

You can ask the end-user the same question multiple times. This is the best way to collect information about an undefined number of people/items/things.

The classic use-case for repeating questions is collecting information about the end-user's children. For example, you can have a Block that asks for a child's name and date of birth, and then you can allow the end-user to repeat over that Block for each child they want to add:


In the above example, the questions 'Name' and 'Date of birth' are repeated. 

Table 2: Logic Variables

Although questions are the most common method for defining variables, it is not the only method. There are two other options for defining variables:

  1. Logical reasoning: You can create a variable whose value is the product of a logical equation. You can use other variables in this equation.
  2. Pull information from a database: You can attach a database to your App. In this database, you can store information which can be used to define variables.

Example of logical reasoning: The variable ‘Petitioner’ can be defined by two sets of logic depending on the user’s path: 1) if ‘how-paternity-established’ is “The father signed a Paternity Affidavit” then ‘user_name’; or 2) if ‘user_role’ equals “Petitioner”, then ‘user_name’, else ‘other_parent_name.’

What this is saying is that 1) if the user selected “The father signed a Paternity Affidavit” then ‘user_name’ is automatically the Petitioner; or 2) if the variable ‘user_role’ (which should be defined elsewhere in the App) equals “Petitioner”, then ‘user_name’ equals ‘Petitioner’

Example of pulling information from a database: You could have a database with information about courts (address, phone number, etc). Imagine you then have a variable in your App called 'court_address'; this variable could be defined by looking up the appropriate court in your database.

Part 2: Document templates

Go through your document(s) templates and add a variable label for each piece of data you want to populate, including text, checkmarks, and signatures.

For PDF templates, use the Adobe Acrobat 'prepare form' feature to add labels to the PDF fields:

For Word templates, designate a variable by wrapping it in double brackets, e.g. {{ user_name }} or {{ user_street }}: 


Download example

You can download a real App Outline and its associated App to see exactly how one produces the other.

Download example

After you make an outline

Contact us to set up a time to share what you've made. We'll walk through the steps to launching your app. With the app outline completed, your prototype is well on its way!

Ready to get started?

Let's talk about your project. If you're interested, you can create a free account and start exploring the App Builder right now.

Schedule call