Made by Ran Tao

Found in Prototyping Bots

A shopping assistant bot on Slack that helps its user manage shopping list and give recommendations based on user's requests.


What is ShoppingHelper?

ShoppingHelper is a slack bot that assists its user to manage shopping list and give suggestions on desired items. It is designed for young professionals who are busy and rely on electronic devices that help them manage daily lives.


What does ShoppingHelper look like?


ShoppingHelper is a middle age man with a reliable and humble personality. He works as a personal assistant and is very good at memorizing and multi-tasking. He has a unique taste and is usually able to offer some great suggestions based on different preferences and requirements. His personality is reflected in the following map.

Personality Map of ShoppingHelper
Personality map

What can ShoppingHelper do?

The desired features are shown in the following matrix.

Matrix of ShoppingHelper's features
Desired features Ran Tao

The implemented features are:

  1. Managing shopping list including adding items and deleting items
  2. Allowing different users from different teams to do shopping
  3. Displaying all items on the shopping list
  4. Clearing all items from the shopping list
  5. Providing user with recommendations from online store (currently Walmart) on what user needs

When can ShoppingHelper help? -Using Scenario

Mike is a young programmer working for CodeFarmer Inc. He just graduated from school and started his professional life. As the workload in CodeFarmer Inc. is very heavy every day, he barely has time to go to Walmart and gets what he needs. Therefore, he usually does online shopping and needs something to help him remember what he needs. Whenever he finds something is running out, he can simply tell ShoppingHelper "I need [something]". Then, he will get some refined recommendations from ShoppingHelper on what he needs. Once he selects one, he can tell ShoppingHelper to "add [it]" to the shopping list. When he does online shopping or in the market, he can simply ask ShoppingHelper to "display all items" on the shopping list and finish shopping in a second.


How does ShoppingHelper work?


The workflow is considered from the end user point and separated into four stages - onboarding, pre-shopping, shopping, and after shopping. The onboarding stage is for the user to know ShoppingHelper. The pre-shopping stage is for ShoppingHelper to give user recommendations and manage shopping list. The shopping stage is for ShoppingHelper to display the whole list to the user and finally, for the after shopping stage, it is for shoppingHelper to clear the whole list for user's next shopping event.


How does ShoppingHelper get built?

Walmart API: The Walmart API is used to get the item information to give user recommendations of related products. The API will return the information in JSON format. ShoppingHelper will fetch product's name, price, and product link and give them to the user.

HTTParty gem: When Walmart API is used, it will respond the information based on a URL request. Therefore, the HTTParty gem is used to get the information from the URL. 

Slack-ruby-client gem: As ShoppingHelper is a slack bot, the slack-ruby-client gem is used in order to make ShoppingHelper talk to the user via Slack.


Media Documentation

I need [item_name]
add [item_name]
delete [item_name]
show all items on shopping list
All items
clear the shopping list

Relevant Supporting Documentation

The following is a screenshot of the statistics of API calls from Walmart API console. 

Walmart API console

Future Work


  1. Adding price comparison for the same result from different stores in order to give the lowest price.
  2. Notifying the user when certain products on the shopping list are on discount.
  1. Making the visual design of products' information better
  2. Adding interactive buttons so that user can add certain products to the list directly by clicking the button.


  1. Adding more online stores, such as Giant Eagle and Target


Keep trying and learning. At the very beginning, I planned to make the ShoppingHelper a SMS bot. Then, I was trapped in the logic of the workflow and querying data from the database. Using the 'session' function is challenging for me. When something is wrong, I do not know what happened to 'session'. I have to keep trying and finding ways to solve the problem. Although I did not successfully put it on SMS, the whole 'trying and learning' process teaches me a lot of things since I found many useful resources and tutorials that helped me a lot when I build it on Slack.

A bot is not just a bot. Before doing this project, my backend programming experience is zero. At that time, I thought that programming a bot is just set some triggers and related responses. However, through this project, I now know that a bot should have personality and programming a bot needs a systematic process. Otherwise, it is very easy to get trapped in the complicated process and the bot is not user-friendly at all.

Thank you, Professor Byrne. Although this project challenged me really hard, it made me pushing myself really hard and gave me a lot of confidence in facing programming challenges in the future.

Share this Project


49-714 Programming for Online Prototypes

· 14 members

An introduction to rapidly prototyping web-based products and services. This 7-week experience will teach students the basics of web development for online services. Specifically, well focus on lig...more

Focused on

A shopping assistant bot on Slack that helps its user manage shopping list and give recommendations based on user's requests.


December 15th, 2016