38
© Blackboard, Inc. All rights reserved. My First Java Building Block for the Blackboard Content System Stephanie Cupp Senior Product Analyst Blackboard Inc. July 19 th 9am

© Blackboard, Inc. All rights reserved. My First Java Building Block for the Blackboard Content System Stephanie Cupp Senior Product Analyst Blackboard

Embed Size (px)

Citation preview

© Blackboard, Inc. All rights reserved.

My First Java Building Block for the

Blackboard Content SystemStephanie CuppSenior Product AnalystBlackboard Inc.

July 19th 9am

2

Overview

» Brief intro to the Bb Content System» Understanding its place in the Academic Suite» Getting started with Building Blocks» Sample Building Block: Content System Report» Sample Building Block: “Hello Content System”» Q&A

© Blackboard, Inc. All rights reserved.

COLLECTION

Content and File Mgmt

Versioning

Disk Space and Bandwidth Mgmt

DISCOVERYSHARING

Collaborative File Storage

e-Portfolios

Workflows

Learning Objects Catalog

e-Reserves

4

Content & File Management» Single point of

editing» Create many

links to one file» Edit files one

time to change everywhere

» Share files and folders with other users or members of groups

» Share “passes” to files with people outside of system

» Use versioning to manage content

5

Disk Space & Bandwidth Mgmt

» Grant space and quota by Institution Role or User

» Monitor system usage

» Guard against system abuses

© Blackboard, Inc. All rights reserved.

COLLECTION

Content and File Mgmt

Versioning

Disk Space and Bandwidth Mgmt

DISCOVERYSHARING

Collaborative File Storage

e-Portfolios

Workflows

Learning Objects Catalog

e-Reserves

7

Collaborative Web-enabled File Storage

» Shared workspaces for content development:

» Course content» Learning objects» Departmental

resources» General

Documents» WebDAV support» Share files and folders

with other » Users » Groups» Members of

courses» Institution roles

© Blackboard, Inc. All rights reserved.

COLLECTION

Content and File Mgmt

Versioning

Disk Space and Bandwidth Mgmt

DISCOVERYSHARING

Collaborative File Storage

e-Portfolios

Workflows

Learning Objects Catalog

e-Reserves

9

Learning Objects Catalog» Search high-

qualitycontent

» Browse by category

» Keyword searches» Find targeted

content with metadata tags

» Full-text search

10

Within the Bb Learning System

» Course content» Visual Text Box Editor» Question Pools

(Release 6.3)» Test and Surveys

(Release 7.1)» Etc.

11

Within the Bb Community System

» Modules:» personal content» institution content» course content» bookmarks» e-Portfolios» workflows» search» etc.

12

What are Building Blocks?

» Applications that developers build to extend the Blackboard platform and to integrate Blackboard with external applications, content, or services. 

13

Getting Started

» What are your resources?» What are you project goals?» What are the application requirements?» How are you going to build your application?» Where are you going to “hook” your application?» Which APIs are you going to use?» Where do you intend to deploy your application?

14

What are your resources?

» Blackboard Learning System Javadoc» Blackboard Content System Javadoc» Blackboard Building Blocks Developers Guide» Blackboard Building Blocks: Introduction to the

Building Blocks APIs and Runtime» Blackboard Web Site» Bb Open-Source Listserv» Sample Building Blocks» Each other!

15

What are your project goals?

» Sample:To provide a report to Administrators that displays user information including quota, so that they can better track usage.

16

What are the application requirements?

» Sample:» Being able to determine which users the report

should display (including all)» Counting the users reported» Displaying the quota allowed» Displaying the quota amount and percentage

free

17

How can this be built?

» Sample:» Need the report to be available to Administrators

» Link

» Need the Administrator to select the users and info to include in the report

» Data Collection Page

» Need to display the report to the Administrator» List Page

18

How: UI taglibs

» XML style tags that can be placed on a jsp page.

» Blackboard supplies two sets of taglibs» bbUI for making pages look like Blackboard

(style)» bbData for giving pages context and virtual

installation information (current session, current user, etc.)

» Specify your own in web.xml

19

What Content System “hooks” are available?

» Action dropdown» Content System Tools» My Portfolios» Modify file» Modify folder» Manage Portfolio» Administrator Panel

20

Action dropdown

21

Tools & My Portfolios

22

Modify file & Modify folder

23

Manage Portfolio

24

Administrator Panel

25

Which APIs to use?

» When the Content System is installed, the APIs are available to use from the entire Academic Suite, NOT just those installed which use CS specific UI hooks.

26

Plan for deployment and support

» Consider your audience again» Your campus only?» Other installations?» Bb Building Blocks catalog?

» How will this functionality be supported?

27

Packaging

» Use WinZip, PkZip, Java’s Jar utility, Ant, etc.» /classes, /jars, other data should be under

WEB-INF

Shared via web

Hidden from web

28

Install & Publish

» Only Administrators can manage Building Blocks.

» Install by browsing for your package.

» Publish by making it Available.

29

Tips on publishing while developing

» Start with a shell» .jsp files will compile at runtime, so just refresh

your browser.» .java files will require restarting tomcat

30

Sample Building Block: Content System Reports

» Sample provided on behind.blackboard.com» Let’s take a look!

31

Sample Building Block: “Hello Content System”

» Possible types of links:» cs_action» cs_tool» cs_modify_folder» cs_modify_file» cs_manage_portfolio» cs_my_portfolios» system_tool

32

Hello Content System: Bb-manifest.xml<?xml version="1.0" encoding="ISO-8859-1"?><manifest> <plugin> <name value= "Hello Content System"/> <handle value= "cs-hello"/> <description value= "This is my first Content System plugin."/> <version value= "1.0"/> <requires> <bbversion value="6.3.0"/>

<csversion value="2.3.0" ifMissing="warn"/> </requires> <vendor> <id value="bb"/> <name value="Stephanie Cupp"/> <url value="http://www.blackboard.com/" /> <description value="Blackboard Product Development" /> </vendor> <http-actions> <config value="admin/config.jsp"/> <remove value="admin/remove.jsp"/> </http-actions>

33

Hello Content System: Bb-manifest.xml<application-defs> <application handle="cshello"

type="system" use-ssl="false" name="Hello Content System" can-allow-guest="false" small-icon="" large-icon="">

<description lang="en_US">Creates a new tool link in the Content System.

</description> <links> <link> <type value="cs_tool"/> <name value="Hello Content System"/> <url value="hello/hello.jsp" /> <description value="hello" /> <icons> <listitem value="images/ci/icons/control_panel.gif"/> </icons> </link> </links> </application> </application-defs>

34

Hello Content System: Bb-manifest.xml<permissions>

  <permission type="java.lang.RuntimePermission" name="db.connection.*" />

  <permission type="attribute" name="user.authinfo" actions="get,set" />   <permission type="attribute" name="user.personalinfo"

actions="get,set" />   <permission type="persist" name="user"

actions="create,modify,delete" />   <permission type="persist" name="userrole"

actions="create,modify,delete" /> <permission type=“persist” name=“course”

actions=“create,modify,delete” /> </permissions> </plugin></manifest>

35

Hello Content System: hello.jsp

<%@ taglib uri="/bbUI" prefix="bbUI"%><%@ taglib uri="/bbData" prefix="bbData"%>

<bbData:context id="ctx">

<bbUI:docTemplate title="Hello Content System">

<bbUI:titleBar iconUrl="/images/ci/icons/tools_u.gif">My First Bb Content System Building Block

</bbUI:titleBar>

This could be a tool for your Bb Content System users to better manage their content.

</bbUI:docTemplate> </bbData:context>

36

Hello Content System

» Let’s take a look!

37

Q & A

» Any questions?

38

Thank you!

What’s next on the schedule?

10 – 10:15 Break (South Gallery)