GR6 - User Testing
Design
Final Design
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Design Decisions
Title |
Screenshot |
Alternatives |
Description & Justification |
---|---|---|---|
1. Title Screen |
|
|
|
2. Tutorial Screen |
|
|
|
Implementation
Client Application (Front-End)
Discover.Me was developed as a native Android application using the Android SDK. Eclipse was used as a development environment, and we made use of the emulator and 3 different Android devices for testing. Java was used as the programming language, and all the views were programmed from scratch. We made use of default Android components (EditText, TextViews, TimePicker, Button, ImageButton, etc.) in order to maintain consistency with the Android platforms design guidelines. Image assets were hand-created using GIMP and PhotoShop, and some of the icons were gathered from freely available icon packs. We made use of the Android Google APIs in order to render the map view, as well as for getting geographical and location based information. Each view seen in the application (called an Activity) is created using a mixture of declarative and programming approaches (as seen in the figure above). Locally persistent information is stored on the device's storage, and directory or database intensive information were stored on a local SQLite database on the device. The device also caches information sent from the server in order to speed up queries. For example, the directory is loaded from the server, and then locally cached on the device in order to make searches much faster, and this was crucial to enable our suggested/autocomplete search functionality in our application to work efficiently.
Server Service (Back-End)
In order to ensure data stays persistent, we made use of a PHP server as a back-end service to store the user's information which is sent from the device. We implemented an asynchronous thread on the client which frequently sends information, such as the user's location, to the server which would then proceed to push the information to all other devices. This was used in order to enable multiple users to keep track of one another's location. Our notifications service also used the same system in order to send notifications about an action one user performs to another (i.e. Alice creates an Event and invites Bob. The event information is pushed from Alice's Device to the Server. The Server stores the information and generates a notification to Bob. Bob's device will pull the updated notifications and visually displays it to Bob.). Several PHP scripts were written in order to perform actions such as Creating an Event, Proposing a Change to an Event, Sending a Friend Request, Deleting a Friend, etc. Data-related storage were stored as .txt files on the server, and were prefixed with the user's MIT ID. For example, the list of Charlie's friends would be charlie_friends.txt.
Evaluation
Conducting the User Test
TODO: Describe how you conducted your user test.
User Population
TODO: Describe how you found your users and how representative they are of your target user population (but don't identify your users by name).
Task Briefing
TODO: Describe how the users were briefed and what tasks they performed; if you did a demo for them as part of your briefing, justify that decision.
Usability Problems
TODO: List the usability problems you found, and discuss how you might solve them.