As usual, be complete, deep, and concise. Tidy up your entire wiki to make it a usable presentation of your term project. If your project changed direction or scope over the course of the semester, update earlier sections (such as the original Problem section you wrote for GR1) to reflect your final project.
Design
Screenshot |
Feature |
---|---|
|
1. The Home Page |
|
2. Left Navigation |
|
3. Logging out |
|
4. Add a Wishdex |
|
5. Add an item |
|
6. In-place |
|
7. Item information editing |
|
8. Tooltips |
|
9. Sharing a Wishdex |
|
10. Explore page
|
|
11. Friends page
|
|
12. Item information popup
|
|
13. User page |
|
14. Stylistic changes
|
Implementation
Our project is a website, and was thus made using standard web programming tools. The frontend is entirely HTML, CSS and JavaScript. The backend was written in Python using the Flask web framework, utilizing SQLite for the database.
Important Design Decisions in Implementation
- Minimize page refreshes
To improve the usability of our interface, we tried to avoid have the page refresh when the user performed most actions. For example, claiming, liking, and commenting do not cause apparent page refreshes. Even more complicated actions, such as deleting items occur without a refresh. In cases when a refresh is necessary, we tried to keep the experience as stable as possible, such keeping the item popup open when copying an item to a different wishdex.
- Download pictures to keep browsing fast
Initially, we only stored image URLs and loaded and resized them on page load. However, we found that this made browsing slow, particularly for the scrolling interfaces we had built for the Popular page. We therefore wrote the add item process to download and locally store small versions of the images.
- Keep structure simple and consistent
We decided to use Flask and SQLite because they are a “micro-framework,” meaning it allows for simple views, templates, and models without extra capabilities provided by more elaborate frameworks. In addition, we tried to keep aspects such as URL structure and parameters for AJAX calls as simple as possible and consistent across different but similar use cases.
- Force Facebook Connect for login
We chose to keep the login process as easy as possible by only allowing Facebook Connect. This allowed us to get simple information about the user without requiring another form. This also prevented some validation from having to be written on the backend.
- Only allow comments not replies
We chose to only allow comments on items without any replies to them. This greatly simplified the interface implementation on the frontend and the backend structures necessary to store and access the comments. We believe that comments alone are adequate for a user of our website.
Implementation Problems and Effects on Usability
Note: Some smaller issues, such as the user's icon next to a comment not directing to the user's profile page, are mentioned in the Evaluation section.
- Scraping limitations
We only implemented a scraper for Anthropologie items. This automatically fills the fields of the “Add Item” popup when the user enters a link. The lack of a scraper for other links makes the site much less efficient for adding items, which is one of our core functionalities, because the user must enter the item information manually.
- Speed issues
Although using SQLite as the database kept our development environment simple, it also contributed to some of our pages loading slow at times. In addition, some of the frontend had fairly heavy JavaScript usage, such as the popup boxes. This issue added to page loading times. Both of these problems affected feedback on certain actions to some degree.
- Facebook Connect
As mentioned in our Evaluation section, Facebook Connect is not the preferred method for logging in for some users, who prefer not linking their Facebook information with other services. Although Facebook Connect made login more efficient, it also made our website less desirable to use for some users.
Evaluation
We conducted a user test on Sunday, May 8th, 2011 at the MIT Student Center.
We looked for three users who would be representative of our target user population. Our target user population was users in the 18-30 age range who felt comfortable using computers to surf the Internet or do work. The logic behind this was that Wishdex is an online shopping tool for indexing items found while shopping online or browsing the Internet. The tool would only be useful if the user felt comfortable using a computer and online shopping sites. The users we managed to find were all fellow students who fell in this target age range.
We approached students who were already sitting in front of a computer, in the MIT Student Center computer cluster. We found two female and one male test user. Our target user population is skewed towards the female population, because we observed that female students tend to shop online more frequently. However, we built Wishdex with the hope that it would appeal to male users as well, and made sure to find at least one male test user.
Process
We followed the following set of steps with each test user. We made sure that the test environment was as standardized as possible.
- The facilitator reads the briefing (see Briefing section) to the test user.
- The facilitator reads each task one by one (see Tasks section). After each task is read, the user attempts to complete the task while vocalizing their feedback. Where appropriate, the facilitator encourages the user to provide feedback.
- The observer records the feedback given by the test user.
Roles
- Susie Fu facilitated the test.
- Emily Zhao observed the users.
- Ashutosh Singhal was on call to perform last minute bug fixes.
Briefing
Our application is Wishdex.com, a site that helps you keep wishlists. You can keep track of items you find online, show your friends and family gifts you want for Christmas or your birthday, and see what your friends are interested in or check out popular items on the site. We're doing this test to get some feedback on how well we've designed the user interface. There are probably a lot of problems with the design, and we need help finding them. Keep in mind that we're testing the computer system, not you. Also, the results of this test will be kept completely confidential, and you can stop and leave the test at any time. My name is Susie, and I'll be reading out the tasks we want you to perform. This is Emily, and she'll be taking some notes to help us remember the problems we find.
Note that we did not use a demo as part of our briefing. The motivation for this was that we wanted our site to be usable without a demo to the test users we were able to find. We designed Wishdex.com to be a site that someone who falls under our target test definition can go to and instantly be able to use.
Tasks
- Log in
- Managing
- Create a new wishdex called "Birthday Wishlist"
- Add new item from Anthropologie.com to this wishdex
- After adding the item, change the item description
- Create another wishdex "Christmas" and move this item to the 2nd wishdex
- Share "Christmas" with your mom
- After some thought, you decided to buy this item on Anthropologie.com. You still want to keep the item on your wishdex, though, but you want to mark that you've acquired it.
- Delete an item
- Exploring
- Browse popular wishdexes on the Popular page
- Check out the recent activity
- Friends
- Find Emily's wishdex, "Cool Patterns"
- Like one of the dresses in her Wishdex
- You want to buy this item for her, so claim the item and view the item on the Anthropologie.com website
- Copy an item that you like into your own "Birthday Wishlist" wishdex
Usability Problems Found
Severity |
Description of Problem |
Possible Solutions |
---|---|---|
Cosmetic |
Finding Wishdex.com - One user went to wishdecks.com instead of wishdex.com. |
Buy both domains |
Minor |
Log In - One had deactivated her Facebook account. She had also let a friend log into Facebook on her computer, so she had to log that friend out first. |
Allow users to create an account and then later possibly link to Facebook. |
Major |
Log In - Two users were reluctant to sign on using Facebook Connect. We had to reassure them that we were only pulling their full name and their profile picture. |
Put a tooltip near the login with a disclaimer that we will not interfere with their Facebook lives or take any personal information. |
Catastrophic |
Add Item - One of our users accessed the Anthropologie UK site. Although the item information scraping code works for the US site, it failed for the UK site. |
We need to improve the scraping system immensely. This was a warning that unexpected things will break. We should look into APIs and smarter ways to get item data. |
Cosmetic |
Edit Item - Every time the user edited the item description, an extra space automatically appeared at the beginning of the item description. |
This is clearly a bug. We need to look at the code and if necessary strip the space on the frontend. |
Minor |
Share Wishdex - With an item box open, it was difficult to find the "Share Wishdex" button. Many first tried "Item Link." |
Ideally, users should be able to share individual items as well as entire Wishdexes. The backend functionality is already built in, we just need to add a button. |
Minor |
Share Wishdex - Users clicked on the Share link a few times. They expected more to happen. |
We should implement automatic selection and copy pasting, with a tooltip that says "copied." |
Catastrophic |
Viewing - A user tried to click on the user's icon next to their comment. However, clicking on their name/image currently does not do anything. This can be potentially confusing or inconvenient for the user. |
We can make the user's icon link to that user's Wishdex profile page. |
Major |
Move Item - The user clicked on an item and tried to drag it into another Wishdex on the left navigation. |
We should implement drag and drop to move items into other Wishdexes. |
Cosmetic |
Copy item - Copy item is what we label the button used for the user to copy an item into one of their Wishdexes. The user found "copy" to be a misleading word. She said it implied copy and pasting, such as with a link. |
We thought of changing the word "Copy" into the word "Add" with an icon that matched the "Add Item" icon, so maybe users will associate it with adding an item to their own Wishdex. |
Major |
Like Item - Two users wanted to see who else had liked an item. |
We should implement this. |
Minor |
Copy Item - After copying an item from another user's Wishdex into his own Wishdex, the user was redirected to his Wishdex. He said it would be nice to stay on the friend's page. |
We are not convinced that all users will feel this way. We would probably run a slightly bigger test to see what people prefer, or maybe implement some way of giving users a choice. |
Cosmetic |
Move Item - A user tried to add an item from a different Wishdex by clicking on "Add Item" in the new wishdex. |
We felt that drag and drop would probably clear up the confusing around moving items between Wishdexes immensely. We want to avoid implementing this too many times. |
Cosmetic |
Explore - One user avoided hovering over the items on the Explore page. Instead, she pressed the arrows on the sides and did not discover the hover function. |
One suggestion is to have a tool tip over the items the first time a user visits, telling them to hover over the items. Once a user tries this once, they often remember it. |
Cosmetic |
Claim - When trying to go to the item's webpage, one user first thought of clicking the item name. She was hesitant to click "Buy" because she wasn't sure if it would immediately go to the buying page. |
We are considering changing the word "Buy" into something more informative, or having the tooltip be visible by default. |
Reflection
Discuss what you learned over the course of the iterative design process. If you did it again, what would you do differently? Focus in this part not on the specific design decisions of your project (which you already discussed in the Design section), but instead on the meta-level decisions about your design process: your risk assessments, your decisions about what features to prototype and which prototype techniques to use, and how you evaluated the results of your observations.