Info |
---|
MyTimetable 2.1 is currently in the state: stabledeprecated. No further development is expected except for critical bug fixes. It is tracked using the git branch: |
The development of MyTimetable 2.1 focussed focused on further refining and polishing MyTimetable, and implementing some of the features that were dropped from MyTimetable during the upgrade from 1.7 to 2.0. Also, during the development of MyTimetable 2.1 we moved all development and issue tracking to GitHub, and further streamlined our development processes. Furthermore, many internal changes have been made to ease future upgrades and extensions to MyTimetable.
...
Table of Contents |
---|
Functional changes
- Mobile interface — MyTimetable 2.0 features an all-new interface optimised for mobile devices. By default this interface is available under the url
https://mytimetable.host/m
. The mobile interface is optimised for use on touch-enabled devices and can be used by guest users as well as authenticated users. To keep the interface clean, fast and simple, not all operations from the main interface are available in the mobile version. The following operating systems are supported: Apple iOS 5+, Android 2.2+, Windows Phone 7+, Blackberry 6+. Due to differences in features between the different phone operating systems, some features may not available on all phones. Some screenshots of the mobile interface:Gallery include mobile1.png,mobile2.png,mobile3.png,mobile4.png,mobile5.png,mobile6.png columns 3 sort name
- Condensed list view — A new list view was added that shows recurrent activities in one row, together with the week numbers the activity occurs in.
- Month view — A month view was added that shows the activities for the whole month in a compact format. Clicking an activity reveals its full details.
- Availability view — In the location viewer, a new view was added that shows room bookings in a grid format. This format conveniently shows what rooms are available.
- List view range drop-down — The list views now feature an option to select the display range. By default it is possible to display a week or a month of activities, and named availabilities from Syllabus Plus can be added to this list.
- Linking timetables — It is now possible to create a direct link to one or more timetables of the same type. Timetables can be referenced by host key or identifier; the field to be used as host key is taken from the MyTimetable configuration. Contact our support department for URL details.
- API — A REST API was added. This is a first draft and the exact specifications will be refined further in cooperation with our customers. The API can return list of available timetables (optionally filtered by department or study programme) and the activities for a certain timetable. Using OAuth2 it is possible to retrieve a user's personal timetable and modify the user's subscriptions. Optionally, it is possible to make an API token required to access the API. Results are returned in XML or JSON format and a WADL file specifying the possible operations and data types returned is available.
- Activity search — A search box can be shown in the interface to give users the ability to search their personal timetable for a certain activity. This feature was already implemented in v1.7 of MyTimetable, but further refined in v2.0. Since search operations can have a performance impact on MyTimetable, the search box disabled by default. Contact our support department to enable this feature.
- Location viewer tabs rearranged — The tabs in the location viewer were rearranged to match the tab order in the main interface.
- Menu and sidebar redesign — The settings and location view menu options and various other buttons were moved to the top of the screen and are now displayed in a text format for a better user experience. The sidebar was redesigned and now features a drop-down menu to limit the number of buttons that appear in the interface. This redesign is an ongoing process and the interface shall be further redesigned in the future.
- Activity grouping — In the settings menu a new option was added that gives users the ability to group concurrent activities of the same module. Locations, student sets and staff members of these activities will then be grouped and shown as one activity.
- Activity notes — An option was added to show up to 3 extra descriptions/note fields for an activity. In the settings dialog the user can choose to show or hide these fields.
- Student sets and sections — The sections linked to an activity can now be shown. In the settings dialog the user can choose to show or hide student sets and sections.
- Add timetable improvements --- Added select/deselect all, search box and multi-select to (almost) all 'add timetable' dialogs.
- Piwik tracking — Added an option for Piwik tracking (instead of or beside Google Analytics). Hosting of the Piwik installation is provided by Eveoh. Privacy-friendly options are enabled and usage of tracking cookies is disabled by default.
- Department parents — Support for parent/child relations in department listings when using Syllabus Plus was added.
- Feedback form — An option was added to include a link to a Google Docs form used for gathering user feedback.
- Subscription colouring — All activities shown in the interface are now tagged with a CSS class matching the subscription they belong to. This provides the opportunity to colour the activities based on the subscription. Default subscriptions (from a link with the SIS) have a separate CSS class.
- Child subscriptions — An option was added to select/deselect all child subscriptions of a subscription (with drop down menu).
- Header message — An option was added to show a header message (from a user text field in the Syllabus Plus institution configuration).
- Expired session warning — A new warning dialogbox for expired sessions was implemented, to overcome issues with auto-reloading clients that keep reloading if cookies are disabled.
- Login warning message — A message was added in the 'add timetable' dialog to notify the user that the user profile will only be saved if they are authenticated.
- Warning message — An optional warning message was added in the 'add timetable' dialog that displays a custom text from the MyTimetable configuration. An example use of this message is pointing out to users that they should enrol in courses through a separate system before adding them to MyTimetable.
- Nagios status URL — A new url,
/status
, was added that can be used for automated availability monitoring of MyTimetable. Eveoh monitors the availability of all MyTimetable instances and can notify the customer of any downtime on request. - Activity size — An option was added to show the activity size in the activity details dialog.
- 404 page — A custom HTTP 404 Not Found error page was added.
- Activity type filtering — The activity type filtering was reworked: the grouping of activity types and the descriptions can now either come from the database or the configuration files, or a combination of both.
- Shorter URLs — Several URLs were shortened (/schedule, /module, /ical, /overview). Old iCalendar feed URLs will continue to work as expected.
- Module_pos timetable provider — A module_pos provider for Syllabus Plus was added. This provider shows only the activities of a module that are associated with a certain study programme's student sets.
- Performance improvements — The speed and server load of SQL queries associated with location and zone subscriptions was improved.
- External links — External links (e.g., to study guide) are now hidden by default until hovering over an item.
- Better subscription management — Default (SIS-linked) subscriptions are properly removed when no longer available. Subscription sorting was improved and made case-insensitive. Multiple timetables that carry the same description can now be queried.
- New activity indicator — The indicator that shows AJAX loading activity (spinner) has been replaced by a static indicator in the top centre edge of the screen.
- Many small bugfixes and browser compatibility improvementsNew export menu — The new export menu is a drop-down menu that should explain the different export options more clearly to the user. Also, it is now possible to export individual timetables. The export period dialog has also been redesigned for a better user experience.
- iCalendar feed and API are now stateless — This fixes an important bug were user profiles were sometimes not updated if the iCalendar client remembered the session cookies and kept the session active (mainly Outlook users had this issue).
- Draft activity styling update — The styling of draft activities has been updated. Also, the draft indicator has been added to the month and availability view:
- Role-based security — For each timetable type it is possible to specify which roles should have access. These access permissions are enforced across all channels (desktop, mobile and API). Roles can be retrieved from various sources, like LDAP groups or a custom database.
- Field formatter changes — The formatter that is used for each field shown in the interface (e.g., description, type name, module code) has been rewritten and now uses SpEL expressions. This makes it possible to parse and show the timetabling data in many formats, combine fields, and even retrieve extra data from external data sources to show in the user interface.
- Timetable suggestions — The former 'add from Blackboard' timetable option has been reworked to a more generic 'add timetable suggestions' option. This option makes it possible to suggest timetables to the user (retrieved from for instance a student information system) without automatically adding them. This proves useful if the information in the other system is not 100% reliable, but still of use to most users.
- OAuth token removal has been reintroduced — It is now possible to remove OAuth authorisations given to applications from the Settings menu. This was removed / unimplemented in 2.0 and now has been re-added.
- Several improvements to text labels and the interface:
- Labels in list views have been improved.
- iCal has been renamed to Apple Calendar.
- Check box and radio button styling is now the same across all platforms.
- Mobile interface timetable types — The mobile interface supports more timetable types (student, activity group).
- Mobile interface browser warning — The mobile interface shows a warning message if it is visited by an unsupported browser (desktop browsers or old Android versions), or if the browser of the user has some trouble with daylight saving time (Blackberry).
- Overview export option — The overview pages now have a link to quickly export this or next week's timetable to PDF.
- API improvements — Together with some of the API users at Inholland University, several features and bug fixes were added to the API:
- New filter options have been added, to filter by student set group and other types.
- The date format has been improved, now both the Unix timestamp as well as the ISO date format are supported. Also, it is possible to specify 'today' or 'tomorrow' instead of a specific date.
- The subscription list can be filtered by type.
- The
/v0/user
method was added to retrieve the user name and iCalendar feed URL. - API tokens can be configured to require OAuth authentication.
- The source filtering was fixed, API list methods now return exactly the same data as shown in the MyTimetable user interface.
- Improved styling of help, 404 and error pages — The pages now match the institution's corporate style more closely.
- Requirelogin parameter — Using the URL parameter
requireLogin=true
, it is now possible to force a user to login (e.g., to show his or her personal timetable instead of starting a guest session). - Activity groups — MyTimetable now supports activity group timetables.
- Save user roles for iCalendar feed access — Previously, the roles of a user were not saved or cached. This causes issues when accessing the application using token authentication (like the iCalendar feed), since the roles of the user are unavailable at that moment. The roles of a user are now saved on the start of each session, and reused if the role information is unavailable.
- Collapsed by default — An option added to add subscriptions in collapsed state by default.
- Several other important bugfixes were made:
- ISO week numbering for week 53/week 1 sometimes showed an incorrect week number.
- Switching database or view sometimes caused an error due to invalid URL parameters.
- The month view sometimes showed an incorrect number of weeks.
- The month view sometimes threw an exception if the date was changed before the events for the current date had been retrieved.
- Reintroduce OpenSSO support — OpenSSO is now fully supported again, and can be configured by installing the OpenSSO agent and enabling the
auth-opensso
Spring profile.
Non-functional, technical and back-end changes
...
- Flyway is now used to maintain the database schema of the user preferences database. To initialise the Flyway schema on an existing user preferences database, it is necessary to update the schema to the latest non-Flyway version and run MyTimetable once with the setting
userPrefs.flyway.initOnMigrate
set totrue
. Please ask our support department for further information. - The version numbering policy of MyTimetable has changed. The version number now consists of:
<major version>.<minor version>.<git short commit hash>
, and can be found in the Settings dialog, under 'Status'. - Spring profiles are now used to select the authentication method. Due to this change, it may be necessarto necessary to update the
spring.profiles.active
environment variable if it exists in your configuration. - Infinispan is now used as cache provider for Spring-based method caching. This caching is used to improve performance of the internal user preferences and subscription services.
- UTF-8 is now fully supported by MyTimetable. In case you encounter any issues with character encoding, please contact us to resolve these issues.
- Log spamming has been fixed: iCalender feeds with incorrect authentication or users that are required to login do not cause excessive log messages anymore.
- Several memory and class loader leaks have been fixed, by upgrading c3p0 and JTDS (the database driver and connection pool), and the connection pool settings have been tuned based on experience from several large MyTimetable instances.
- AspectJ (1.7.2) is now a fundamental part of MyTimetable. As such it is possible to alter or override certain MyTimetable functionality for certain customers using aspect-oriented programming.
- Several Syllabus Plus SQL connection performance improvements have been made by using read-only transactions, optimising DAO's and using the SQL2005 Hibernate dialect. Due to the latter change, SQL Server 2005 or higher is now required for MyTimetable (but it always has been for the Scientia Scheduled Extract, so this change should not cause issues for anyone).
- JSP pages have been updated to only include JSTL and any inline code has been removed.
- Upgrades of dependencies:
- Servlet API (2.5)
- Spring (3.2.1.RELEASE)
- CXF (2.7.2)
- Spring Security (3.1.3.RELEASE)
- Spring Security SAML (1.0.0-20121118)
- Spring Security Oauth2 (1.0.0.RELEASE)
- Spring Mobile (1.0.1.RELEASE)
- Jackson (1.9.11)
- JTDS (1.2.7)
- Ehcache (2.6.2)
- Joda time (2.1)
- Gradle (1.3)
- iCal4j (1.0.4)
- require.js, moment.js and dependencies
...
Removed and deprecated features
The following features from earlier MyTimetable versions have been dropped deprecated, removed, or partially dropped and are removed and are not supported anymore:
- Tomcat 5.5 and Java 5 are not supported anymore due to the move to Servlet API 2.5.
- Blackboard building block hosting is not supported anymore, since very few customers are using this functionality and all plan on moving MyTimetable to a separate server to increase performance and availability of the application.
- Blackberry devices are not fully supported anymore, due to unsolvable issues in the Blackberry browser with regards to daylight saving time. A warning message is now shown to Blackberry users.
- Calendar42 specific output in the iCalendar and xCalendar output (
extended
URL parameter) has been removed.