You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 39 Current »

Design 

We based our design on the following principles:

  • Simplicity and attractiveness of design
  • Safety from errors
  • Efficiency and ease of use

Our final design is the result of three iterations of testing and evaluation. Below are the design decisions we made on each:

Paper prototype

Several important changes resulted from this iteration:

  • More uniform colors in accordance with internal consistency
  • Static navigation bar to replace the navigation page
  • Elimination of the special "Librarian" user


Heuristic Evaluation

The second iteration of our design yielded much criticism and many changes for our user testing phase:

  • We had not known we were allowed to use outside libraries in our design, so our visuals left a bit to be desired.  We chose to implement bootstrap for the next iteration.
  • Our responses mentioned the wasted space on the right on every page; we had chosen this layout in order to make the webapp easily adaptable to vertical screens, but it resulted in an unattractive layout.
  • One could only recommend books to one person at a time; since the goal of the webapp was to encourage social interaction, we decided to allow people to recommend books to several people at the same time.
  • The navigation bar did not display the page in this iteration; we changed this in the next iteration, enhancing state visibility.


User Testing




a



The "Log In" and "Sign Up" pages are almost identical.   These were separated because we observed that it was common to input a username and password in the incorrect boxes on websites that display both "Sign Up" and "Log In" options on the same page.  None of our test users complained about this, so we thought it safe to implement this even though it goes against standard practice.




b




This is the home page once logged in. It displays four icons that the user may use to link to different pages: their own profile; a list of their friends' profiles; their own reading lists; and a search page for all books. This page reflects an important design choice--every page is designed to be easily adapted to a mobile device screen. Furthermore, the color scheme is a result of our previous test iterations, where it we found that more consistency and a reduced color scheme were desirable.




c



This page is the logged in user's profile. In order to enhance the experience of the students and make the webapp more appealing and marketable to high school students, we decided to let them modify their profile picture. Furthermore, we decided against letting the students upload their own images in order to prevent misuse or inappropriate imagery.




d



Here we show the dialog that allows users to modify their profile picture. They can select a picture from a list, which becomes visibly selected, and apply their changes with "Save Changes." We chose this interface to minimize mistakes, and to maximize reversibility.




e



The friends list displayed in this image is not reciprocal; that is to say, if one user A adds another user B, then B appears in A's friends list, but A does not appear in B's friends list. We came to this conclusion to minimize clutter, and following the model of many other social networking sites, such as Spotify and Twitter. This feature allows one user to follow the reading preferences he likes, but does not force others to see his own preferences.




f

The user's reading list displays books he has read, books he plans on reading, books he has been recommended, and books he is currently reading. We added boxes surrounding the books at the recommendation of our test users in order to increase readability. Although Meelap Shah had recommended zebra stripes, we found that they clashed with the design of the rest of the website, and instead chose to enclose each book in a box. Aside from fitting the aesthetics of the site more closely, the boxes increase the space between books, making each book a unit instead of a part of a table.




g


This page shows the list of books that is available in the library.  It includes two different ways of finding books to read: The search bar and the new books browsery.  The search bar includes an autocomplete function that allows us to dispense with the traditional alphabetical search function.  We reached this conclusion based on our test users' reactions.




h



 
Our user testing phase complained of the fact that our buttons on this page had been different during testing. In order to improve the aesthetics and the internal consistency of the page, we made the buttons match.

Further Considerations

Our evaluation indicated that users prefer larger buttons and text over smaller ones, and to this end, we increased the size of both. This also improves the transferability of the design to mobile devices.

Implementation

We implemented the backend for our app with Parse, a Javascript-based backend which stores data online and thus does not require a server to be set up.

Each user stores the following arrays: friends, already-read books, currently-reading books, going-to-read books, and liked books. Books are added to the “liked” array if the user rates them more than 3 stars, and removed from it if the rating is changed to 3 or fewer stars.

Books store title, genre, synopsis, an array of comments, and an array of ratings. Comments and ratings are themselves objects. Comments store the username of the user who created the comment and the text of the comment. Ratings store the username of the user who created the rating and the number of stars the user gave.

Book recommendations are stored as objects containing the ID of the user recommending the book, the ID of the user the book is recommended to, and the title of the book.

The decisions we made for implementation did not directly affect our interface. However, because we took a long time to choose the language for our backend, and struggled to implement it, we were not able to devote as much attention to the frontend as we would have liked.

Evaluation

Scenario

You want to know what your friends are reading, and you want them to read books you have previously read. This way you can bond over your shared reading experiences!

Tasks

  1. Create a profile.
  2. You are looking for a book to read later. Find one in which you would be interested later.
  3. Add Allison Abernathy as a friend.
  4. Find out who is reading the same book as you.
  5. Recommend the book to another friend.
  6. Delete Allison from your friends list.

User 1: 11-year-old avid reader.

Usability issues found:

--Attempted to search by pressing Enter, which is functionality we intended to implement but did not have time to complete (major).  There is no harm in just implementing it for every search bar.

--Was confused by the way in which ratings were displayed. The average rating is shown if the user has not rated a book, and she did not understand this. She also did not notice the “Average Rating” and “Your Rating” underneath the star selection (catastrophic).  Possible solutions was to display Your Rating and Average Rating as starts as well, with the label to the left of the stars instead of above the stars.

--Accidentally clicked on the user below the one she was trying to add as a friend, indicating that perhaps the user entries are too close to one another on the page (major).  The solution to this is simply to widen the gap where appropriate.

--Did not understand why confirmation was needed for recommendations, especially since it was not needed to add/remove friends (minor).  In order to address this, we decided a possible solution was to ask for confirmation when asking to add or remove friends as well.

--Tried to add books to the reading list by visiting the Reading List page, rather than the page for the desired book (minor).  We decided we could also provide a popup with a search bar in the Reading List order to allow the user to add books to reading list as well.

User 2: 18-year old reader

--Wanted to upload own picture; looked for a while before realizing it is not possible (minor).  We were reluctant to allow students to be able to upload any picture in order to keep obscene or objectionable material from school webapps, but decided it may be possible if the administrators are notified whenever a student tries to change a profile picture so that they may review the change; if this is not possible, we wanted to just put instructions at the top of the popup.

--Preferred larger "search" button, particularly because search was not activated by hitting the "Enter" key (cosmetic, major).  The solution to this is simply to make the Search button bigger.

--Wanted to be able to change colors; complained of lack of settings (cosmetic).  Just as with pictures, we thought we could implement a small menu that allows users to change some settings including colors.

--Disliked having to go to book page to add books; wanted to add directly from book list (minor).  We thought it would be useful to use a small popup that has a synopsis an the option to add to one's own reading list and a small summary that links to the book page, but were uncertain due to the possibly reduced efficiency.

--Did not understand what links at top of "My Reading List" were for (minor). When clarified, responded by saying they waste space anyway.  The solution to this would be to place the Already Read section, which is likely to be the longest and least looked through, at the bottom, and to dispense with the links at the top of the page.

User 3: 16-year old non-reader

--Told me the links at the top of "My Reading List" were broken (minor). didn't understand that those links are only used/necessary if you have a really really long reading list of books, they help you jump down the page to the section you want to look under. Could solve using Meelap's idea of getting rid of those links entirely and making all the sections in "My Reading List" expandable lists with the plus sign next to the heading.

--When adding a book to "My Reading List", after clicking the button to add it said "It didn't do anything." (major) Solution, redirect the user to the "My Reading List" page after they add a book. Then they get the feedback instantly that it was successful.

--Upset at all the confirmations. (minor) Solution, we could get rid of the confirmations.

--Wanted a large selection of books. (minor) That was out of the scope of this project, if we had been implementing this as a real website we would have more books.

--Liked the ability to recommend books to friends. Also liked the ability to see what friends were reading.

Reflections

Elizabeth Attaway

In my opinion, we did well in integrating the comments we received during each step of the design process. However, it would have been better if we has implemented a more detailed computer prototype. Many of the comments we received for HW2 dealt with the fact that our prototype was unattractive (which was a result of our misunderstanding that external libraries like Bootstrap could not be used). We would have been able to get better feedback, and thus improved our final version more, if our prototype had been better. In addition, we would have done better to choose a backend early in the implementation process, which would have allowed us to focus more on frontend during implementation.

Paula Jacobs

This was my first UI oriented class and I think it was a success. Actually going through the design process, working with feedback at earlier stages, and creating with a team were all very useful experiences that I know I will refer to in the future. I’m happy with our final product, even if it wasn't perfect, and I've gained more confidence in my web programming abilities.  If I had to do this all again, I would have asked about using bootstrap or Jquery UI for the front end earlier. I may have went with Jquery UI because it seems a lot more flexible than bootstrap. I really liked parse and found it easy to learn for the backend, but the javascript version seems a little limited at this point. Still, I think everything turned out alright, but I think if we had started the backend a little earlier (which would have required us to know a little bit more about backend options and have confidence we made the right choice), we could have smoothed out all the wrinkles in our final iteration. Given our level of experience though, I think we did wonderfully.  As far as what features we used, we pretty much took it straight from our user tests and TA feedback. I would do the same again; only maybe I’d do another round of testing later in the process. 

Carlo Mannino

Our design relied heavily on extra feedback due to the setback we suffered in our computer prototype.  We incorrectly assumed we were not allowed to use outside libraries for the front end, which cost us valuable feedback for our computer prototype, since most comments were directed to the aesthetics of our design instead of the functionality or the details.

We managed to integrate almost all of the comments we received into our final design.  The most critical step, however, is the computer prototype; there are many things that are attractive on paper, but the change in the interface from the paper to the keyboard and mouse makes the paper prototype completely different from what will end up on the screen.

In retrospect, it may have been useful to use a backend that was more widely used for JavaScript; although Parse has many wonderful properties, in particular that we didn't have to set up our own browser, its documentation for JavaScript is patchy and incorrect at times.

Finally, user input is invaluable.  There were many cases where a feature that seemed completely natural and beautiful to us was awkward or misleading to other users.  This is particularly true when trying to work on a problem whose affected population we have no connection to.  It is a great experience to have; most projects one is likely to work one deal with populations at least slightly removed from the programmers, such that it is very useful to know how to approach such a problem.

Hannah Walker

A big part of what I learned from this iterative design process is that you will never make everyone happy. This really bothered me at first, because I am very much a people pleaser. I just want everyone to be happy with the design and our product, so it was hard for me when feedback from users was contradictory.

If I did this project again, I probably would have tried harder to get more users and more feedback because then I could see what feedback was more common among the target audience. That way it would be easier for us to incorporate designs that were more largely appreciated. Another thing I wish we had done differently was decide what our back end was going to be sooner. Although the back end didn’t have a huge impact on our front end, it did make it hard to allocate as much time as I would have liked to the development of the front end towards the end of the project.

Overall, I thought we did a great job. There were some user interface bugs that still needed to be worked out. However, we did a good job of incorporating the feedback we got, and there will always be room for improvement.

  • No labels