Project 6 - User Testing and Final Release
User Study 1: Samantha Zhang
Samantha is a data scientist based in New York City, who regularly volunteers at soup kitchens and food pantries in Brooklyn and Manhattan, making her a good choice for Cornucopia user testing, since volunteers are some of our primary users.
When prompted with the first task, Samantha chose an organization via the dropdown, but didn't immediately know where to find its inventory; she repeatedly clicked the organization card in attempt to get to inventory. During the debrief, she reported that she did not notice the new tabs that appear after an organization is chosen. It seems that the users were so focused on the main portion of the screen that small changes at the top don't stand out. During the inventory task, Samantha attempted to create a new inventory item for paper towels instead of updating the existing item, which led to confusion. This was likely because she reached the page and immediately started scrolling without noticing the inventory search bar, which then blocked the search bar from view.
The timesheet task was relatively intuitive for Samantha; she knew how to create shifts by clicking and dragging, and she also quickly understood that the different colors differentiated whether she had claimed the shift or not. Creating a household was more confusing for her, specifically, assigning the Finnish language to the household. When the language did not appear in the dropdown, she typed in the new language, but was unsure if this successfully created a new language or would result in errors or inconsistencies later on.
For the audio task, Samantha immediately knew which audio file was broken just by looking. However, similarly to the inventory task at the start, she deleted the existing audio instead of updating it, which resulted in not having the correct translated text for the newly created audio. This is likely due to ambiguous labeling; an "update" label with an editing icon would be more intuitive for this purpose than the original "upload" label with the commonly-used upload icon.
User Study 2: Phoebe Heyman
As the coordinator of the Margaret Fuller House Food Pantry and the original inspiration for this project, we are excited to report that Phoebe overall loved Cornucopia. Upon initial login, Phoebe selected an organization using the organization cards and explored all the tabs with ease. She understood the general flow of the website pretty quickly. While navigating the inventory page, Phoebe recognized the use of the search bar, finding and updating the existing items. However, she was unsure about what the "Max Per Person" and "Max Per Day" tags meant, as well as the "Update Daily Allocation" button; since these features, which all have to do with the allocation algorithm, are novel and unique to the app, we can add more instructions to help new users quickly gain intuition for their functionality.
When it came to the Timesheet page, Phoebe found it more visually intuitive than the volunteer management system that she currently uses. Moreover, she liked the "all-in-one" aspect of our inventory, distribution, and volunteer management app. However, she was unable to create a shift; she tried double clicking rather than clicking and dragging. Furthermore, she tried to resize shifts, which our Timesheet did not support. Finally, she explained that it is convenient to be able to set a capacity for each shift, since physical space is limited in the pantry. The claiming shift capacity should be removed once capacity is reached. These limitations in our app's functionality highlight many possible areas of improvement.
Similar to Samantha, Phoebe was unsure about how to add a new language; she asked if she should instead put the language in the "patron notes" section. This further emphasizes the unintuitive UI for adding a new language, and suggests adding instructions or prompts. However, she liked the ability to add new languages as with her current system, she has to request the new languages through a tedious process. Furthermore, she tried to search for households by patron names, which was unsupported. She explained that patrons often forget their IDs, and thus including the ability to search by name is important.
Phoebe expressed a lot of excitement about the audio feature and grasped the concept of updating audio successfully. For the distribution task, Phoebe suggested that we don't scale the number of items per household by the number of members in the algorithm (for example, four-member households should not receive four bottles of oil). She also suggested allowing admins more flexibility in adjusting the algorithm according to specific food pantry needs, such as restocking frequency.
User Study 3: Flora Fu
Flora is a undergraduate senior studying pharmaceutical sciences. Her experiences working at a food distribution shelter make her a great candidate for user testing for Cornucopia.
When tasked with switching between different organizations that she was a part of, Flora clicked on the organization name in the left corner to try to go back to the organization page; however, the organization name takes users to the homepage. This is very common in many apps and to provide a more convenient workflow, we will add the accelerator that links the name to the organization page. For the inventory tab, Flora tried to find the paper towels in inventory, but struggled as she didn't immediately locate the search bar. Similarly to Samantha, it may have been due to scrolling down too quickly where the search box is no longer visible; a similar occurrence happened when Flora was on the household task. After finding the existing item, Flora found adding dietary restrictions to be confusing, particularly in connecting the "contains" field with dietary restrictions. A simple linguistic change could alleviate this problem.
For shifts, Flora helped us uncover a bug; when creating shifts, if a user was promoted to being an administrator during a session, then they wouldn't immediately have administrator privileges until logging out and starting a new session. This can be fixed by updating the organization store. Moving on to languages, Flora accidentally mistyped the language that she was trying to create, and tried to edit its name, which is unfortunately not supported. It wasn't intuitive to Flora to retype the whole language, so she left the mistyped word instead. All of our users have struggled with creating a new language, which suggests that the current model is unintuitive and should be redesigned.
Lastly, Flora expressed feedback about the member promotion methods in the organization cards. Specifically, it felt weird to the setting icon but have other-setting related things under different icons (such as for open days, which is a new feature compared to the previous interviews), and adding and promoting members may be better placed in the same menu. Lastly, it would be more reassuring to the user if the actions menus had more instructions as currently, the actions menu only appeared after a member was selected.
Design Flaws and Opportunities
Inventory Bulk Adding
physical, minor
One notable drawback in our system lies in the inefficiency of the inventory addition process. Presently, there is no provision for bulk adding of items to the inventory. Consequently, organizations adopting our site, along with those receiving diverse inventory items periodically, face the cumbersome task of manually inputting each item. Volunteers are required to individually add items, complete with image links, purchase links, names, and other details. This manual approach proves highly inefficient. In future iterations, a valuable enhancement would involve integrating our app with a platform containing a comprehensive database of images and names for various foods and items. This integration would eliminate the need for users to upload items individually. Instead, they could simply input purchase links and update quantities, streamlining the entire inventory management process for increased efficiency.
User Contact Management
conceptual, moderate
Currently, users are defined by only a username; specifically, Cornucopia does not know any of their contact information (email, phone). In practice, food pantry administrators would want to be able to contact their volunteers, so the app relies on external communication between admins and members. However, simply adding volunteer contact information won't work; since administrators add volunteers from a dropdown of all Cornucopia users, any user of the app who creates an organization could see any other user's contact information, which would be a security violation. Thus, in future implementations, the system of adding members to organizations could be modified with an invitation system; users accept invitations to join an organization, and their contact information is then released to those specific administrators.
Automatic Audio Generation
linguistic, minor
As of right now, if an organization wants to add audio for a certain language, they have to generate the audio themselves and upload it. While this method is much better than not having any audio at all, it may not be easy to supply audio for certain languages if no volunteer or admin can translate, and making the user utilize external functions to download and add audio is clunky. It may be possible in future implementations to integrate Google Translate or other translation and text to speech features to automatically generate audio for a given language based on English translations, but the feasibility of this change is uncertain.
Volunteer Permission Configuration
conceptual, major
For certain organizations, administrators may have preferences for what volunteers can and can't do, for example, adding new inventory items, creating or modifying shifts, and adding audio files. Currently, all volunteer accounts have predetermined capabilities across all organizations, but it would be useful to allow administrators to configure the permissions for volunteers, and even potentially create individual exceptions, as the inner structure of a food pantry may be more diverse than simply administrators and volunteers. For example, an administrator may want to extend the create audio capability to a specific volunteer for that volunteer to generate lots of new audio for a new translation, but toggle off this ability after the tasks are completed. More generally, it may also be possible to create "roles" that are assignable to each member in the organization, which grants certain permissions and removes others.
Flexible Allocation Algorithm
conceptual, moderate
Certain items may not be restocked every week, which is not represented in our allocation algorithm. The algorithm generates the maximum possible allocation per day, assuming the items are restocked each week, which is the case for many food pantries. As it is impossible to know at all times if a food item will be restocked, simply giving each food item a restock schedule is impractical. As such, allowing the administrator to edit maximum per day of each item after it has been generated by our algorithm would be the better solution. Furthermore, some foods scale with household size, while others don't; for example, a household of four members should not receive 4-dozen eggs, but perhaps should receive 4 tomatoes. The allocation algorithm could account for this, allowing some items to have a "max per person" feature and others to have "max per household."
Design Revisions
P5 - Beta Release
- While in our wireframes, we had planned to include an organization dropdown on the login page which would create a dependency between Session and Team that contradicted our initial design. Thus, we now allow the user to select one of their organizations from an Organization tab after logging in. This allows more efficiency in switching between different organizations, and to overcome the possibility that this may enhance user error by performing actions for one organization under another, the current organization name constantly appears in the corner in a large font.
- We originally intended for all of the LanguageAudio files to be displayed on the Organization tab, as well as the subset matching each household's language with that household. In order to not crowd up the Organization page too much and adhere to our Impact Case's emphasis on the importance of convenient translations for patrons, we created a separate Audio tab for easier access to updating, creating, and managing LanguageAudios. We still display them (with no editing capabilities) with the household profiles.
- In the synchronizations, we thought that each household would be created with only one patron, and any remaining household members would have to be added separately once the household was created. In implementation, we realized that since in practice, most households will consist of more than one member, we should allow households to be conveniently created with several patrons in order to streamline the process most.
- During our convergent design process, we did not think about the edge case of when the only admin of an organization leaves the organization; automatically deleting the organization would be unintuitive for users, and leaving the organization with no admin would contradict the initial design of the Team concept. Thus, we removed the "leave" functionality for single admins from the frontend. However, we offer a "delete" button that only the admin will have access to.
- We initially planned for no part of the site to combine information from several organizations once a single organization was selected (each tab would show only information specific to the selected organization). This was to ensure clean separation among different Teams; however, we now allow for showing "all claimed shifts" in the Timesheet tab across all organizations. This allows volunteers to ensure that they are not double-booking themselves without having to switch between the Timesheet tab for different organizations.
P6 - Final Release
- We initially implemented a "Select Organization" dropdown for the user to choose an organization. However, our users didn't notice the new tabs that appear after using the dropdown, indicating a need for better visual cues; thus, we added a green success message after changing organizations to draw user awareness to the top of the screen. Additionally, users all attempted to click the organization cards, which originally were static, so we removed the dropdown and instead made the cards clickable.
- To address our Patron Identification design opportunity, we implemented a search by name feature on our patrons page, in addition to the existing search by ID. This allows for patron visits to still be logged, even if they forget their registration card with their ID on it. It is also easier to type in their name than their ID in the case of no hardware (e.g. barcode scanner) integration and no ID shortening.
- As a response to our user tests, we made the process of adding a new language to the dropdown more intuitive with a placeholder; during the creation of a household or a new language audio, an instruction that users can "Enter a new language" is clearly displayed. This should remove a lot of the confusion that our users had during testing.
- Initially, shifts could be created by clicking and dragging. However, in response to our user tests, we've added functionality to allow admins to double click to create a shift (defaulted to two hours), and resize and drag shifts to edit them. In order to respect volunteers' schedules, if any volunteers have claimed the shift, then admins will have to delete the shift and create a new one in order to change the time. These functionalities will make it much easier to recover in case of user error, since admins will not have to delete and recreate shifts that were placed at the incorrect time.
- To take into consideration our user feedback, we've added a volunteer capacity to each shift, which represents the maximum number of volunteers that can claim a shift due to physical limitations at the pantries. Now, upon shift creation, admins will be prompted to enter the number of volunteers desired, which will appear on the calendar. Users will not be given the option to claim shifts that are already at capacity. Furthermore, admins can update the number of desired volunteers at any time, as long as the new capacity is not less than the amount of volunteers that have already signed up.
- Initially our allocation algorithm would guarantee that supplies lasted throughout the week, assuming that pantries are open 5 days a week and restock on Sundays. However, to accommodate pantry-specific needs and generalize the algorithm, we implemented a functionality for organizations to specify the days on which they are open, as well as when they restock. This guarantees that all organizations can benefit from our algorithm.
- Several actions that are more novel to our app or specific to food pantry operations, such as "update daily allocation," the "max per household" number, and creating shifts, proved to be less intuitive in our user tests. To address this, we implemented tool-tips that display on hover with concise explanations as to how to use these features. Adhering to Fitts's Law, the tool-tips are placed right next to their corresponding actions in order to best ensure user understanding.
- Originally, we introduced dietary restrictions by tagging items as "free" of specific allergens (e.g., "nut-free," "vegetarian," etc.). However, as the majority of items in our inventory are allergen-free, the excessive number of tags might overwhelm users. Consequently, we have opted to "reverse" these tags, now indicating what each item contains (e.g., "contains nuts"), which allows volunteers to easily identify and avoid items with specific allergens. Furthermore, when selecting dietary restrictions of individual households, we added option groups as an accelerator; for example, users can select all foods that fit into the "vegetarian" dietary restriction all at once.
- Previously, our allocation modal displayed items in rows, but volunteers may need to scroll and remember each item and the number of units they need to retrieve and distribute to the patron. Instead, we now display items in grid view allowing volunteers to see more items simultaneously and quickly adjust the number of units they want to allocate.