Team Members and Roles
Hannah Hu - Coded the task allocation algorithm, and wrote the Storyboards, Unimplemented Portions Scripts, and UI Overview sections
Cole Lodge - Coded the database, problem and solution overview, powerpoint slides, testing, and debugging.
Max Preston - Designed and coded flex, fixed, and recurring task screens, handled activity interactions and bundling for these screens, Prototype Overview part of writeup, screenshots
Gerard Sunga - Designed and coded main calendar screen, handled activity interactions for that screen. Helped with Revised Interface Design and discerning what was left out.
Problem and Solution Overview
Some people never learn to manage time efficently and worst, have to deal with forces beyond their control. This might lead to missing meetings and classes, falling behind on schoolwork and professional duties, and bad moods. Your Life is a scheduling application designed not only to keep track of your scheduled tasks, but also to schedule your unscheduled tasks. This allows for less stress and worry, helping keep the user from forgetting that reading assignment due tomorrow afternoon.
Tasks for testing our interface
Easy task: Navigating the calendar and viewing an existing task.
- This involves navigating the basic interface to choose an item in the current view or using the menu to navigate to the proper week.
Medium task: Adding a fixed task.
- This involves using the menu to make a new fixed task.
Hard Task: Adding a recurring fixed task.
- This involves using the menu to make a new task and choose the proper options in the recurring task menu.
Revised Interface Design
We tried to preserve our original ideas for the design, since the users of our low-fidelity prototype had no major qualms about it. However, one major issue many of the users faced was the non-intuitive nature of using the phone's menu button as the primary means of navigation. Consequently, we added a startup dialog to instruct the user on how to navigate the interface.
Scripts for unimplemented parts
Editing a task
Step 1: Select the task (see "Viewing task details" in Storyboards). Step 2: There will be an option to "Edit Task". Select it. Step 3: A screen like the New Task screen will appear to allow editing. Step 4: Follow the third screenshot in "Adding a new fixed task" in Storyboards onwards. Step 5: The task details will be updated accordingly.
Adding a flex task
Step 1: From the menu, choose New Task, then New Flex Task Step 2: A screen will appear to add details not unlike the ones found on New Fixed Task. However, there is no start date, but instead a deadline. Also, it will not recur. Step 3: Press Add Task to add it to the calendar. The app will run its magic algorithm to find the best spot for the task.
Viewing task details
Adding a new fixed task
Adding a recurring task
We follow the steps to open up the fixed task screen...
Overview of the UI implemented:
- The main screen consists of a weekly view (top), showing the current week and time slots for those weeks, 3 hours at a time. Task details (bottom) can be viewed by selecting the task in the weekly view.
- The menu (top) allows adding of new tasks, changing the weekly view, and changing the time interval to view.
- The time interval can be changed to 3 hours prior or 3 hours after (middle) the current time interval.
- The weekly view can be changed to the previous week or the next week.
- Adding tasks involves a new screen where the user can input data, and indicate whether they repeat or not.
What was left out and why:
- We left out the ability to add recurring tasks by week of month (eg. if you have a club meeting on the 3rd monday of every month). We left this out primarily because it would take up way too much room and clutter the interface, which would slow users down and could lead to errors when entering tasks. We might add an "advanced" button on the recurring tasks screen and implement this as an extra for the final version.
- We left out flex task allocation, for now. This was due to implementational difficulties regarding finding unused time in the database. This should be fairly simple to implement after we have taken care of task conflict handling. We just need to add some more functions to the database to handle this, but it should be relatively straightforward when we spend some time on it.
- We also left out the ability to edit tasks. This was simply due to a lack of time and it should be fairly simple to implement.
- We left out displaying the first few letters of each listed task on the main calendar screen. This was due to a lack of room.
- We also left out shading task buttons on the main calendar screen based on the type of event. This was due to technical difficulties in getting shading to work and look nice. We will probably get this working by the final version.
- We also left out shading task buttons on the main calendar screen based on the type of event. This was due to technical difficulties in getting matching the spec for the required image file, the Nine-Patch PNG. (http://code.google.com/android/reference/available-resources.html#ninepatch). We will probably get this working by the final version.
- We left out the ability to make tasks through choosing an empty spot on the calendar to bring up a "New Task" menu. This was due to time constraints, but it should be implemented by the final version.
- We left out the option to stop the startup dialog. This was due to time constraints and will be an option in the final version.
- We also left out the ability to have multiple views (such as a day view). This was due to time constraints and the difficulty in porting code designed for a week to match that of a day or any other period of time.
- We left out input sanitization. This was due to time constraints and technical difficulties when doing so. This will be implemented by the final version.
- Another extra feature we left out was the ability to set alarms to tasks, so that you would get alerted a certain amount of time before the start time of the task. This was left out because it's not critical to the main functionality of the program.
Any wizard of oz techniques that are required to make it work:
- Calendar navigation is handled through a sort of wizard of oz technique. Rather than being able to scroll through the entire calendar freely with the arrow keys, due to technical difficulties and complications, we instead implemented this through menu commands. Although this works, it is very slow and cumbersome, since users would have to make several extra keystrokes in order to change the time or date.
- The way events are displayed on the main calendar screen is done through a sort of wizard of oz technique. Rather than having large, shaded chunks for each event, each half-hour has its own chunk, and there is only a blue box in the middle of the button. Since chunks containing the same event are not connected in any way, events that are back-to-back can be easily confused with each other.
Informational popup when you start up the app:
Main calendar screen and viewing a task:
Changing the time interval on the main calendar screen:
Changing the week on the main calendar screen:
The add task popup on the main calendar screen:
Fixed and recurring task screens:
Flexible task screen: