Skip to content

semestry/blackboard-mytimetable

Repository files navigation

Blackboard Building Block for MyTimetable

This project contains a Building Block for the Blackboard Learn 9 environments. It presents the upcoming events to the user and provides a link to MyTimetable:

mytimetable-b2-events mytimetable-b2-noevents

The block also provides a webservice to get the enrollments for a given user. This service can be used to import the enrollments from Blackboard Learn into MyTimetable.

Download

Releases are available at the GitHub releases page.

Installation

Upload the WAR file, activate it, and accept the necessary permissions.

User configuration

Users can personalise the number of activities they want to show in the building block. The default number and maximum number of activities are set in the building block configuration.

Building block configuration

Various settings can be found under the building block settings page:

Application configuration

  • MyTimetable URL: URL to your MyTimetable installation, used in the interface to link to the full timetable. Add ?requireLogin=true to automatically trigger authentication.
  • MyTimetable link target: defines if the building block is loaded in a new window (_blank) or in the current window (_top).
  • MyTimetable link description: if set, overrides the link text to your MyTimetable installation.
  • Maximum number of events to show: maximum number of upcoming events shown in the building block.
  • Default number of events to show: default number of upcoming events shown in the building block (can be set by the user).
  • Show activity code: display activity code in the description column in the building block.
  • Show activity description: display activity description in the description column in the building block.
  • Show staff: display staff column in the building block.
  • Show activity type: display activity type column in the building block.
  • Show note 1: display note 1 in the description column in the building block.
  • Show note 2: display note 2 in the description column in the building block.
  • Show note 3: display note 3 in the description column in the building block.
  • Unknown location description: Description shown when no location is assigned to an activity.

API connection configuration

  • MyTimetable API URL: URL to your MyTimetable 2.3+ API. Needs to include the /api/v0/ part. Multiple URLs can be specified on separate lines, to support failover in the case of issues with one of the application servers.
  • MyTimetable API key: a MyTimetable API key, as included in the api_tokens table. The key needs to have 'elevated' permissions (is_elevated should be True)
  • Timetable types to display: Semi-colon separated list of MyTimetable timetable types to display. This is normally used to exclude location and zone timetables from the display. The default (empty) value should be good enough for most users, and includes all non-location timetable types.
  • Disable SSL certificate CN verification: Tick this box to disable the strict hostname checks and allow any hostname in the certificate. Useful when the connection is made using an internal hostname. The SSL certificate still has to be valid.
  • Timeout settings: define various timeouts.
  • Maximum number of concurrent API connections: Maximum number of concurrent connections made to the API. Do not make this number too high, to prevent MyTimetable server overload.
  • Use student ID instead of username: Use the Blackboard Student ID instead of the Blackboard username. Domain configuration settings below still apply.

Domain configuration

  • Domain prefix for Blackboard username: configure this setting if your MyTimetable usernames include a Windows domain name (DOMAIN\username) whereas your Blackboard usernames do not have the domain part (username).
  • Postfix for Blackboard username: configure this setting if your MyTimetable usernames have a postfix which your Blackboard usernames do not have (e.g., an email domain).

Customisation

  • Override CSS: enter custom CSS to be inserted with the building block.

Logging

Logging is done using Logback. By default 7 days of logs are kept in the Blackboard log folder, under the name mytimetable-b2.<date>.log (logging is done to the relative path ../../../../blackboard/logs/).

Enrollments service

The building block includes a small REST web service that exports the enrollments of a user. Authentication is done using the API token from the building block settings. A header apiToken and a GET parameter user have to be included in the request. The service is available at <building block base URL>/enrollmentsForUser. An example conversation can be found below:

GET /webapps/evh-mytimetable-b2-bb_bb60/enrollmentsForUser?user=dscott1 HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: localhost
User-Agent: HTTPie/0.7.2
apiToken: MY-API-TOKEN


HTTP/1.1 200 OK
Content-Length: 284
Content-Type: application/json
Date: Mon, 06 Jan 2014 16:06:29 GMT
Server: Apache/1.3.41 (Unix) mod_gzip/1.3.26.1a mod_ssl/2.8.31 OpenSSL/0.9.8n mod_jk/1.2.37
Set-Cookie: JSESSIONID=SID.root; Path=/webapps/evh-mytimetable-b2-bb_bb60; Secure
X-Blackboard-appserver: xxxx.nl
X-Blackboard-product: Blackboard Learn &#8482; 9.1.xxx.0

[
    {
        "course": {
            "available": true,
            "description": "",
            "displayTitle": "CTB1001 Analyse (2013-2014 Q1)",
            "endDate": null,
            "id": "30827-131401",
            "institutionName": "",
            "organization": false,
            "serviceLevel": "FULL",
            "startDate": null,
            "title": "CTB1001 Analyse (2013-2014 Q1)"
        },
        "enrollmentDate": 1389016861000
    }
]

Support and more info

Visit our website, http://mytimetable.net, open a ticket (PR's welcome), or drop an email at [email protected].

License

Copyright 2013 - 2017 Eveoh

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.