Jo's Diner

Client: Google UX Design Professional Certificate

Goal: Users are frustrated with online menus. Design one that resolves their pain points.

Role: Research, interaction design, visual design

Skills Used:

User Interviews
Personas
User Flows
Storyboards
Wireframes
Usability Studies
Mockups and Prototypes

Software Used:

Figma
Inkscape

User Interviews

Before designing my menu, I needed to know in advance which aspects of online menus frustrated users most often. To that end, I interviewed subjects of various age groups, who had varying amounts of experience with technology.

Interview Questions:

  • When do you usually order food online?
  • What information do you want to see on an online menu?
  • Does anything annoy you about ordering food online? If so, what?
  • How do you prefer to order food, online or in person?

From these interviews, I found several common pain points associated with ordering food online:

Pain Point #1:

The order that menu items are listed in is often unpredictable.

"I don't want to have to look in five different places to find two sides."

Pain Point #2: 

Inability to skip sections that the user does not want to read.

"On paper, you can just flip to the particular page, but online you have to scroll all the way down."

Pain Point #3:

Inability to filter out undesired diet options.

"I don't want to see vegan food if I'm not vegan."

Personas

Devon

"My friends and I have tight schedules, so ordering food together can be tough."

smiling college student with laptop

Age: 19
Education: Completing a Bachelor's
Family: One sibling, two parents
Occupation: College Student

Bio

Devon loves eating meals with college friends, but sometimes gets sick of dining hall food. His friends all have different class schedules, so he needs the process of ordering food to be fast and painless. Some of Devon's friends have diet restrictions, and he often wishes he could quickly see which foods they can and can't order.

Goals

  • Get food delivered to the dorm, to eat with friends
  • Order fast, so friends don't need to wait
  • Not spend too much cash, since college is expensive

Frustrations

  • Has trouble finding which foods meet his friends' diet needs
  • Finds many online menus unpredictable and hard to navigate

Martha

"I don't want to have to call the restaurant just to figure out basic information that I couldn't find on the website."

Older woman smiling

Age: 50
Education: Bachelor's
Family: Husband, two kids
Occupation: Stay-at-home mom

Bio

As a stay-at-home mom with little time to learn new technology, Martha is used to ordering food in person - and is somewhat uncomfortable with the layout of many online menus. Her kids are picky eaters, which means that she often has to ask for certain ingredients to be held or changed. She wants an online menu that's simple to use and easily lets her customize orders.

Goals

  • Order food for the entire family
  • Know how each dish is made, and what ingredients will be in it

Frustrations

  • Kids are picky eaters, and often ask to substitute ingredients
  • Family members have diverse tastes, and often order from different menu sections.

User Flow

Based on the personas and pain points, I added several features to my menu:

User Flow Diagram

User Flow Description

  1. Open Site
  2. Click "See Menu and Order"
  3. Menu Page
  4. Decision: Filter by Diet?
    • If YES, menu is filtered.
    • If NO, menu is unfiltered.
  5. Select Menu Item
  6. Decision: Make a Substitution?
    • If YES, menu item has an ingredient subbed.
    • If NO, menu item has default ingredients.
  7. Add to Cart
  8. Decision: Add Another Item?
    • If YES, go back to Menu Page.
    • If NO, proceed to checkout.
  9. Checkout

Storyboards

Close-Up Storyboard

User hitting filter by diet button

A vegetarian opens the app and sees many dishes with meat. To make ordering easier, they select 'Filter By Diet'.

User hiding dishes with meat

User sees all the diets catered to by this menu. By default, all are shown, but the user hides dishes with meat by unticking a box.

User selecting house salad

User scans the meatless menu and picks a salad.

User selecting romaine lettuce

User looks at the greens, and decides they want spinach instead. User clicks on romaine to make a substitution.

User substituting spinach

User can either hold romaine or substitute it. User selects the option to substitute spinach.

User hitting add to cart button

Now fully satisfied, the user selects 'Add to Cart' and proceeds to checkout.

Big-Picture Storyboard

Mom and two kids thinking about food

Pablo, his mom, and his friend Alice are all hungry one afternoon, and Mom really doesn't feel like cooking lunch today.

Mom pulling up diner app

The kids are excited when Mom pulls up the menu for Jo's diner on her phone.

Boy asking for pancakes

Pablo immediately knows that he wants pancakes, so Mom finds some on the menu for him.

Boy asking for nutella

The pancakes come with whipped cream, but Pablo wants Nutella instead, so Mom makes a substitution.

Girl asking for vegetarian food

Alice’s family is vegetarian, so Mom filters the menu to show only vegetarian options.

Mom confirming order

With the order confirmed, everyone is happy and excited for lunch.

Wireframes

Before settling on one specific design, I sketched as many possible layouts as I could think of, inspired by both competing apps and the needs of my users.

Paper with page layouts drawn on it

The layouts I decided were best had the section headings on long buttons stacked on top of each other. These layouts addressed users' pain points:

Pain Point #1:

The order that menu items are listed in is often unpredictable.

Solution:

Display all menu section headings right on top of each other. This lets users instantly see every place they could go, making it easier to predict where desired food items will be.

Menu section headings
Section header buttons

Pain Point #2:

Inability to skip sections that the user does not want to read.

Solution:

Make each section header a button that goes to a new page or opens a dropdown menu. This reduces the amount of space each section takes up, so users never need to scroll all the way through sections they don't want to read.

I also made sure that the filter-by-diet button was right at the top, so that people with diet restrictions - like Devon's friends - can order food quickly. This feature also helps people who dislike certain dietary options to avoid ordering foods they don't want.

Pain Point #3:

Inability to filter out undesired diet options.

Solution:

"Filter by Diet" button, which allows people to show/hide foods that do not match their diet.

Filter by diet dialog box

For the substitution feature, I made it so users could click on any ingredient to hold or substitute it. This would be useful for Martha, who could easily click on any ingredient that her kids want changed.

Substitution feature

Usability Study

To test usability, I turned my design into a low-fidelity prototype with these test cases:

Test Cases

  • Order a BLT and a brownie.
  • Order a House Salad, substitute lettuce for spinach.
  • You're a vegetarian. Order an omlette without meat.

I then wrote a research study plan with questions, Key Performance Indicators (KPI's) and a script.

I used the research plan to conduct an unmoderated usability study.

Through the study, I identified several patterns in how users responded to the wireframe:

Pattern #1:

80% of participants had to tap a menu item multiple times before getting its page to open.

This means that it is difficult to tell where to click on a menu item.

"The touch response wasn't precise, so I couldn't tell where to click"

Pattern #2:

40% of participants either skipped or took several screens to find the filter-by-diet button.

This means that the filter-by-diet option is not always noticeable.

"Maybe if I was looking at a full menu, and there was meat everywhere, I would have thought to look for it. But on this prototype the veggie omelette was right there, so I didn't need it"

Pattern #3:

40% of participants did not notice the substitution function.

This means that the substition instructions are not always noticeable.

"I didn't read the instruction because it had an asterisk, so I assumed it wasn't necessary... I want to order quickly, so if I don't think I need to read something, I just skip it."

From these patterns I distilled the following insights:

  1. Menu items need more obvious "click" regions.
  2. The filter-by-diet feature should be more prominently advertised.
  3. The substitution instructions should be made harder to ignore.

Here is how I addressed each of these insights in my design:

Insight #1: 
Menu items need more obvious click regions.

To resolve this issue, I changed the background color and added boxes around each menu item. Now, users can click anywhere within the box, not just on the menu item's name.

Menu item design change
Filter by diet design change

Insight #2:
The filter-by-diet feature should be more prominently advertised.

To make the button more prominent, I moved it down into the body of the site. I also made the font bolder and made the letters all uppercase.

Insight #3:
The substitution instructions should be harder to ignore.

Instead of an easy-to-skip instruction, I made the substitution feature a button that shows the ingredient list with options to hold or substitute.

This choice was also inspired by a comment from a study participant, who wanted to see all possible substitutions listed in one place, instead of having to click each individual ingredient.

Substitute instruction design change
Updated Prototype (Figma)

Mockups & Prototypes

With the wireframes done, it was time to create the logo, color palette and brand identity for the app.

Jo's Diner

STYLE
GUIDE

COLORS

Background Gray

HEX: E2EAF1
RGB: 226, 234, 241
HSB: 208, 6, 95

Foreground Red

HEX: B20136
RGB: 178, 1, 54
HSB: 342, 99, 70

FONT FAMILIES

Dosis
  • EXTRABOLD (ALL CAPS):
    Used for <h1>, <h2> in dialog boxes
  • BOLD (ALL CAPS):
    Used for buttons and <h2>
Quicksand
  • Bold: 
    Used for <h3>, back buttons & bold body text
  • Semibold:
    Used for interactive elements in menu items and dialog boxes.
  • Medium:
    Used for <p>.

BUTTONS

Left-Aligned

BUTTON

BUTTON

Center-Aligned
BUTTON

BUTTON

BUTTON

Button

Button

Button

I used this visual identity to construct a high-fidelity mockup of the site.

High-fidelity mockup of Jo's Diner

My high-fidelity prototype has these use cases:

  • Order a Bacon Egg & Cheese Sandwich and an Orange Juice.
  • Order a Caesar Salad, substitute romaine lettuce for iceberg.
  • You are vegeterian. Order the Caesar Salad.
High-Fidelity Prototype (Figma)

Conclusion and Next Steps

The biggest takeaway from this project was to pay very close attention to which aspects of a design are visually emphasized. People only use the features they notice, so it is very important to guide people's eyes towards the features that will most help them.

Were I to continue this project, the next steps would be:

Image Credits