FeasibilityReport_Final2

advertisement
Version 1.0, Final as of 12/12/2007
Penn State Collaborative Project:
Google Calendar Integration
FEASIBILITY REPORT
Preface
This document was generated by the Google Calendar Integration project team as part of a
collaborative project undertaken in Fall 2007 as part of a Penn State senior-level class
project for an IT systems integration course. For this project, the team together with George
Kroner, Solutions Engineer for Blackboard, developed a Building Block to integrate a user’s
Google calendar with the calendar built into the Blackboard Learning System product. The
final product has been shared as an open source project on the OSCELOT web site for use
by all.
Document Owner
The primary contact for questions regarding this document is:
Jeff Gartman, Google Calendar Integration Team
Participants
George Kroner, Solutions Engineer, Blackboard Developers Network
Brian Cameron, Professor, College of Information Sciences and Technology, Penn State
University
Jan Poston Day, Senior Director, Blackboard Client Engagement
Penn State Project Team
Jeff Gartman, Project Manager
Carolyn Herbert, Student Consultant
Danielle Booth, Student Consultant
Aaron Lardieri, Student Consultant
Pat Morton, Student Consultant
Special Thanks
Julia Leon, Emory University
Josh Duncan, LeTourneau University
1
TABLE OF CONTENTS
INTRODUCTION ..................................................................................................................................................................... 3
PURPOSE OF FEASIBILITY REPORT ............................................................................................................................................ 3
BACKGROUND INFORMATION ABOUT THE PROJECT .................................................................................................................. 3
PROJECT APPROACH ................................................................................................................................................................. 3
BUSINESS GOALS AND OBJECTIVES .......................................................................................................................................... 3
PROJECT GOALS AND OBJECTIVES ............................................................................................................................................ 3
ASSUMPTIONS ........................................................................................................................................................................... 3
CONSTRAINTS ........................................................................................................................................................................... 3
FEASIBILITY AND DESIGN .................................................................................................................................................. 4
ARCHITECTURE......................................................................................................................................................................... 4
RISKS ........................................................................................................................................................................................ 4
RESOURCE INFORMATION AND NETWORK DISCUSSION ............................................................................................................ 5
SECURITY ARCHITECTURE ........................................................................................................................................................ 5
STANDARDS COMPLIANCE ........................................................................................................................................................ 5
EXTERNAL SOFTWARE REQUIREMENTS .................................................................................................................................... 5
SYSTEM DEPENDENCIES ........................................................................................................................................................... 5
USER INTERFACE ...................................................................................................................................................................... 5
SCREENSHOTS .......................................................................................................................................................................... 5
OTHER SOLUTIONS CONSIDERED .............................................................................................................................................. 7
FUTURE CONSIDERATIONS ................................................................................................................................................ 8
CONCLUSION ........................................................................................................................................................................ 10
2
INTRODUCTION
Purpose of Feasibility Report
The intention of this report is to lay out a definition of the Google Calendar Integration project for the sponsor
to reference. The report includes business goals and objectives which can be updated as changes arise.
Background Information about the Project
Blackboard would like to integrate its calendar with Google’s calendar to satisfy a strong desire in the user
community to have a more seamless and integrated user experience. Teachers often use the calendar
feature for class content, but students would like to synchronize Blackboard’s calendar with other external
calendars such as Google.
Project Approach
This project was first approached from a theoretical standpoint. The team explored the various options to
integrate Blackboard and Google calendars. After determining the feasibility of each option, the team
selected the best choice and designed a prototype based on use cases.
Business Goals and Objectives
Goal: Blackboard desires to support the needs and requests of its user community.
Objective: Enhance the functionality of the Blackboard Learning System, promote the use of Web 2.0, and
add to the over 300 enhancements and extensions available from the Blackboard Developers
Network.
Project Goals and Objectives
Goal: Satisfy the user community’s request for calendar synchronization with Google.
Objectives:
 Understand the feasibility of integrating the Blackboard calendar with Google’s calendar.
 Develop use cases to show function requirements of solution.
 Utilize a proof-of-concept tool to synchronize a Blackboard calendar and a Google calendar.
If successful, this project will provide benefits which support corporate goals and objectives. A functional
proof-of-concept tool can further be extended for use across the Blackboard Learning System. This
achievement can be added to the enhancements on the Blackboard Developers Network thereby satisfying
the user community’s request for integration with Google calendars. Satisfied clients will be inclined to
continue business with a company who responds to the user community.
Assumptions
We assume:
 We will be able to acquire a server for development purposes.
 This project is technically possible.
 We will gain experience working with distributed teams.
 We will receive timely issue resolution from the client.
 The client will be able to leverage expertise to assist us with integration.
 The scope of the project will not change during the given timeframe.
 This experience will be valuable for both parties involved – Blackboard will receive a useful calendar
synchronizing prototype to extend if desired, and the Penn State team will gain valuable experience in a
real-life business situation.
Constraints
This project is subject to the time constraints of one academic semester totaling 16 weeks. Another constraint
is the limited development skills of the Penn State team. If we are unable to secure a development server,
then we will be severely limited in what we can accomplish. Also due to the short timeline, the initial prototype
will launch with limited features.
3
Our critical dependency is obtaining a server or some other testing and development space. Once that is no
longer an issue, this dependency will shift to keeping that server or testing space uncompromised. Another
critical dependency is making sure the team has knowledge of both XML and JAVA languages.
This project has no other projects upon which it is dependent.
FEASIBILITY AND DESIGN
Through working with Blackboard, we have learned that this project and our design are feasible. Our design is
based off of collaboration with the Penn State team and our Blackboard sponsor as well as suggestions from
Blackboard users from other universities. The following sections detail the design, including its risks and other
important information. Also included are screenshots of our solution and other plausible solutions.
Architecture
Google Calendar is capable of producing an XML feed which has a hyperlink that will be utilized by the
Blackboard code we develop. This will allow Blackboard to retrieve the calendar information from Google
Calendar. It will then display the Google Calendar information in a “My Google Calendar” module. Each event
title will be a link to the event details. The user can edit and save those details as long as they are logged into
their Google account; this provides quasi-synchronization functionality. The Google Calendar data will not be
stored in Blackboard’s database to avoid issues related to privacy and maintaining a database of synchronized
Google Calendar events. Since the data will be in a simple XML format, it will be easier to display the
information without heavily relying on Blackboard’s internal code.
We designed our solution to integrate Blackboard with Google Calendar in the following way:
Blackboard
Requests XML
Feed via URL (this
is the code we
create)
Google
Calendar
XML Feed
Blackboard
Calendar
(Display)
Legend
Request
Direct Data
(not stored)
Display
Figure 1. Blackboard and Google Calendar Integration Diagram.
Risks
In addition to solutions, the team is also considering risks related to the development of the system. These
risks are documented below. Additional risks may exist that are not listed.
Risk Event
Cost of Event
Likelihood of Event
Mitigation Strategy
Unable to find a way to
sync Google calendar with
Blackboard
High
Low
Blackboard unwilling or
unable to provide us with
their private API
High
Low
None, though project would not be
a failure. The work completed
would still support the initial goal
to find out if synchronization is
technically feasible.
Penn State team could sign
agreements to not publicize the
private API.
Table 1. Risk Mitigation Chart.
4
Resource Information and Network Discussion
System resource considerations are minimal for this project. The Blackboard suite will have certain
requirements, but our solution will require a negligible amount of system resources.
Our solution is a specific part of the Blackboard suite, and will not affect the LAN or WAN. The code we
develop will reside within the Blackboard software on the server it is installed. Access to our solution is drawn
in the flow chart of the Architecture section of this document. Bandwidth is not an issue as size of the Google
Calendar data retrieved is negligible.
Security Architecture
Security of the system is not a significant concern due to the nature of this project. Blackboard already utilizes
authentication and authorizations with user login to the system. Only authenticated users, therefore, will have
access to the My Google Calendar module.
The main security concern is related to handling the Google XML feed URL. When a user inputs their XML
feed URL, there will be a check that verifies the URL is for a Google account. This will prevent a malicious
URL being inserted into Blackboard.
Standards Compliance
We will comply with any Blackboard standards. As of now, no standards have been identified.
External Software Requirements
As long as on-site development occurs, all that is required is a testing server to view the design in testing and
make updates, corrections, or comments. If we perform development, we need the Blackboard Virtual Image;
Penn State will provide a server. Once the solution is in place, no external software is required.
System Dependencies
There are no dependencies for this solution. However, depending on how it is viewed, the solution is
contingent on the presence of an Internet connection for a Blackboard user.
User Interface
The user interface for our solution will be simple and intuitive. This solution requires the addition of a module
similar to that of the current Blackboard calendar. Google Calendar events will show up in a “My Google
Calendar” module, for which code will need to be developed. Events created in the Blackboard Calendar also
show up in the “My Google Calendar” module.
Screenshots
The following images show screenshots of the first iteration of our solution.
5
Figure 2. Blackboard Homepage Screen.
Figure 3. Adding a Feed.
6
Figure 4. Successful Addition Confirmation.
Other Solutions Considered
The team considered several possible solutions:

Synchronize the Google calendar to the Blackboard calendar
Calendar events created in Google are sent to the Blackboard calendar. However, events created in the
Blackboard calendar are not reflected in the Google calendar. Therefore, the development focus is shifted
more towards Blackboard with the Blackboard API receiving and formatting Google data. The team
believes this is the best method since Blackboard resources are readily available.
Within this scenario, the team considered three different methods of transferring Google calendar data.
(1) iCalendar format (.ics): This is a standard of calendar data exchange also abbreviated as iCal (not
to be confused with Apple’s application). It can be used to export data from Google Calendar to
Microsoft Outlook or Google Calendar to Apple iCal. Preliminary research led the team to believe this
standard would not have had advantages over our proposed use of the calendar XML stream. Also,
the team is unsure if it is technically feasible to use iCalendar for integration. Due to time constraints,
the team will not investigate iCalendar any further.
(2) HTML format: The provided link can be used to embed a read-only copy of the Google calendar on
a webpage without requiring the user to log into his/her Google account. While it would be
convenient for a user to bypass logging in, it is undesirable to have a separate Google module on the
Blackboard space. The Google calendar information should display in the Blackboard calendar
module. Therefore, the team decided against the HTML format.
(3) XML feed: The team believes this is the best option which allows Google calendar information to be
displayed in the Blackboard calendar. The team is familiar with XML and believes an XML solution
can be extended to integrate other calendar applications (such as?) with XML feeds. This particular
mode of integration also provides synchronization-like functionality, as changes to event details can
be immediately reflected in the My Google Module provided the user is logged into their Google
account.
The team also considered storing Google Calendar information in a Blackboard database but decided that
there is no functional or business reason to do so. In addition, it would introduce technical and privacy
challenges. As long as there is a live feed from Google to Blackboard there should be no reason to store
Google events in a database.

Synchronize the Blackboard calendar to the Google calendar.
In this scenario, calendar events created in Blackboard are sent to the Google calendar. However, events
created in the Google calendar are not reflected in the Blackboard calendar. This scenario would focus
7
more on Google development than Blackboard development and undermine the business objective of
adding enhancements to the Blackboard Learning System. Also, the team has limited access to Google
resources which could be challenging. Synchronizing the Blackboard calendar to the Google calendar is
not recommended.

Complete synchronization between Blackboard and Google calendars.
Calendar events created in Blackboard are sent to the Google calendar, and events created in Google are
sent to the Blackboard calendar. While this solution may generate the highest user community
satisfaction, the team feels this solution is out of reach considering time constraints and inexperience with
development.
FUTURE CONSIDERATIONS
Due to time constraints, the team was unable to explore and develop additional functionality for the Google
integrated calendar module beyond the scope of this project. The following are additional functionalities
recommended for future versions of the integrated calendar module.
 Exportable formats: The Blackboard calendar module supports importation of Google events, but
currently there is no functionality that exports Blackboard events to the Google calendar. Providing a
Blackboard RSS feed would allow the Google calendar to receive events created in Blackboard.
Additionally, this RSS feed would complete full synchronization between the Google and Blackboard
calendars.
The user community also desires the ability to synchronize the Blackboard calendar with other external
calendars in addition to Google Calendar. Providing an ICS format (a standard also known as iCalendar)
will allow users to export their Blackboard events to Apple iCal and Microsoft Outlook.
 Integrate My Google Calendar events in My Calendar: My Google Calendar is a separate module from
My Calendar. Events created within My Calendar are added to the list in the My Google Calendar module
and displayed on the daily, weekly, monthly, and yearly calendars of the standard My Calendar module.
My Google Calendar only displays a list of events from the XML feed and does not add these events to the
graphical calendar that displays Blackboard events. Figure 5 shows the current My Calendar and My
Google Calendar modules. Notice fragmentation of events—Google events do not show in My Calendar.
Figure 5. Current My Calendar and My Google Calendar modules.
In order to maximize the benefit of imported Google events and to satisfy the user community, we
recommend the integration of Google events with the list in My Calendar and the graphical calendar
displays. While My Calendar events show up in the My Google Calendar event list, Google calendar
8
events do not show up in Blackboard’s graphical calendar display. This is due to a current technical
limitation with the Blackboard Learning System. With this integration, users can see both Google and
Blackboard events side by side have the ability to use their calendar as effectively as possible. Colors
could be used to distinguish between the different calendar events.
 Allow multiple Google Calendar feeds: My Google Calendar currently accepts one XML feed from
Google. Adding functionality to manage multiple Google calendar feeds would be useful in several
scenarios:
o A user has more than one Google Calendar: A user may have one private Google Calendar for
personal events and a separate public Google calendar as a work or club schedule. The user does
not want to combine Google Calendars to generate one XML feed due to exposing sensitive personal
information.
o A user would like access to a friend or family’s schedule.
o A user wants to manage a group schedule: It is often challenging for groups to find common meeting
times. If an RSS feed is created to export Blackboard events to the Google Calendar, then full
synchronization between Blackboard and Google Calendars can help group members find a
common time to meet. This is accomplished by exporting each member’s schedule, comparing all
the schedules on Google Calendar, and picking a common time that works for everyone. Once this
is accomplished, the group can create a Google Calendar feed for group events which can be easily
updated and displayed to all the group members. For example, if Member A suddenly adds an event
in Blackboard, the RSS feed will update the Google Calendar of Member A. Members B and C who
subscribe to Member A’s XML feed will see Member A’s new event in their Blackboard calendar as
well.
Figure 6. Potential Scenario for Group Collaboration (assumes Blackboard RSS feed is developed).
9
The following image shows a potential mockup of the RSS feed manager.
Figure 7. RSS Feed Manager Mockup.
Conclusion
The goal of this project was determine if it is possible to integrate Blackboard’s calendar and Google Calendar
events, determine what type of integration is possible between the two calendars, and provide a preliminary
solution to demonstrate our findings. We discovered that the easiest way to integrate the two calendars is by
importing Google Calendar XML feeds into Blackboard and displaying them on Blackboard’s home screen.
While it is possible to integrate Blackboard calendar events with Google, we did not include this in our preliminary
design because it requires creating an RSS feed for each Blackboard calendar. We also provide further
suggestions for future integration including allowing multiple calendar feeds and integrating Google Calendar
events with Blackboard’s graphical calendar.
10
Download