june 10-15, 2012 growing community; growing possibilities richard webber richard haukom lydia li...

36
June 10-15, 2012 Growing Community; Growing Possibilities Integrating Google Calendar with Sakai Richard Webber Richard Haukom Lydia Li Stanford University

Upload: irene-wood

Post on 16-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

June 10-15, 2012

Growing Community; Growing Possibilities

Integrating Google

Calendar with Sakai

Richard Webber Richard HaukomLydia Li Stanford University

Page 2: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 2

Feedback for Faculty and Students◦ I only need to do a few things in CourseWork (Sakai)◦ I want to see all my appointments in one place◦ I don’t want to have to navigate through the Sakai Uis

to get to the features I want to use Schools are asking for more features

◦ Not enough resources within CourseWork team◦ Many schools have IT resources but no Sakai expertise◦ IT resources do have expertise in pervasive web

technologies, such as Google Apps Stanford on the cusp of rolling out Google Apps

for Education◦ Graduate School of Business paved the way

What We Are Hearing

Page 3: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 3

Faculty and students already using or experimenting with other services◦ Facebook, Twitter◦ Piazza, ClassOwl◦ Google Apps◦ Blackboard, CCNET, Custom Built

Often supporting research◦ New teaching methods◦ New technologies

A single LMS will not serve all these needs

Diversity on Campus

Page 4: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 4

Core tools and services that are teaching/learning specific◦ Gradebook, Roster, Testing

General services that are already pervasive on the web◦ Social Networking, Calendaring, Email, Document

Sharing How to integrate with these pervasive services Bring course management functionality to

where the users are Enable sophisticated users to develop in

familiar environments

Service Oriented Approach

Page 5: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 5

Talking to the Graduate School of Business Saw convergence of their needs our

SULAIR’s ideas Led to development of proof of concept

◦ Google Calendar replacing Sakai Schedule Tool First step in a larger initiative around SOA

◦ Initial focus on Google Apps

Google Calendar and Sakai

Page 6: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 6

Graduate School of Business – Use Case

Richard Haukom

Page 7: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 7

Semi-autonomous professional school◦ LMS Implications per SUL/AIR◦ Opt-out model

~80 course sites/quarter All courses represented in CW/Sakai Course sites managed by Faculty Assistants Up to 10 Course sites per Faculty Assistant

Stanford GSB – Use Case

Page 8: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 8

Students #1 Complaint:◦ Too many information sources/locations◦ Strong preference for single point of contact◦ CW/Sakai accepted as the appropriate vehicle

Minimal use of Schedule Tool◦ Labor intensive, redundant manual process◦ Insufficient time pre-term for FAs

Stanford GSB – Use Case

Page 9: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 9

GSB drives adoption of Google @ Stanford Google Calendar becomes GSB standard iCal rapid prototypes explored Spring ‘11 Proof Of Concept – gDocs/iCal/CW Benefits envisioned POC Limitations & concerns with POC

Stanford GSB – Use Case

Page 10: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 10

SUL/AIR – GSB POC Joint Venture◦ Vision alignment◦ Resource sharing◦ Short timeline with useful results◦ Summer ’12 plans –

GSB Future directions◦ Supporting disaggregation ◦ Feature rich, quickly and widely accessible, and

secure course materials containers. ◦ Increasing reliance on online forms of

communication in relation to classes. (Online Final Exams through CW/Sakai use growing rapidly.)

Stanford GSB – Use Case

Page 11: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

2012 Jasig Sakai Conference 11

Demo & Implementation

Lydia Li

Page 12: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Initial State in gCal, before Adding 'Lecture 4'

Page 13: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Initial State in Sakai, before Adding 'Lecture 4'

Page 14: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Adding an Event 'Lecture 4' in Sakai

Page 15: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 4' added in Sakai

Page 16: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 4' added in gCal

Page 17: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Edit 'Lecture 3' details

Page 18: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Edit 'Lecture 3' details

Page 19: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Edit 'Lecture 3' details

Page 20: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 3' title changed in Sakai

Page 21: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 3' title changed in gCal

Page 22: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Adding an Event 'Lecture 5' from gCal

Page 23: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 5' added in gCal

Page 24: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 5' added in Sakai

Page 25: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Deleting 'Lecture 2' in Sakai

Page 26: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Delete 'Lecture 2' in Sakai

Page 27: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 2' deleted in Sakai

Page 28: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

'Lecture 2' deleted in gCal

Page 29: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Summary of Features

•Create, Read, Update and Delete (CRUD) gCal events

•Same UI as existing Schedule Tool

•Real-time editing from both Sakai and gCa

•Data in one place, no syncing

•No need to Export or Subscribe

•Day, Week, Month, Year and list Views

•Same as Schedule tool.

•Share gCals with Site members

•View all their course calendar and personal events in one place

Page 30: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Implementation

•Re-use existing Schedule Tool's code as much as possible

•Due to time and resource constraint.

•Created a new Sakai Tool by refactoring calendar code.

•Made possible by velocity, which enforces a Model-View-Controller (MVC) approach to web development.

•Minimum code changes to Velocity(.vm) files.

•Completely removed DB layer. gCal is the persistence layer.

•New services to call Google Data APIs via OAuth.

•Modified CalendarAction.

Page 31: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Implementation (cont'd)

•gCals created for each section

•Unique calendar name for each section (i.e. section id)

•Owned by users in the domain

•Accessing Google Calendars through OAuth

•2-legged OAuth for domain-wide delegation of authority, available for Google Apps for Business and Education: users do not need to give consent on an individual basis.

•An application that has the OAuth consumer key and secret is allowed to act as any user in the domain when accessing Google Data APIs.

Page 32: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Implementation (cont'd)

•2-legged Oauth

•Include the xoauth_requestor_id query parameter in the request URL.

•Send the signed OAuth request using the HMAC-SHA1 signature method

oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET) ...service.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());URL calUrl = new URL("https://www.google.com/calendar/feeds/........"); // url for calendarFeed or entryFeed....myCalQuery.addCustomParameter(new CustomParameter("xoauth_requestor_id", userName));...CalendarFeed calendarFeed = service.query(myCalQuery, CalendarFeed.class); // get Calendars CalendarEventFeed resultFeed = service.query(myQuery, CalendarEventFeed.class); // get Eventsservice.insert(myFeedURL, myEntry); // to Add an Eventservice.update(feedUrl, toUpdate); // update an EventretrievedEntry = service.getEntry(feedUrl, CalendarEventEntry.class); // get an EventretrievedEntry.delete(); // delete an event

Page 33: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Google APIs used (pom.xml)

• <dependency>

• <groupId>com.google.gdata</groupId>

• <artifactId>gdata-core</artifactId>

• <version>1.0</version>

• </dependency>

• <dependency>

• <groupId>com.google.gdata</groupId>

• <artifactId>gdata-calendar</artifactId>

• <version>2.0</version>

• </dependency>

• <dependency>

• <groupId>com.google.gdata</groupId>

• <artifactId>gdata-client</artifactId>

• <version>1.0</version>

• </dependency>

Page 34: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Did not have time to do...

•Recurring Events

•Need new UI and rules for supporting gCal recurring events

•Automatic update of gCal ACL

•Automatic sync with course enrollment

•Integration with other Sakai tools such as Tests and Quizzes.

Page 35: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Known Issues/Limitations

•Rich Text Editor available only in Sakai

•Need to enter raw html tags in gCal if rich text description is desired.

•View mode in gCal renders rich text correctly in a web browser, but not on mobile devices.

•Does not support attachments

•Use links instead

Page 36: June 10-15, 2012 Growing Community; Growing Possibilities Richard Webber Richard Haukom Lydia Li Stanford University

Q&A

Contact: [email protected]