The project is part of the Product Design course at Wharton school. In this project, we designed a home security device and corresponding mobile app for users to keep and manage their keys, in case they forget their key at home, or have guests when they aren't at home. 

The team consists 5 students from business and engineering school. I was responsible for industrial design of the physical product and UX design of the mobile app.


People have all kinds of issues with their keys and their house doors:

  • Parents are concerning about the key bands around their kids' necks, 
  • Someone with a bad memory always lock herself outside the house, 
  • Some people thus put a key under their mats even knowing that is dangerous, 
  • Some airbnb hosts put keys in lock boxes then hide them far away from the house and cause huge trouble for their guests...


KEYPER is a smart lock box installed outside home, contains a key of the door it is next to. Users can get the key by entering a PIN code. The device will retrieve the key after you open the door.

The product is designed around a real key, so it is easy to install comparing to electronic locks. KEYPER could be useful to families with kids or Airbnb host houses.

The Device

The box runs on 2 AA batteries and is firmly fixed to the wall by 4 fixing screws. 
The key is connected to a special nylon band and will drop after entering correct pin code.

Set Up New Device & 
Put a Key Inside

Upon getting a new KEYPER, sign in the app and add the device to your account, by entering the serial number. You can also do some preference settings during the process, including change device nickname and on/off location and notification.

Then open the KEYPER with a default PIN code, fix it next to your door, and put the key of the door inside it.

Change Long-Time PIN &
Get Key with the PIN 

Householders can change the long time PIN of the device through the app.

Then householders can get the key by entering PIN code, when locked out of their house.

Temporary PIN for Guests

Users can generate temporary PIN for guests who need to get into the house, and then send them the PIN.

Householders can set a time period for the temporary PIN. The PIN will expire and become invalid after the time.

App Iterations 

We ideated around what features the app may need. For each device, we will have several operations including:

  • Setting/changing the device's long-time PIN,
  • Generating temporary PIN,
  • Checking the device's location.

There're also some setting about the device, like its name, the on/off of location and notification. Considering a user may have more than one device, a list of all devices attached is needed. 

We made some explorations about how to achieve and organize these functions. We recruited 6 people (2 of them are Airbnb hosts and 2 has kid) to take part in the exploration and provide feedbacks.

How are the features organized? 

We tried to come up with different ways to organized the app features. As what is determined before, we will have a list of devices and a list of operations for each device. We can make the device list as the home screen and hub of the whole app, while each item in the list leads to a menu of its operations. We can also make the operation list of a certain device as the hub, and call a device list out to switch between devices.

Considering that the number of devices each user has will probably not be a big number, also the users tend to have one frequently-used "default" device, we chose the operation-centered structure, and explored differnt ways of interaction to achieve it. 

To better organize the features, we added a bottom tab bar, which allows us to put "Device Operations", "Device List"  and "Account" as parallel sections. The "Device Operations" tab is set as the home screen and shows user's most-recently used device. In the "Device List" tab, user can switch the device shown in the "Device Operations" tab. 

We also chose a single-column list rather than a grid list as the vessel of the operation list for product image considerations.

Keep the App Safe 

We need to decide whether or not to ask our users to sign up an account for KEYPER. The loop can run without a user account, while the app just serves as a dock for the devices. Also to sign up will bring extra chores for our users. On the other hand, to let each user has an account will benefit us in a lot of aspects in a long term. And we can make the process of signing up less boring with good UX design. 

What's more important is to keep the app safe. We need to verify it's the right person who opens the app and changes the PIN code. The need of safety finally leads us to the decision of asking users to set up an account (and its password). 

It will no doubt be very annoying if we ask our users to enter a 10-digit password every time when they open the app. Thankfully we can allow users to user their 4-digit phone password or fingerprint, as long as they verify with their account password at the first ever time. In that way, the safety factor of a quick logging in is equivalent to that of logging in with a 10-digit password.

From "One-Day" to "Temporary" 

In the first version, we set a one-day valid period for the PIN codes for guests, because we thought it would be safer to frequently change the PIN, even for guests who need to stay in the house for a few days.

We really received valuable feedback from our interviewees. They didn't think it adds to safety and thought it would bring bad experience to their guests to change their PINs every day. Counting into the fact that the average length of an Airbnb stay is around 3-5 days in most countries, we added a feature of setting the valid period length in guest PIN generating process.


We figured out ways to realize the features and organize them. We finalized the user flow charts and wireframes before building high fidelity prototypes in Sketch.

Visual Identity

Prototyping & Design Fair

We made a 1:1 scale model of KEYPER out of acrylic and metallic paint to show the product's exact looking and texture. We also created a functional prototype based on an Arduino UNO and some subsidiary components like micro-servo and keypad. Both models were shown on the course final design fair.