NAME
====
Bb::Collaborate::Ultra - Perl 5 bindings to Collaborate Ultra Virtual Classroom Software (Under Construction)

SYNOPSIS
========
    use Bb::Collaborate::Ultra::Connection;
    use Bb::Collaborate::Ultra::Session;
    use Bb::Collaborate::Ultra::User;
    use Bb::Collaborate::Ultra::LaunchContext;

	my %credentials = (
	  issuer => 'OUUK-REST-API12340ABCD',
	  secret => 'ABCDEF0123456789AA',
	  host => 'https://xx-csa.bbcollab.com',
	);

	# connect to server
	my $connection = Bb::Collaborate::Ultra::Connection->new(\%credentials);
	$connection->connect;

	# create a virtual classroom, starts now runs, for 15 minutes
	my $start = time() + 60;
	my $end = $start + 900;
	my $session = Bb::Collaborate::Ultra::Session->post($connection, {
		name => 'Test Session',
		startTime => $start,
		endTime   => $end,
		},
	    );

	# define a session user
	my $user = Bb::Collaborate::Ultra::User->new({
	    extId => 'dwarring',
	    displayName => 'David Warring',
	    email => 'david.warring@gmail.com',
	    firstName => 'David',
	    lastName => 'Warring',
	});

	# register the user. obtain a join URL
	my $launch_context =  Bb::Collaborate::Ultra::LaunchContext->new({
	      launchingRole => 'moderator',
	      editingPermission => 'writer',
	      user => $user,
	     });
	 my $url = $launch_context->join_session($session);


DESCRIPTION
===========
This Perl 5 module provides bindings to the the Collaborate (*) Services RESTful API. These support the CRUD and processing operations for the scheduling and access to HTML sessions.

(*) Blackboard Collaborate Ultra is a virtual classroom web service based on the WebRTC (Real Time Chat) protocol.

Resources and Schemas
---------------------
These services are described in https://xx-csa.bbcollab.com/documentation.

Each resource class and schema is represented by a Perl 5 class:

- Context - Bb::Collaborate::Ultra::Context
- Session - Bb::Collaborate::Ultra::Session
- Recording - Bb::Collaborate::Ultra::Recording

Authentication
--------------
This is managed by the Bb::Collaborate::Ultra::Connection class

Authentication is via the OAuth 2.0 protocol, using the JWT Token Flow, as described in the documentation.

INSTALLATION
============
To install this module, run the following commands:

    perl Makefile.PL
    make
    make test
    make install

Live Testing
------------
The tests in this distribution may be run against a live server by setting
up the environment variables, as shown below:

    perl Makefile.PL
    make
    export BBC_ULTRA_HOST=https://xx-csa.bbcollab.com; # for example
    export BBC_ULTRA_ISSUER=some-client-id;
    export BBC_ULTRA_SECRET=some-secret-key;
    make test

It is recommended that tests are only run on a designated test server, not a live production site.

BUGS AND LIMITATIONS
====================
- This module does not yet fully implement resource types: Users, Enrollments or Courses
- JWT Username-Password authentication is not yet supported.

COPYRIGHT & LICENSE
===================
Copyright 2016 David Warring, all rights reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

