0.3 Specification

Authors: Priscilla Chung Last edited:July 17, 2006 1:12 PM Creation date: June 25th, 2006
Reviewers:

Overview

Scooby is the next generation web calendar application. This document details the features for Scooby 0.3. The features are based on the 0.3 target user. An OSAF employee who is tasked to use Scooby to put in their paid time off (PTO) on the office calendar. We’ve selected a set of features to implement based on this usage scenario.

This document will outline the following features:

Anonymous Access

Goals and Objectives

The primary use case for 0.3 is to enable someone from OSAF to easily update their PTO on the office calendar, using the web client as an interface. Today, this individual would simply send an e-mail to everyone at OSAF with PTO in the title and an office admin (or in this case the executive assistant, Esther) is responsible for updating an iCal version of the office calendar. Eventually Esther’s time and the use of the iCal version of the office calendar would be eliminated in the process and everyone would update their PTO or other travel time on the shared read-write office calendar.

The goal of anonymous access is to create an experience of read/write to the office calendar to be as simple for the user as sending out an e-mail.

Use Cases

  1. User A does not use the office calendar but wants to be able to view and/or edit (depending on the url) the information in this share.
  2. User B receives the URL to the office calendar and decides to sign up for a new account on Scooby.
  3. User C receives the URL to the office calendar and wants to view the office calendar in iCal (or some other CalDAV client).
  4. User D already has a Cosmo account and uses Scooby and would like to add the office calendar to his shared collection.

Requirements

         
URL/Ticket pointing to Scooby: A URL/ticket once received from Chandler would directly point to Scooby when the user clicks on the URL from an e-mail. The user could also copy and paste the URL into some other CalDAV client such as iCal. This feature has significant dependencies in the development of Chandler–That the URL/Ticket when sent from Chandler and clicked on in an e-mail will do the right thing and point to either a read/read-write calendar on Scooby.

Event editing without an account: Chandler currently sends out two types of URL/tickets, read and read-write. In our current usage scenario, when the user clicks on the the URL received in an e-mail from Chandler, it would point to the office calendar on Scooby in a web browser. If the URL/ticket is read-write the user would not need to sign up for a Cosmo account to begin editing the calendar.

Remember Me check box (as illustrated in the detailed work flows)A check box which would allow the anonymous user to store event edits and other changes on a cookie without requiring the user to sign up for an account. Cookies are stored on the client side and information is stored on a computer by computer basis. This feature is dependant on the outcome of security concern discussion on the list and has been deferred.

The proposal for anonymous access is defined for 0.3 but does raises security concerns for the 1.0 timeframe.

SECURITY ISSUES:

DESIGN ISSUES:

These issues are being addressed on the design list; discussion topics: Anonymous Access and URL/ticket support.


UI Details

Please review the notes on the use cases and download the detailed work flows (download .pdf file).

Back to top

Navigation

Goals and Objectives

The goal is be able navigate to different views to see the events on a Chandler calendar in the web application Scooby.

Use Cases

  1. 'Go to' date: The user is attending a wedding September 8, 2006, five months ahead. Typing in the {mm/dd/yyyy} will help navigate to the exact date opposed to selecting the navigational arrows multiple times to find the correct date.
  2. A Miniature Calendar will help provide preview to the month ahead. For example, if the user needs to see what day it is for an event two weeks from today, a simple glance to the Mini Cal will provide the information the user needs without having to navigate the main calendar.

Requirements

       
'Go to' date: An empty field with the title 'go to date' allow users to type in the {mm/dd/yyyy}. This will bring up the week of that exact date, and that date will be highlighted.

Nice to haves for 'go to' date:
  1. The date picker will be forgiving to inconsistent entries. When a user enters {5/5/06}, the calendar is able to interpret the date to {05/05/2006}; a two digit year will be interpreted to the current century. The restrictions are specific to numbers and slashes for dates.
  2. Error dialog box (see sketch below): Any dates entered with text or other punctuation, such as dashes or periods, separating the month, day and year will immediately pop up an error box which will request the user to type in the correct date format. The entry box in the the error dialog box will default to 'Today’s date' to clarify how the date format is entered. If the user hit the 'return' key after entering the date in the error box, the dialog box will disappear and the calendar canvas will have gone to the date specified in the 'go to' date. Currently on Chandler the input box just adds a '?' when a date format is not recognizable.
  3. Keyboard short-cuts to the 'go to' date. Eventually the 'go to' date may not always be visible from the calendar canvas. Currently the keyboard short cut in Chandler is to hold down the 'Shift' -key, 'Command' -key and the letter 'T' - key. A dialog similar to the error dialog box would appear and allow the user to type in the 'go to' date and hit the enter key. The main difference would be the message in the dialog box, which would say, ”Enter the date you would like to go to in the dd/mm/yyyy format”. The entry box would default to 'Today’s Date'.
  4. The date format needs to accommodate internationalization. Date formats in europe are typically {dd/mm/yyyy}. The selection of how the user would like to view their date formats may be selected in user preferences, and that will be defined in a later release.



Miniature Calendar (Mini cal): 

The Mini cal will be integrated for Scooby 0.3, but is not a high priority feature to focus on because it does meet the usage scenario for 0.3. Development for the basic framework will be integrated during this timeframe. The user can preview the month days/weeks/month ahead without having to select the arrow buttons multiple times to view a specific date.

The following is a description for the basic functionality needed for a miniature calendar in a target user's release.

Will need to provide visual and interaction states for the mini cal Not necessary for the target user's release, but will be noted for future implementation.

Hiding the mini cal: A preference to hide/show the mini cal on the web application. This may preserve space on the web application.

Hover detail: A mouse hovering over the mini cal on days with events will bring up information on the event without jumping to that date/week or refreshing the page/week view area.


Back to top

Notification

Goals and Objectives

The goal of notification is to inform other users sharing the same calendar that an event change has been made.

Use Cases

  1. After the user enters in their PTO on the office calendar, they would like to notify other recipients who share the calendar that they have made a change. Clicking on this link will launch their default e-mail client and pre populate a form message in the subject line and the body of the e-mail.

Requirements

         

Mail to link notification: This is a 'mail to' link which will launch the user's default desktop mail application. A new e-mail message will appear with the subject and message repopulated with a form letter. The form letter message should indicate an event has been changed on the 'Office Calendar' collection, and the details associated with it.

Subject line = Events changed on Office Calendar: Event title
Body = Date/time information PLUS text from the Notes field of the event.

Date/time information includes:

Chandler users receive notifications from users who made changes on Scooby, not only from an e-mail, but be alerted when they open up Chander. Is it possible to insert something into the Body of the email that the Chandler could look for? This would complete the workflow and allow Chandler users to receive Scooby communications in the client.

UI Details

Sample E-mail
To:
everyone@osafoundation.org
Cc:
oval@tofu.com
Subject:
{Office} calendar change {Andi working from France}

When: {July 12, 2006 - Aug 15, 2006, PST, All day}

{Off to France with family. Will be working remotely from my vineyard. ;)
Salute, And.}

Data within the {x} are typed in by the user on Scooby. Form elements include {Name of calendar collection}'calendar change' in the subject line and and 'When' in the body.

Back to top

Account viewing in Scooby (Subscribe workflow)

Overview

There are two types of users when you subscribe to your account from Cosmo.

  1. Chandler users will want to view their shares (published and subscribed), which is basically whatever data is in their account on the server. Using the same account information, users should be able to log into Scooby and view all the data information they see in Chandler reproduced in Scooby.
  2. People who do not use Chandler and do not have Cosmo accounts. They should be able to get a URL/ticket from someone's calendar when clicking the URL/ticket will automatically view the shared calendar. Depending on the URL/ticket the user will have either read/read-write access, but do not have to log in to edit the calendar. There is no publish operation on the Scooby side to Chandler.

An easy way of thinking of this is...

Chandler has a local repository and Scooby does not.

Dependencies: Workflow in Chandler to easily access your data on Scooby? This is separate from publishing your individual collection.

Chandler user can publish their account information in Cosmo including subscriptions to other servers (ie. .Mac, GCal, etc.) and Scooby would be able to recognize all the collections in Cosmo and display it on Scooby.

Once a user subscribes to another calendar elsewhere, it is synced to Cosmo. Does Chandler need to sync with Cosmo first before this subscription is viewed on Chandler?

For the first phase, only data from the calendar collection will be displayed. That is until a list view is created to view other data translated from Chandler.

Currently there is a discussion on the list about Scooby/Cosmo merge which may have significant impact on this feature.

Goals and Objectives

The goal is for Chandler user to be able to view all their collections in Scooby based on the user’s account information. So if a Chander user has 2 collections from cosmo-demo and 1 collection from .Mac, Scooby would be able to interpret all the collections based on the user’s account. This feature is deferred to a future release as it does not meet Scooby 0.3 target user’s need.

Use Case

  1. Chandler users would like to be able to view their information via the web application, Scooby. Having information stored on a web application may be useful when the user does not have their usual computer with them. When logging on to Scooby, the user will view their account information and all the collections and data from Chandler is displayed in Scooby. Though specific to 0.3, Scooby will only be focused on calendar data.

Requirements

         

Log on to Scooby: If the user already has an account on Cosmo, when they log on to Scooby using the same account information all the information published and subscribed from Chandler will be displayed in Scooby.

Back to top

Calendar Canvas

Goals and Objectives

The goal of the calendar canvas is to view information from Chandler the desktop client via Scooby, the web application. Scooby 0.3 is still primarily focused on only the calendar information, so other information, such as task items etc. which may be in a collection of Chandler may not be viewable in Scooby.

Use Cases

  1. User may have a set of dates to enter in the calendar and by having a list view, it may be easier to enter in all the dates in a list format then having to click through the calendar canvas.
  2. A user may want to view just the events in the upcoming days. The 4 day view will open up more space on the calendar canvas and allow more information to appear on the lozenge.
  3. A user may want to see when someone is returning from maternity leave. The month view can provide a visual cue of how long the leave is from start to end.
  4. Having a day view will allow the user to be able view all the event information displayed throughout the day in the event lozenges. This view is particularly popular for printing out and carrying the information as a person would go from one meeting to another without bringing their computer with them.
  5. Visual cues help make the user identify between the desktop and web applications; that they belong in a suite of products. The rules for consistency are used only where it makes sense, and sometimes there is technology or layout in a web application, Scooby to differ from the desktop application, Chandler.
  6. A Chandler User views their calendar in Scooby. There are alarms set on his events in Chandler. When viewing his Chandler calendar in Scooby, the user would like to see all the information stored in an event that is the same created in Chandler. Information such as the status and if there is an alarm set on the event.

Requirements

         

List view: This view is primarily for the user add events to the calendar or 'to do' items in a list. This view will also display items from the 'Dashboard' from Chandler, though not all functionality will fully functional, ie. drag and drop. Once items are entered onto the list, the calendar event items would also appear in the calendar views. Basic functionality for the list view include, a header, in place editing, sort, multi-select, cut copy duplicate & paste. Review Chandler Alpha 2 dashboard specification for more detail information on basic table functionality.

Next 4 days view: This view is primarily for the user to view what’s happening for the next four days. When the user clicks to view 'next 4 days', it should look similar to week view, but starting at today’s date and only displaying the four days ahead. The lozenges on the calendar canvas is opened up and more detail information will be displayed.

Month view: This view is primarily for the user to view one month at a time on the calendar canvas. This view helps the user scan several weeks at a given time.

Day view + Print: This view displays more detailed information on the event lozenge. The view will display the minimum amount of the working hours, 8AM-6PM within the day. I recommend to have the 'day view' page be printer friendly as it's common for users to print out their schedule for the day and work from a printed sheet.

Visual Tweaks: Based on the target user release goals. The following is a high level list of visuals to work on and complete for Scooby 0.3

Alarm display: Events with alarms from Chandler bay display in the lozenge and detail view in Scooby. Even though alarms will not be fully functional in Scooby, the events created in Chandler with alarms will need to be indicated so the information from Chandler is not lost in Scooby. Visually this 'alarm icon' could be grayed out or have a strike through to indicate the alarm is not fuctioning. A mouse over with a tool tip could describe 'alarm set on event in Chandler'. Since this feature is not required for 0.3 target user, it has been deferred. The team is is still flushing out the details of this feature, if it is really necessary to build this until it is fully functional. See the discussion on the list.

Back to top

Managing Time-zone

Goals and Objectives

To provide basic time-zone infrastructure with minimal UI for 0.3. Fully functional time-zone features will be deferred to a future release.

Use Cases

  1. User is traveling and would like to see office meetings (in their Home time-zone) on the calendar.
  2. User is managing a calendar for someone who is traveling in a different time-zone.
  3. User is scheduling a meeting with someone in a different time-zone. The user would like to be able to change the time-zone of their calendar so they can view and pick a time that would work for both parties.
  4. User receives a request for a meeting in a 'remote' time-zone. The user would like to view the meeting time on their calendar in their 'home' time-zone.

Requirements

         

Floating time-zone: This is when the user has not turned on time-zone. All events will be in floating time until the user selects time-zone support in the user preferences.

Time-zone preferences: From the user preferences dialog, the user would have to first turn on the time-zone support. Once turned on, the time-zone will appear on the calendar canvas and default to the computer’s time-zone. (Should be possible to locate time-zone from computer, if not then default to floating time-zone)

Edit time-zones on specific events: When the time-zone support is turned on, a time-zone picker would also appear in the event details. The location of the drop down box would appear right after the end date/time line. The user can now change the time-zone on the event and it would move the event lozenge to the time-zone based on the calendar canvas. For example, the time on the lozenge would display the 'home' time-zone on the calendar canvas, but in the event details the time would start from the 'remote' time-zone.

Back to top

Managing Events

Goals and Objectives

To allow the user to be able to set and make changes to recurring events. Special events such as @time and anytime be displayed correctly. Events which may have an alarm set in Chandler to display disabled in Scooby since alarm functionality will not be working for 0.3.

Use Cases

  1. User has meetings bi-weekly on Thursday mornings. After entering in the first event, a user can select from the 'occurs' drop down menu 'bi-weekly' and the event will automatically populate the calendar canvas bi-weekly.
  2. An @time event is used when a user wants to create an event, but may seem more like a task item. Everyday at 7am the user jogs and it is an event on the calendar. Even when the user travels to different places, and the calendar canvas may have changed time-zones, the user still jogs at 7am and the @time event does not change.
  3. An anytime event to help the user comprehend fuzzy dates. Sometime today I need to pick up a gift for my husband. Sometime this week I should meet with Jane for lunch. Sometime this month I need to take the dog to the vet for a check up.

Requirements

         

Recurring events: Event details need to have line item after end date, 'occurs' with a drop down box which the following selection: Once, Daily, Weekly, Bi-weekly, Monthly and Yearly. The drop down box should default to 'Once'. One the selection has been made, the event lozenge should display according to selection in the recurring event. Once the event is set, when the user makes any change to the event, a dialog box should appear to confirm the change of the recurring event. The user then has an option to select 'Only this event', 'All future events' or 'Cancel'.

Display of @time events/Anytime events: Review the different variations of event lozenges. Bug# 6203 and bug# 6204.


Assumptions

  1. The target user selected for Scooby 0.3 is performing a very specific task and this task is not intended for a general audience.
  2. Calendaring is still the main focus for 0.3. Other features addressed in Chandler will commence at a later release.

Terminology

There are currently two target users we are focused on for the release of Scooby 1.0. They are:

  1. Casual Collaborator - Non-Chandler users viewing calendars published from Chandler. These users are illustrated in the diagram below.
  2. Chandler Users - Users of Chandler reading their calendars on the web using Scooby. This implies casual use.

For Scooby 0.3, our top priority is focused on a specific usage scenario for the Casual Collaborator. Our top priority is to detail what we need to satisfy our main target usage scenario first. We will also be making progress for the Chandler user, though this would be specific to calendar.


Back to top

Code Design

Re factoring the new layout code. Mde to fill out...

Specials Considerations

QA / Test

Any info that will be useful for testers. Special cases or scenarios to consider.

API / Developer Platform

If relevant, how the feature will be made accessible to coders?

Security

Discussion topics: Anonymous Access and URL/ticket support.

Fine grain security for RPC calls. Bobby to fill out...

Internationalization / Localization

'Go to' date - User would be able to set in preferences how they would like to see their dates displayed, {dd/mm/yyyy} or {mm/dd/yyyy}

Accessibility

UI must be accessible (Section 508).

Build / Install

To create a a 'start up script' to know when SNARF is being run for the first time for Mac, Windows, & Linux. The will help developers who are not familar with 'JAVA_HOME' and want to download the bundle and start hacking away at the code. This is primarily for developers and not for end users.

Back to top

Cuts

Overlay

Overlay is a feature currently in Chandler which will eventually be in Scooby. This feature is dependent on how collections will be displayed. Currently Scooby can only view one collection at a given time. UI needs to be in place for viewing multiple collections before the overlay feature can be implemented.

Useful Links


History

Author Edit date Description
Priscilla Chung June 25th, 2006 First Draft