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

Compare with Current View Page History

« Previous Version 14 Next »

Design 




a




This is the default home page. It was implemented so that there would be a default page, as before we linked directly to the user's profile (which was an unprofessional design choice at best.)




b



The next step was clicking either "Sign Up" or "Log in."  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.






c




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.




d



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.




e



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.




f




This image shows a selected profile picture.




g



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.




h



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.




i



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.




j




Here we display the logout page for our service. Note that the navigation bar has changed to exclude all options available to logged in users.

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

User 1: Elizabeth’s 11-year-old sister, who enjoys reading.

Usability issues found:

--Attempted to search by pressing Enter, which is functionality we intended to implement but did not have time to complete

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

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

--Did not understand why confirmation was needed for recommendations, especially since it was not needed to add/remove friends.

--Tried to add books to the reading list by visiting the Reading List page, rather than the page for the desired book.

Reflection

  • No labels