MyTimetable 3.0 is currently in the state 'in development', however we do have a branch available that can be considered 'stable'. Some customers are already using this stable branch, but we recommend most customers to stay at version 2.7 till the last features of 3.0 have been implemented. These release notes are work in progress, and planned features may change at any time. MyTimetable 3.0 is tracked using the git branches: master
(for the unstable features) and rb-3.0
(for the stable branch).
MyTimetable 3.0 is a major feature release and introduces direct, push-based, synchronisation support for Microsoft Exchange, Office 365 and Google Calendar. These features are not 'plug and play' but require additional set up and maintenance and are thus not part of a regular upgrade. Please contact us for details.
Next to the push-based synchronisation, MyTimetable 3.0 offers a polished user interface, changes in the iCalendar feed handling ('selective sync'), and many back-end changes to make the system perform better than ever.
All work involved in upgrading to the latest MyTimetable version (configuration, building, testing) is free of charge for our customers with a Software Assurance or All-In support agreement.
Functional changes
- Added push-based support for external calendars — After a long implementation phase, we are pleased to announce availability of our 'external calendar' support. MyTimetable is now able to offer push-based synchronisation to Microsoft Exchange, Office 365 and Google Calendar. Push-based synchronisation offers a more stable calendar integration than the iCalendar feeds, integrates well with the Exchange availability information when planning appointments and is really easy to set up for the user. Since this is a major new feature that also requires some infrastructure changes and set up on the Exchange/Google side, implementation of this feature is done on a per-customer basis and involves some additional consulting and support hours. Please contact us for details.
PLANNED Incremental sync — at the moment we only offer a daily 'full sync' of a timetable, but the final MyTimetable 3.0 build will also offer incremental synchronisation, where changes in the timetable will be synchronised almost instantly. - Pexip / conference integration — Together with Pexip, MyTimetable now offers the perfect distance learning solution. Virtual classrooms are automatically created from your timetable, and users are able to join the classroom with one click, from any device, everywhere. More details are available in this blogpost.
- Dialogs redesign — The dialogs in the desktop interface have been redesigned and offer clearer feedback on success or failure. The event details dialog was also redesigned, and now includes the event type color and draft styling.
- Introduced separate button for downloads and synchronisations — To further emphasise the difference between a one-time download and a constant synchronisation of your timetable, we have introduced separate buttons for downloads and synchronisations. Of course the buttons have a handy tooltip to assist the user in choosing the right option.
- Selective sync support — Not every user wants to see each of his added timetables in his or her personal calendar feed. Often users lookup a timetable of a colleague or a classmate's course, and do not want to synchronise that timetable to their Outlook or Google Calendar. For this reason we have introduced selective sync: when adding a timetable a user can indicate whether or not the timetable should also be synchronised to other devices and clients. These settings affect both iCalendar feeds and the new push-based synchronisation options.
- New help page — We are currently working on a completely revamped help page, which offers better navigation and more guidance for both simple and more complex tasks. Each calendar integration will be discussed separately and in more detail.
- MyTimetable data provider added — The backend of a new MyTimetable data provider has been added. Often not all timetable information is present in the timetabling systems, e.g., deadlines or holidays may not be available from the timetabling system. The MyTimetable data provider offers the possibility to create these events directly in MyTimetable. At the moment the back-end is present, and we are still looking for a sponsor for the the front-end, please contact us for details.
- Mobile interface timezone and locale improvements — Events in the mobile interface are now always shown in the time zone of the institution, which prevents any problems in case the user's device is set to the wrong time zone.
- S+ activity size improvements — The activity size can now use planned size, real size or actual size.
- Encoded iCalendar timetable keys — The timetable key in iCalendar feed URL's is now encoded, which prevents errors if the customer uses merging (i.e., separate databases for semester 1 and 2) and the timetable object contains non alphanumeric characters in the name or host key.
- CSV export improvements — The CSV export includes more fields and features a user-selectable separator to maximise client compatibility.
- Draft activity styling update — The readability of draft activities has been improved by using a darker font and wider stripes.
- Mobile interface supports 'show-all' property — For smaller customer installs this will mean the 'add timetable' list will show all timetables by default, no search necessary.
- API: timetable type details call added — A new call has been added to the API (
/api/v0/timetabletypedetails
) which provides some more details on the configured timetable types. - API: subscription type information added — The API subscriptions call (
/api/v0/subscriptions
) now contains information on the timetable type of each subscription. - API: verify timetable existence when adding a subscription — When adding a timetable through the API, the existence of a given timetable key is verified against the data source. This prevents user profile corruption if the API calls are invalid.
- Timetable existence is now verified each time a subscription is retrieved — This prevents errors in the interface if a timetable is removed from the source database, and generally improves performance because a separate existence check is no longer necessary.
- Export dialog shows more details about events in the past or distant future not being included in iCalendar feed — If the customer has chosen to exclude events in the past or future from the iCalendar feeds, the export dialog will now show a message to the user that describes the set limits.
- Unsupported browser page improvements — The warning page that is shown if a user uses an unsupported browser now includes a logo and a link to download a better and newer browser. Microsoft IE7 users will now also receive an unsupported browser warning.
- Status page improvements — The MyTimetable monitoring URL (
/status
) now provides a consistent data and time format. - Provisioning API added — The provisioning API provides the possibilities to create and remove user profiles from the database, and initiate push-based synchronisations.
- Admin interface added — A basic admin interface has been added to MyTimetable. Using the admin interface it is possible to view the state of push-based synchronisations and configure logging levels on an application-wide or per-user basis. More features will be added in the future.
- Error page improvements — A friendly error message is now shown if a SAML authentication request fails due to a timeout.
- API OAuth improvements — The OAuth library has been updated and MyTimetable now supports various OAuth scopes. Using the scopes it is possible for a user to give read-only access to their timetable, instead of read-write.
- As usual, many small bug fixes and changes are included in this release. 416 issues were fixed in 701 commits.
Non-functional, technical and back-end changes
The following changes have been made to the MyTimetable backend and underlying software, and have no direct impact on MyTimetable functionality:
The project has been divided into separate modules for core, dataproviders, web, mobile and external calendaring.
- The configuration system has been reworked, and now includes all property files from the 'config' directory under a directory defined using the Java system property application.home. This makes it no longer necessary to define environment overrides in the Tomcat context configuration XML files. During an upgrade Eveoh staff will convert the old configuration to the new format, or provide you with instructions how to do this yourself.
- PLANNED New Syllabus Plus backend — The new backend will offer better performance and will be ready to support change detection and notifications. ERDB 3.1.x support will be dropped, since almost all of our customers have already moved to ERDB 3.2+ which has a new schema.
- The compatibility level of all non-GWT source has been updated to Java 8. MyTimetable now requires Java/JRE 8 and a recent Tomcat version (7.0.54+, most recent recommended).
- Switch to Thymeleaf based templates, to better separate view and controller logic.
- GWT upgrade to version 2.7.0. This also means we switched to 'super-dev' mode and are now using Java 7 source level for the GWT sources.
- Removed AspectJ from the build pipeline and switched to Spring-based aspects. We were not really using the extra AspectJ features, and using AspectJ did interfere with the IDE/IntelliJ build chain, so we chose to remove it.
- Introduced a Gulp / SASS / Bower based build chain for many of our assets (CSS, Bootstrap, JS). During this process many of these dependencies were also upgraded to the latest version.
- jTDS, the Microsoft SQL connector, has been patched to include support for SSL and SQL Server 2014.
- Many improvements were made to the logging configuration. MyTimetable now logs to a separate log file, which is rotated daily. The log file can be found in the Tomcat logs directory. Also the logging can include the username of the user, and through the admin panel is is possible to configure per-user log levels.
- Remote logging has been added. When enabled this logs to an Eveoh provided logstash host by default, see /wiki/spaces/MYTT/pages/3099656255 for details.
- Disabled in-URL session tracking, because it does not work well and is a security risk.
- Added a static authenticator, which supports a fixed username and password, for non-public facing MyTimetable (API or external calendaring only instances).
- Jasig CAS authentication is now supported.
- AD authentication now supports recursive group retrieval.
- The following dependencies were upgraded:
Spring (4.1.5)
- Spring Security (3.2.5)
Gradle (2.3)
- Joda-Time (2.7)
- Servlet API (3.1.0)
- Apache CXF (3.0.4)
- Flyway (3.1)
- MySQL connector (5.1.34)
- HikariCP (2.3.2)
- slf4j (1.7.10)
- Logback (1.1.2)
- Guava (18)
- Jackson (2.5.1)
- Commons-codec (1.10)
- Commons-beanutils (1.9.2)
Removed and deprecated features
The following features from earlier MyTimetable versions have been deprecated, removed, or partially removed and are not supported anymore:
- Legacy UserCalendarItemsService removed. A new version of the Blackboard building block is available that uses the MyTimetable API instead of the legacy SOAP service. Custom integrations should also switch to the MyTimetable API, contact us for help with this.
- Internet Explorer 7 support was already deprecated in MyTimetable 2.4 and has now been removed from the build process. IE7 users are advised to use an other, more recent browser.