Back to Parent

Outcome


Shopping header
Show Advanced Options

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
Show Advanced Options

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
Show Advanced Options

What can ShoppingHelper do?

The desired features are shown in the following matrix.

Desired features
Show Advanced Options

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?

Workflow
Show Advanced Options

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.

Hello
Show Advanced Options
Help
Show Advanced Options
Inspiration
Show Advanced Options
Add
Show Advanced Options
Delete
Show Advanced Options
All items
Show Advanced Options
Clear
Show Advanced Options

Relevant Supporting Documentation

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

Walmart
Show Advanced Options

Future Work

Functions: 

  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.
Formatting:
  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.

API:

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

Reflection

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.

Drop files here or click to select

You can upload files of up to 20MB using this form.