Blackboard’s Developers Conference at BbTLC17
These are my notes and thoughts and should not be seen as an accurate account of the information provided. Some of the information included here contains features that Blackboard are working on / towards but have no guarantee to bring to market.
If you feel I have missed something / been inaccurate in my note taking please let me know in the comments and I will correct / discuss / debate with you 🙂
- Increase commitment to 9.1
- Increased engineer positions in Product Development
- Working hard to clear out the bug backlog
- Merged code
- New 9.1 Installation Process
- Based on Gradle and Maven
- Command line driven – no Java Forms
- Also used for cumulative updates moving forward
- Simplify Integration paths
- Q2 2016 – merged code SaaS and Learn
- Learn Q2 2016 release supports Java 8
- Support for Building Blocks in Ultra
- Improved Developer Engagement
- Modernise Integration Models
- REST is Live!
- Rest and LTI are our go-forward models for integrating with Learn
- Examples on Community and GitHub
- Improve Documentation
- Use Swagger
- Developer Virtual Machine
- Fully Socialised
Has a good built in search ( – why can’t Blackboard Learn have a good search?)
Sample code and Tutorials all shared.
can also be found at https://github.com/blackboard
Developer Tools – Developer Virtual Machine
Recently changed the server that manages the virtual machine downloads – this has caused some issues and you may find it takes you a few tries to download a functioning file – email Scott / Mark for a alternative link.
VM available on Behind the Blackboard, VirtualBox image, Managed by Vagrant.
Open Technical Previews
Developer Groups allows you to assign developers an application to manage.
Rate limits can be adjusted upon request and review via a support ticket.
When managing your applications, only ever give out the application ID – key and secret should be used ONLY in your code!!!!
Keys and secrets – you can now generate new ones for registered applications. This means if you lose the original you no longer have to deregister and reregister your applications to generate new keys and secrets.
REST APIs are Bb’s prefered integration model going forward.
Rate limits are 10K per consumer (Bb Learn system).
There is no rate limit activity tracker in the developer portal. But each request has in its header 3 variables indicating how you’re doing with the rate limit.
Collection Gets hard-coded to 200 items per page – i.e. if dealing with 500 items you will need to trigger next page 2 times.
Setting Up Your DVM With REST and Python
[DVM = Developer Virtual Machine]
When it’s working well you can get your copy from behind the blackboard, when it’s not email a developer / submit a ticket to obtain an alternative link.
Operates on a developer licence which is a fully functional licence.
When you download your DVM it is just an empty shell – this session will look at a script that can populate this environment with courses, users etc. There is an element of randomisation built in.
This has the following requirements:
- Python 3.5.1
- A Learn test instance
- requests lib
If using the REST feature:
- A REST Developer account
- Register your version of the LearnObjectGen tool within the Dev Portal
- Register your version of the LearnObjectGen tool within your test instance
Nice to haves…
Mark uses miniconda
$ python learnObjectGen.py -i|–index <start index> [-t|–target_url] [-f|–output_file] [-o|–object <Courses|Users|Memberships>] [-n|–number]
-t|–target_url : (Optional) Target URL – required to update with REST. If left blank output will be written to a the file specified by -f
-i|–index : (Optional) Starting index for object ids. e.g.: 1000
-n|–number : (Optional) Number of objects to create. e.g.: 10
-f|–output_file : (Optional) Snapshot Flat File prefix. Default: learnObjectGen
You have to minimally provide either the target (-t) or index (-i)
Providing only the index arg writes Snapshot Flat Files for all objects (max count).
Providing only the target arg writes Snapshot Flat Files for all objects (max count) AND uses REST to create the objects on the target system.
Max Counts: 100 Courses, 150 Users, 1000 Memberships
NOTE: Snapshot flat files are created to assist in managing created objects. These may be regenerated using the same index
and count arguments as when you created the objects and running without the -t argument.
Note: When creating memberships this tool will randomly distribute memberships, emulating a real world environment.
Not all courses will have enrollments, not all Users will have enrollments. Regenerated membership files will not align with previously generated
membership snapshot files.
Grades Journey Building Block
Allows export of data in multiple formats.
Works with LIS 2.0
This is now free.
Institutional Admin have extra tools
Showed GradesJourneyDemo Building Block
This can also create Blogs, journals, discussions and Assignments
There is still no way to manage a course that needs to submit grades at multiple points, Bb are looking at this but the current issue is that the submission of the grades locks the Grade Centre in full.
Andy has said he is willing to share his code and will at how to put up on GitHub.
If you need to you can create and return using different methods – e.g. create via flat file and return via REST.
Caliper: tapping into the Learn Activity Stream
Bb & Caliper – a work in progress
Bb joined as the spec wasn’t fully formed and as such Bb are still adding a few features needed.
Caliper focuses on learning event interoperability, to get away from the data silo problem.
Available to Learn SaaS deployments and Managed Hosting 9.1 👎
Exploring ways around technical constraints for self-hosted customers.
The reason for this is that the server they are using is behind Blackboards firewall and they would need to find a way of opening up that firewall for specific self-hosted solutions without compromising the security of their systems.
Given examples of Stream Event Syntax.
Blackboard is looking to deprecate SOAP in favour for REST, subtext: we’re getting you ready for Ultra.
Signup List B2-to-REST Migration
This example of migration to REST demonstrates a tool developed by Malcolm Murray, Durham Uni that has been converted by Mark O’Neil Scott Hurrey, with Malcolm Murray and Stephen Vickers acting as advisors.
Code Git repository: https://github.com/blackboard/BBDN-SignUp-List