Back to Parent

Outcome


Mealorderbot
Show Advanced Options

MealOrderHelper is an SMS bot aiming at helping students with busy schedules at CMU order lunch/dinner easier.


Objectives:

I came up with this idea from the friction that I have experienced during the process of ordering meals in Wechat groups from nearby restaurants. From my observation, most of the Chinese students at CMU are having the same frustrating experience: We need to first join a number of meal delivery groups on Wechat. Since each restaurant has their own group, our main chat screens have been filled these groups with unwanted messages popping up all day. Then we type messages to tell the meal provider number meals we would like to order, the location we would like to pick up (choose one from Gate Building, Cyrt Hall, and Library) and other add-ons. Sometimes the meal provider will miss someone’s order due to a large number of messages. Finally, when the meal provider arrives on campus, he will notify students to pick up by sending a message in the group. That time is not fixed every day so students will need to constantly check the messages in groups in order not to miss their meals.

On the meal providers’ side, Wechat has a limit of 500 people at maximum for each group, so some of the restaurants have up to 4 groups to manage, which adds to the difficulty for them to organize and track everything. Some students will change pick-up location, cancel meals or change beverages after making an order, which makes it even messier for them to record everything precisely.

Therefore, I see the opportunity of making a chatbot to connect each student and each meal provider. With its help, students only need one conversation interface to order meals from different restaurants without having to endure endless popping-up messages created by other students making orders. Also, meal providers no longer need to keep eyes on various chat groups and keep track of everything. The chatbot should automatically generate a neat list of order details for them.

Problem
Show Advanced Options

Bot Personality:

I designed the bot's personality to give her a subtle sense of human touch. MealOrderHelper has a warm and lovely personality. She is super friendly and helpful, very polite but not so formal. She is like a friend who really cares about you and supports you. In the current version, she can only react to your requests, however, in the future she will not only be a submissive servant but will also suggest you do things. She is likely to say something like: “Hey do you want to skip your lunch? Why not quickly order something now. Don’t work too hard! ” “Wow restaurant XX is providing your favorite poke bowl today! Would you like to order one?”

Personality map
Show Advanced Options

Conversation Structure:

The full function of this bot should be able to serve two groups of people: the students who want to order meals and meal providers who run the restaurant and delivery business. The conversation design focus on providing clear guidance to reduce confusion during the conversation, simplifying the process and handling errors gracefully. In the current version of the functioning prototype, I only worked on the student side interaction.

Mealorderhelper flow chart 01
Show Advanced Options

Data Structure:

To realize the proposed function, 4 relational tables need to be created. "Students" table and "Providers" table are used to store information related to each user, while "Menus" table and "Orders" table are used to compile logs made by all the users.

Mealorderhelper data diagram
Show Advanced Options

Programming:

The prototype is written in Ruby with Sinatra framework, then it is deployed to Heroku server and connected to Twilio's SMS services. The script mainly contains a series of conditional statements to keep the conversation going.

Coding
Show Advanced Options

I have used a built-in Time method to pull the current local time, therefore when users ask for the menu, the bot will let them know whether they can make an order now and show them the right menu if it is available at the moment.

Show Advanced Options

Prototype Screenshots:

Combine images
Show Advanced Options

Next Steps:

I will finish coding the meal-provider-side conversation and incorporate sessions and database into the code to make it capable of storing each user's data. Also, I will define more classes to make sure all the keywords that I have defined don't conflict with Twilio's commands.

Drop files here or click to select

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