Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Describe the internals of your implementation, but keep the discussion on a high level. Discuss important design decisions you made in the implementation. Also discuss how implementation problems may have affected the usability of your interface.

Our user interface uses runs in-browser using Silverlight, and is implemented using C# code. The interface is resizable. The interface is split into two main sidebars: left and right. Both side bars have their own .XAML file and .XAML.CS file. The Silverlight SDK provides all the widgets used in the interface. It uses Silverlight's layout system to organize the widgets (which are from the Silverlight SDK), and is therefore resizable. One problem that we had to circumvent was the long draw time of the word search in the left side bar. In spite of the clipping stage of the renderer, due to the shear volume of off-canvas things that needed to be drawn, the GUI would block for long periods of time. We had to implement an algorithm that reduced the amount of processing of off-screen clipping (by computing the visible contents based on scrollbar position and adding only those widgets to the layout).

The server-side backend is written using ASP.NET scripts which communicate with a MySQL database instance. Initially, our original computer prototype had no back endsimply read the sentence and word databases from built-in text files instead of communicating with the server, so we could did not support user accounts until late in the implementation stage. However, with the exception of the login screen, this did not pose a problem for testing most of the functionality of the user interface.

One design decision we made to simplify implementation was that all information - namely, the list of sentences, the words, and their translations and romanizations - would be retrieved from the server at login time. This was meant to ensure that no latency from communicating with the server would be seen while the interface was actually being used. However, one usability issue which resulted was that login times tend to be long due to all the downloading that is taking place. We managed to alleviate this by having shared portions of the data that would need to be downloaded by all the users (for example, the word database) be loaded in the background while the user was still at the login screen. Additionally, we have a loading screen with an animated progress bar to provide feedback for the user while the page is loading. Another issue which results from our decision to download all data from the server at login time is that if other users contribute a sentence, then the sentence won't be observed until the next time the user logs in.

Evaluation

Describe how you conducted your user test. Describe how you found your users and how representative they are of your target user population (but don't identify your users by name). 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. List the usability problems you found, and discuss how you might solve them.

...