InteractivePrototype-Group:Epileptic Eels

From CS 160 User Interfaces Sp10

Jump to: navigation, search

Interactive Prototype - Epileptic Eels

Contents

Group Members and Contributions

  • Divya Banesh: Programming, Wiki, Screenshots
  • Andrew Finch: Programming, Icons, Wiki, Videos
  • Arpad Kovacs: Programming, Wiki, ReadMe
  • Daniel Nguyen: Programming, Wiki, Slides
  • Saba Khalilnaji: Programming, Wiki, Slides

Problem and Solution Overview

People with food allergies, intolerances, or other dietary restrictions have a very difficult time shopping at the grocery store. They must scrutinize the nutritional facts and ingredient lists on every food label to make sure they purchase items that are safe to eat. This process is time-consuming, and creates many chances for the shoppers to make errors. Offending ingredients can be masked by an unusual name, or simply missed. Shoppers who are buying items for friends or relatives are probably not used to shopping for people with food sensitivities, and are likely to make mistakes or be less careful. Our application, which we have codenamed "Grocery Guardian", is designed to make grocery shopping easier and more convenient for people who have, or are shopping for people with food allergies, intolerances, or dietary restrictions. The goal of our application is to provide a quick, accurate, and simple tool for detecting offending ingredients in food products that any shopper can use effectively. It allows users to set up a descriptive profile for each person with dietary restrictions. Users can then use the iPhone's camera to scan a barcode of a food product, or simply query for the product using a built-in search engine. Once the product of interest has been found, it is instantly analyzed and compared with the dietary constraints specified in each profile. The user is shown which people the product is safe for, and if he desires, can see more details about the product, its ingredients, and how safe it is to consume for a particular person.

Tasks

We believe these three tasks most comprehensively represent our user interface.

Task 1: Scan/search for an item (Easy)

To scan a barcode, the user goes to the 'Scan' tab, aligns the camera with the barcode, and presses 'Scan'. The application will then get the UPC, look up the product in an online database, and display the necessary information in the "Analyze" tab. If the user goes to the "Search" tab, they can enter the name or UPC of a product and pick the correct item from a list of possible options. The application will then get the product details and display the necessary information in the "Analyze" tab.

Task 2: Create one or multiple profiles (Medium)

In order to create a profile, the user goes to the 'Profiles' tab, where he can see a list of all the profiles in the system, and whether each one is turned on or off. He can then tap 'Add Profile', and he is presented with a form for creating a new profile, where he can enter a name and compile a list of allergens. He taps 'Save' to complete the profile and see it get added to the list. Adding multiple profiles involves repeating this process for each person he wishes to add to the system. The user can use the on/off switches on the list of profiles to control which ones will be considered when a product is looked up and analyzed.

Task 3: Edit and delete profiles (Hard)

If a user wishes to modify the allergens or dietary restrictions associated with a particular profile, he can tap on that profile to open it up and see its attributes. From there, he can delete the profile, add new allergens, or tap on an allergen to see its properties. Here, he can change the allergen's attributes as they exist in this profile, or remove the allergen from the profile altogether.

Revised Interface Design

Changes as a Result of LoFi Testing

Change 1: Scan Tab - No "Product Found" popup alert

In the Scan tab of our LoFi prototype, the original interface was such that after the "Scanning barcode..." popup alert, another alert would appear which would tell you user if the product has been found or if the barcode scan was unsuccessful. If the product was found, they would have to click on an "OK" button, which would then take them to the Analyze tab. This has been changed in the interactive prototype to remove an extra step for the user. In the interactive prototype, after the "Scanning barcode..." popup in the Scan tab, if the product is found, the application automatically takes the user to the Analyze tab. After a pre-designated time, if the barcode is not successfully scanned, the application will simply remain in the scan area and present a brief error message. This allows them to try another scan immediately after the error.


Lo-fi Prototype
This is what the different screens of our lo-fi prototype look like for the Scan tab.
The arrows show the direction of screen change.
Interactive Prototype
This is the process that takes place when a user uses the Scan tab. After the "Scanning barcode..." popup alert, the user goes to the Analyze tab, where the application shows that the product, General Mills Cheerios, is safe for all the users.

Change 2: Analyze Tab - Addition of "Safe" and "Unsafe"

One of the major problems that we found in our LoFi prototype testing was a user thought the red "X" in the Analyze tab meant the food didn't contain anything bad (was OK to eat), which is the exact opposite of what it actually meant. To fix this problem in our interactive prototype, we added the word "Unsafe" under the red "X" and the word "Safe" under the green check mark. This makes it clear to the application user whether the product is safe or unsafe for a particular profile.
Lo-fi Prototype
This is what the different screens of our lo-fi prototype look like for the Search tab.
The arrow shows the direction of screen change.
Interactive Prototype
WIth the redesigned profile analysis in the Analyze tab, users can be sure that the red "X" means unsafe for that particular profile, and the green check means "Safe".

Change 3: Profile Tab - Addition of "Add Profile" button

One major addition we made in our profile tab was to add a button that said "Add Profile". In our LoFi prototype, the only way to add a new profile was to press on the "+" button in the navigation bar. This was difficult for users to figure out because they had to first find the "+" button, then figure out that it meant to add a new profile. With the interactive prototype, when users come to the profiles tab, they immediately see the "Add Profile" button in the body of the page. Users who prefer to user the "+" button still have the option of doing so (and this will become more useful if a lot of profiles get added to the list, which would otherwise force users to scroll to the bottom of the list in order to add a new profile), but this way, inexperienced users can quickly figure out what to do when they visit the page.

Lo-fi Prototype

}

Interactive Prototype
In the interactive prototype, when a user arrives at the Profiles tab, his attention is drawn to the 'Add Profile' button in the list.

Change 4: Profile Tab - Change Location of "Delete Profile" button

As with the 'Add profile' button, the location of the "Delete Profile" button was not easy for the user to find or use. In the LoFi prototype, to delete a profile, the user had to find the delete button on the top navigation bar, tap it, and then tap a corresponding delete icon that would appear next to the profile. In the interactive prototype, after a profile has been made, the user clicks on the user profile and they are taken to a new screen where they can make changes to the profile. Here, they can easily see the "Delete Profile" button at the bottom of the page.
Lo-fi Prototype
This was the original button in the Profile Tab to delete a profile.
Interactive Prototype
A clearer way to delete profiles.

Change 5: Profile Tab - Revised ways to add, delete and edit allergens, intolerances and other dietary restrictions

Another major change from the LoFi prototype to the interactive prototype was the way users interact with their allergens and other dietary restrictions. In the LoFi Prototype, there was a different place to search for allergens, a different place to search for intolerances and a different place to search for restrictions. In the interactive prototype, everything is combined together, which cleans up the interface, and makes it easier for the user to search for and find whatever they need. Also, once an allergen is added to a user profile, the interactive prototype offers easy ways to add more allergens or delete the ones currently added.
Lo-fi Prototype
This is what the different screens of our lo-fi prototype look like for the Profiles tab.
The arrows show the direction of screen change.
Interactive Prototype
With the interactive prototype, there is a logical flow for how users add allergens, edit their profiles and save their information. When creating their profiles, users click on "Add Allergen", scroll through a list or search for their allergen, then click on "Add". While editing a profile, users can add more allergens, delete an allergen or specify amounts that are acceptable for their diet.

Sketches or Scripts for Unimplemented Portions of the Interface

This section is not applicable, since we have implemented all portions of our interface. However, some screens are not fully functional as described in the Wizard of Oz section. We will make use of third-party software to implement most of these features in the future.

Storyboards of Tasks

Task 1: Scan/search for an item

This is an example of a user searching for a product by name, and then selecting it for analysis.

File:InteractivePrototypeScenario1.png

Task 2: Create one or multiple profiles

This is an example of a user creating two profiles using this application.

Task 3: Edit and delete profiles

This is an example of a person editing and deleting profiles.

Prototype Overview

The interactive prototype improves on the systems implemented in the LoFi prototype by implementing necessary design changes discovered in user-based testing, as well as implementing technical changes deemed necessary to translate the model from a low-fidelity to a high-fidelity state. Almost all the core functionality of the target application was implemented in the interactive prototype, including persistence of created profiles, comparison of ingredient lists to allergen components, and selection of products from a searchable list.

UI Design

The design implements a combination of tab bar navigation and intra-tab navigation bars to maximize simplicity and maintain a straight-forward flow of action for the user. The underlying use of a tab bar minimizes the number of views that must be stacked on one another, reducing user confusion during tasks by making relevant information directly accessible. The application also utilizes a profile-saving system as a major feature, which is designed to make using the application easier between each use and to make multiple uses of the application less redundant.

Tab Bar Navigation

Scan Tab

Scan the barcode of product to get analyzed

Search Tab

Search for a product by name or UPC to get analyzed

Analyze

See result of product analysis, in either an overview with all profiles considered, or a detail view with one profile considered

Profiles Tab

Create profiles for people being shopped for who have allergens, intolerances, and dietary restrictions

This application uses a tab bar navigation system to separate the four main areas of use: scanning, searching, analyzing, and profile management. The categories represented by each tab are relatively exclusive within the scope of the application, so while editing the information contained in the Profile tab may affect the information displayed in the Analyze tab, it won't change how the Analyze tab functions. Also, because of the tab bar navigation system, users can easily switch back and forth between sections to edit profile and analyze information quicker and more easily.

Intra-Tab Navigation

Within each tab, users can navigate between closely related views (when applicable) by making the corresponding table selections or pressing the appropriate buttons. These views are mainly modular, allowing the user to search for specific products or allergies, edit their information, or change the status of their profile. This keeps the information most relevant to the user's current task close to the main goal of the task, allowing the user to accomplish their goal without having to navigate between a variety of tabs or disconnected windows.

Scan Tab

Once the user has set up a profile, he can navigate to the scan tab to take a picture of the barcode of a product of interest. The user will be provided with a live view of what the camera sees, and must position the camera so that the barcode aligns with the target crosshairs (Welcome Screen). Once the user has acquired an in-focus image of the barcode, he can tap the scan button, which will cause the application to display a progress circle (Scanning Barcode Popup Alert) while it analyzes the barcode, retrieves the UPC, and look up the corresponding product in the application's database.

Search Tab

After navigating to the "Search" tab, the user can browse an alphabetically-ordered list of all products available in the application's database (Search Screen). In order to filter the results or lookup a particular product, the user can begin to enter any terms associated with a product into the search box, and the application will narrow the list down to products that match the search criteria via a dynamic query (Searching For A Product). The user may pick an item of interest from a list of possible options at any time. This will redirect the user to the "Analyze" tab to check the ingredients of the selected product with the allergens of the active profiles.

Analyze Tab

After scanning a barcode or searching for an item, the application will show you detailed information about the product and any allergens it contains on the analyze tab. The top of the analyze overview screen displays the name, UPC code, and an image of the selected product. Below this, it indicates whether the product is safe to consume for each active profile (Analyze Screen). If the user can safely consume the product, then a green checkmark appears next to the user's name. If the product is unsafe, then a red X appears next to the user's name, along with a list of the unsafe ingredients (Product with Unsafe Ingredients). The user can select a particular profile to view additional details about the product and any dietary conflicts with that profile in the Analyze Details screen.
The analyze details screen provides additional information about ingredients in the selected product that may be unsafe to consume for the user. On top, the number of problem ingredients is shown in red if the product is unsafe, or in green if the product is safe to consume. Below this is a full list of the ingredients contained in the product, with any ingredients that conflict with the user's profile highlighted in yellow (Check Problem Ingredients).

Profiles Tab

The "Profiles" tab allows the user to customize the application's behavior by specifying their own allergens and dietary restrictions, or those of friends and family members. The overview page shows a table of all profiles that the user has created, and allows the user to specify which profiles the application will check a product against by clicking on the "On"/"Off" slider button to activate/deactivate each profile (Profiles Screen). From this screen, the user can edit the details of existing profiles by selecting the profile to modify, or create a new profile.
To create a new profile, the user clicks the "Add Profile" or the "+" button, and enters the name of the person that the profile will be associated with (Adding a Profile). Next, the user adds each ingredient or allergen the person wishes to avoid (Choosing an Allergen). When an allergen is added, all synonymous ingredients (similar ingredients that go by different names) and ingredients which contain the selected allergen are added automatically. The user may optionally specify an upper limit on the quantity of the ingredient that the person may consume; if this field is left empty, then the application assumes that the person cannot tolerate any amount of the ingredient.
To edit or delete an existing profile, the user selects the profile to modify. The user can then add, remove, or change the intake limits of allergens (Editing an Allergen) from the list of ingredients that the profile should be checked against and save changes, or completely remove the profile from the application by selecting the "Delete Profile" button on the bottom of the screen (Making Changes or Deleting Profile).

Features Not Implemented

A few features were not implemented due to limitations in resource and available time. A list of the current expected features of the application that were not implemented in this version of prototyping follows below. However, there will also most likely be a number of more minor features that will be implemented in the final product that have not yet been conceived, much like many of the more novel features implemented in this prototype.

Scanning Item

The current codebase does not utilize the camera of the iPhone to capture a picture of a barcode, therefore we rely on Wizard Of Oz techniques to implement the scan functionality. The reason for this is because scanning barcodes accurately and reliably is a non-trivial task, and we would prefer to use a wizard-of-oz approach rather than writing potentially buggy image processing code. As a result, the current scan preview window displays a static image of a hypothetical barcode as a placeholder for the live-view and scan functionality.

List of recent analysis

We will be adding a list of products that were recently analyzed, so if a user finds new product, and then wishes to review the analysis of previously scanned product, he can get back to this product again easily and analyze it. We will most likely be adding this feature as an addition to either the 'scan' or 'search' tab. However, this is more of a convenience and extra usability feature rather than an aspect of the core functionality of the application, so it was not implemented in the interactive prototype because the core functionality was given highest priority.

Parsing Database

We did not use an online database to retrieve and parse information from (i.e. ingredients, nutrition facts, allergies) because we are still in the process of finding a suitable one that meets our needs. Once a database is found, parsing the required information correctly will be the only adjustment required with respect to data use, since all functionality involving data was implemented in such a way that could robustly process a dynamic set of data.

Wizard of Oz

The bulk of the Wizard of Oz techniques arise due to a lack of a product database. Once a database is found, almost all Wizard of Oz techniques will become obsolete.

Product List

The search tab is supposed to be linked to an online database of products. An example of such a database is from a company, Gladson, that we have contacted asking to use their database. For now, we have hard-coded several products into an array that the user can search for using product name or UPC. The product image and ingredients are then retrieved from fields within each product object.

Product Ingredients

The product ingredients are also supposed to be parsed from a database such as Gladson. For now, we've hard-coded the actual ingredients into each product to allow the application to remain functional. Ingredients could either be parsed when the product list is pared, or at the time of analysis.

List of Allergies

We've only added the most common allergens to our allergen list. The list will become more complete throughout the design cycle. In the future, this could be done either through careful research of common allergies, parsing a database of allergies, or a data aggregation technique that could rely on data input from multiple users to populate a list of allergens.

Scanning

Although a major use case for this application is scanning barcodes to retrieve data about products, we chose to leave the physical implementation of barcode scanning out of the initial interactive prototype, and model this behavior using Wizard of Oz techniques. Instead of spending several days or weeks developing a buggy barcode scanner, we decided to implement other basic functionality of the application such as profile management and text-based product search, which have higher priority in our pilot usability tests. Another rationale for this decision is that there exist off-the-shelf commercial libraries such as Red Laser that already implement barcode scanning functionality, so in future iterations we may be able to obtain a commercial license instead of writing our own code. Thus, priority was given to processing the data that scanning a barcode is supposed to give so that it is most useful for the user.

Prototype Screenshots and Scripts

Scan

Welcome Screen
This is the screen that welcomes the user when they open the application.
There are four tabs at the bottom of the screen that the user can click on: Scan, Search, Analyze and Profiles.
The Scan screen, shown here, takes a picture of the barcode of the product, then the user can press the 'Scan' button.
Scanning Barcode Popup Alert
After the user presses the scan button, a popup alert box will appear, letting the user know that the application is scanning the barcode and analyzing the results. If the barcode scan is successful, the application will take the user to the Analyze tab with the results.

Search

Search Screen
When the user goes to the Search tab, this is the screen that they see. In the search tab, users can search for a product by product name or UPC number instead of scanning a barcode. This screen shows several products that the user can click on, at which point they will be taken to the Analyze tab, or they can search for a product in the search box.
Searching for a Product
If the user opts to search using the search box, they can enter the name or UPC number of the product. As they enter the name, several options relating to the search will appear. At this point, the user can click on one of the options, and the application will go to the Analyze tab.

Analyze

Analyze Screen
After the user has picked a product from either the Scan or Search tab, they are taken to the Analyze tab. In this example, several profiles have already been added, and the application has analyzed the safety of the ingredients in General Mills Cheerios to the allergens from the profiles that are currently active. If the product is completely safe for a profile, there appears a green check mark next to the profile name with the word 'Safe'. Otherwise, a red "X" appears with the word 'Unsafe'.
Check Problem Ingredients
A user can also click on a person's name from the analyze screen to go to a screen which lists all the ingredients of the product and lets the user know if there are any problem ingredients.

Product with Unsafe Ingredients
If a product has ingredients that conflict with any of the active profiles' allergens, the user can immediately see this in the Analyze screen. In this example, the application tells the user that Andrew's allergens Almond and Pecan conflict with the ingredients of this product.
Check Problem Ingredients
Clicking on a profile from the Analyze tab will take the user to this screen, where the number of problem ingredients are listed (here there are two), and the problem ingredients are highlighted for easy access. In this example, Almond and Pecan are highlighted.

Analyze Tab with No Profiles
If no profiles have been created when the user analyzes a product, this screen will appear in the Analyze tab.

Profiles

Profiles Screen
In the profiles tab, users can create, edit and delete profiles. Any profiles they have already created will be listed. They can create new profiles by clicking on the "Add Profile" button or by clicking on the "+" at the top of the screen. They can edit or delete profiles by clicking on that particular profile.
Adding a Profile
When adding a profile, users can enter the name in this screen, then click 'Add Allergen' to add specific allergens, intolerance or dietary restrictions.
Choosing an Allergen
When adding an allergen, users can choose one from the list provided, then click 'Add'. They can also specify amounts of that allergen that are safe.
Searching for an Allergen
Users can also search for allergens. As they type in the name of the allergen, suggestions will appear.

Editing a Profile
Once a profile has been created, users can edit the profile from the Profiles tab, by clicking on the profile name.
Making Changes or Deleting Profile
Users then come to the page shown here, where they can make changes to their allergens or delete the profile.
Editing an Allergen
From the previous screen, if the user clicks on an allergen they have already added to their profile, they can further edit the profile or delete the allergen in this page.

Setting Profiles On or Off
In the profiles tab, users can set their profiles to 'On' or 'Off'. This gives the users flexibility on which profiles they want use when analyzing a product.

Appendix

Project Source

File:Grocery Guardian Interactive Prototype.zip

Project Video

Media:Grocery Guardian Interactive Demo.mov

Presentation

PDF Slides (video not embedded): File:Interactive Prototype.pdf
Video: Media:hifi_demo.mov

README / Operating Instructions

Introduction

Grocery Guardian makes grocery shopping easier and more convenient for people who have, or are shopping for people with food allergies, intolerances, or dietary restrictions. The application provides a quick, accurate, and simple tool for detecting offending ingredients in food products that any shopper can use effectively. It allows users to set up a descriptive profile for each person with dietary restrictions. Users can then use the iPhone's camera to scan a barcode of a food product, or simply look up the product in a search engine. Once a product is looked up, it is instantly analyzed and compared with the attributes of each profile. The user is shown which people the product is safe for, and if he desires, can see more details about the product, its ingredients, and its safety for a particular person.

Scan

Once the user has set up a profile, he can navigate to the scan tab to take a picture of the barcode of a product of interest. The user will be provided with a live view of what the camera sees, and must position the camera so that the barcode aligns with the target crosshairs. Once the user has acquired an in-focus image of the barcode, he can tap the scan button, which will cause the application to analyze the barcode, get the UPC, and look up the corresponding product in the application's database.

Scan Limitations

The scan functionality is currently implemented using Wizard Of Oz techniques. The reason for this is because scanning barcodes accurately and reliably is a non-trivial task, and we would prefer to use a wizard-of-oz approach rather than writing potentially buggy image processing code. As a result, the current scan view displays a static image of a hypothetical barcode as a placeholder for the live-view and scan functionality.

Search

After navigating to the "Search" tab, the user can browse an alphabetically-ordered list of all products available in the application's database. In order to filter the results or lookup a particular product, the user can begin to enter any terms associated with a product into the search box, and the application will narrow the list down to products that match the search criteria via a dynamic query. The user may pick an item of interest from a list of possible options at any time. This will redirect the user to the "Analyze" tab to check the ingredients of the selected product with the allergens of the active profiles.

Search Limitations

The current version of the search interface checks the search terms string against all product descriptions that are available in the application's local database, and returns all products that contain a matching substring in a dynamic query. In later iterations of the search interface, we plan to pull additional results from an online database. In addition, we plan to allow searching by UPC code, as well as by broader product categories that are not substrings of a particular product's name (eg "cereals"). We may also refine the interface to group products by category to facilitate browsing for a particular product type.

Analyze

After scanning a barcode or searching for an item, the application will show you detailed information about the product and any allergens it contains on the analyze tab. The top of the analyze overview screen displays the name, UPC code, and an image of the selected product. Below this, it indicates whether the product is safe to consume for each active profile.
If the user can safely consume the product, then a green checkmark appears next to the user's name. If the product is unsafe, then a red X appears next to the user's name, along with a list of the unsafe ingredients. The user can select a particular profile to view additional details about the product and any dietary conflicts with that profile in the Analyze Details screen.
The analyze details screen provides additional information about ingredients in the selected product that may be unsafe to consume for the user. On top, the number of problem ingredients is shown in red if the product is unsafe, or in green if the product is safe to consume. Below this is a full list of the ingredients contained in the product, with any ingredients that conflict with the user's profile highlighted in yellow.

Analyze Limitations

The program looks for problem ingredients by comparing any allergens that the user has specified in their profiles to a list of synonyms, and then parsing the product's ingredients list for matching ingredients. However, if an ingredient in the product's ingredients list is misspelled, then it might not match the search criteria, and therefore this would result in a potentially dangerous false negative. We currently do not have any autocorrect/spell-check functionality to check that all of the items in the ingredients list are spelled correctly.
The current version of the program also does not contain any quantitative information about the ingredients in the product, such as mass per serving or percentage of daily value.

Profile

The "Profiles" tab allows the user to customize the application's behavior by specifying their own allergens and dietary restrictions, or those of friends and family members. The overview page shows a table of all profiles that the user has created, and allows the user to specify which profiles the application will check a product against by clicking on the "On"/"Off" slider button to activate/deactivate each profile. From this screen, the user can edit the details of existing profiles by selecting the profile to modify, or create a new profile.
To create a new profile, the user clicks the "Add Profile" or the "+" button, and enters the name of the person that the profile will be associated with. Next, the user adds each ingredient or allergen the person wishes to avoid. When an allergen is added, all synonymous ingredients (similar ingredients that go by different names) and ingredients which contain the selected allergen are added automatically. The user may optionally specify an upper limit on the quantity of the ingredient that the person may consume; if this field is left empty, then the application assumes that the person cannot tolerate any amount of the ingredient.
To edit or delete an existing profile, the user selects the profile to modify. The user can then add or remove allergens from the list of ingredients that the profile should be checked against and save changes, or completely remove the profile from the application by selecting the "Delete Profile" button on the bottom of the screen.

Profile Limitations

In the current implementation, the user can only select allergens to associate with a profile from a predefined list of the 8 most common allergens: dairy, egg, peanut, tree nut, seafood, shellfish, soy, and wheat. In the future, we plan to add functionality for specifying custom allergens, and increase the list of predefined allergens.
Although there exists a field for the user to enter the maximum allowable intake quantity of each ingredient, this quantity is ignored in the analyze product screen. The reason for this is that the current products database does not contain the amount of each ingredient contained in the product. We plan to fully implement this functionality once we can find and retrieve ingredient details from a data source that contains this information.

Image Sources

Barcode: http://ceoworld.biz/ceo/wp-content/uploads/2009/11/barcode.png
Frito's Scoops: http://www.militaryfoodex.com/catalog/images/FRITOS_SCOOPS___Corn_Chips.gif
Totino's Pizza Rolls: http://images-cdn01.associatedcontent.com/image/A1353/135315/300_135315.jpg
Other Product images from: http://www.amazon.com/
Storyboard 1 - Clip art and thought bubbles from: http://www.makebeliefscomix.com/Comix/
Storyboard 2 - Image of woman: http://thumbs.dreamstime.com/thumb_167/11851130817J73bG.jpg
Storyboard 3 - Image of man shopping: http://www.istockphoto.com/file_thumbview_approve/5565745/2/istockphoto_5565745-man-shopping-for-groceries.jpg
Storyboard 3 - iPhone clipart: http://icons.mysitemyway.com/wp-content/gallery/magic-marker-icons-media/115537-magic-marker-icon-media-ipod1.png


[add comment]
Personal tools