Versions Compared

Key

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

User tests

To access our app: http://people.csail.mit.edu/d_chang/smak/Image Removed

User 1

TODO: Andrew clean this up

tasks: I told him not to pick Boston, but to pick florence.
he tried to click on a particular place shown by the map.
he looked around the map to pick places.
wants a search feature for the map where you can find restaurants.
he manually plans for walking time, though didn't include enough.
the autocomplete for places doesn't really succeed in finding things that well.
It would be good if you could click on the map to pick a place.
if they type a full name, I should search for the location with google maps
he thought of the idea that he could drag the thing to where he
wants to go. that worked well, but placing it there, it did not stay.
his loop is: seach in the map for interesting places, then type in the name.
he knows how delete works.
The tabs are pretty intuitive.
the start and end time should be shown 
"how do I save?" we should have a way to email the schedule or something at least.
the autocomplete should recognise a category name and show options for that.
the location of a specific place is not actually being selected.
It should pop to the nearest place matching that category.
clicking on the pin, the nature of the info displayed is non-obvious.
It is not obvious what the start and end times are.
took a while to discover that you can lock something.
It is hard to lock things because clicking the lock is hard (fatfingers).
redo doesn't completely reverse the operation.
selecting an event should scroll to the event.
Changing the time fucks everything up.
It removes the schedulegrid.
Undo fixes that.
And then he somehow breaks everything and cannot create activities.
"""There should be a button that just says "pick shit for me to do"
that picks the top-10 things.""" (I disagree with this.)
He did not use autoschedule.

...

  • User tried tapping instead of dragging the resize handles.  (minor)
    • Possible solution: better grip icons
  • Earliest start and latest end times were unintuitive and unused by the user.  When the grey bars appeared, the user was unsure of their meaning. (minor)
    • Possible solution: remove feature altogether. 
  • On multiple occasions, the user tried to add a new activity while an activity was selected. Because the uses the same form to add a new activity as to edit an activity, a new activity could not be added until the activity was deselected. 
    • Possible solution:  Do not reuse the form to edit activities. Make the form inside the activity or as a popup box. (major)
  • User tried pressing the “Schedule these activities for me” when there were no activities in the unscheduled activities column.  It is unclear to users that auto-schedule does not help optimize the current schedule, but instead optimally moves unscheduled items into the schedule.  (major)
    • Possible solution: Make more descriptive  label for button

User 3

TODO: Chris

Report

Design

Structure and flow

...

  1. Left column (Add activity): user can add an activity, and change properties related to that activity such as its location, name, earliest start time and latest end time (e.g., museum closing times).  When an activity is added, it appears in the list of activities (center) column.
  2. Center column (List of Activities): A list of all activities that the user wants to do, but have not yet been scheduled.  This is conceptually a TODO list: activities in this column have a duration (which can be changed by the user), but haven't been given a specific start time.  Activities move between this and the right column as the schedule changes.
  3. Right column (Schedule): The concrete schedule of activities.  This column has an hour-by-hour calendar feel; activities placed on it have a duration and start time and abide by the following constraints. First, no activity may overlap with another activity (you can't be in two places at the same time).  Second, no activity can start before its earliest start time (specified in the left column) or after its latest end time (you can't visit a museum after it has closed).  Each activity has a "locked?" button which indicates whether the start time is flexible (this will be explained below).

TODO: Chris, picture with no red lines


The final design has the following flow.  The user adds a set of activities in the left column.  Then, the user constructs a final schedule through an iterative process of moving activities between the list of activities and schedule column.  When the user moves an activity from the list of activities to the schedule, some activity from the schedule may be displaced and moved back to the list of activities.  The application provides a "schedule these activities for me" button, which tries to schedule all of the remaining activities in the list of activities in one click.  When the user is satisfied with the state of the schedule column, the scenario is complete.  

...

In addition to rendering the boxes for each activity, the view also dynamically updates the activity boxes as they are moved and resized so that they show error messages, map labels and the current duration and times.  A single activity can be selected, at which point, it greys out parts of the schedule in which the selected activity cannot be done between.

TODO: Andrew: maps

Model

TODO: Andrew

- object array / uniqid

...

The auto-scheduling algorithm, in addition to the above heuristics, tries to minimize the average euclidean distance between each activity.  This was also done to generate better schedules: given a set of activities, the user wants to complete as many as possible in a fixed amount of time.  The algorithm internals are traveling-salesman-like: we have a set of unscheduled items which we add to the schedule in different ways (while observing the "principle of least destruction").  Then, we choose the best complete configuration based on the weight function we described above plus the distance metric.  Despite our small problem scale, the brute force approach did not work time-wise; so our algorithm is greedy, with intelligence to avoid getting stuck in bad schedules.

Evaluation

TODO Chris, user test information (volunteers?)

...