Page tree
Skip to end of metadata
Go to start of metadata

MyTimetable fetches its data from one or more data sources. These data sources are laid out in a tiered fashion, where we can distinguish the following layers (bottom-up):

  • Data source: The direct connection to a timetable provider, like Syllabus Plus. The exact settings depend on the data source provider, but a context configuration (specifying the type of the data source) is always necessary.
  • Merging group (optional): consists of one or more data sources, and merges the data in these data sources. For example, if one department uses two databases, one for the first semester and one for the second semester, the data sets will overlap since both will contain the same modules and students. A merging group will merge the data from both sources and present them as one data source, without duplicates.
  • Uniting group (optional): consists of one or more merging groups or data sources, and unites the data in these data sources. For example, two departments using their own timetabling database (with distinct sets of data) will be presented as one data source using a uniting group.
  • Outer layer/component listing: consists of a list of keys of one or more uniting groups (prefixed with UG_), merging groups (prefixed with MG_) or data sources (prefixed with DS_). These are the data sources that are displayed to the user, and every data source referenced in this list should carry a label.

Lists of data sources should be sorted with descending priority. If a user does not specify a data source in certain requests, the first data source available will be used. Also, in case of merging groups, the data (e.g., module name) in the data source listed first will take priority over the other data sources.

A more detailed discussion of the application architecture is available at Timetable services & data providers.

We will now present some example configurations, which can be included in the MyTimetable configuration properties file.

Simple Syllabus Plus data source configuration

A simple Syllabus Plus data source configuration, listing two Syllabus Plus databases (for 2016/17 and 2017/18) looks something like:

# Define two Syllabus Plus data sources, without intermediate uniting or merging groups
Database.Components = DS_2017;DS_2016

# Define the name of the data source as shown in the interface
Database.DataSources.2016.Label = 2016/2017


# Optionally, define a label for another language
#Database.DataSources.2016.Label.nl = DB van 2010
# Optionally, make this a 'secondary' data source. Secondary data source types are shown in a submenu in the interface.
#Database.UnitingGroups.2016.Secondary = true

Database.DataSources.2016.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2016.Syllabus.ServerName = my_server_name
Database.DataSources.2016.Syllabus.DatabaseName = my_database_name
Database.DataSources.2016.Syllabus.User = my_user_name
Database.DataSources.2016.Syllabus.Password = my_password


# Optionally, specify database port or instance, and the use of SSL encryption
#Database.DataSources.2016.Syllabus.PortNumber = 1433
#Database.DataSources.2016.Syllabus.Instance = my_instance
#Database.DataSources.2016.Syllabus.Ssl = authenticate

# Optionally, define the start and end date
#Database.DataSources.2016.Syllabus.StartDate = 2016-09-01
#Database.DataSources.2016.Syllabus.EndDate = 2017-08-31

Database.DataSources.2017.Label = 2017/2018

Database.DataSources.2017.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2017.Syllabus.ServerName = my_server_name
Database.DataSources.2017.Syllabus.DatabaseName = my_database_name
Database.DataSources.2017.Syllabus.User = my_user_name
Database.DataSources.2017.Syllabus.Password = my_password

More advanced Syllabus Plus data source configuration

A more advanced Syllabus Plus configuration, utilising uniting and merging groups, looks something like:

Database.Components = DS_2017;UG_2016

Database.UnitingGroups.2016.Label = 2016/2017
Database.UnitingGroups.2016.Components = MG_2016a;MG_2016b

Database.MergingGroups.2016a.Components = DS_2016a2;DS_2016a2

Database.DataSources.2016a1.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2016a1.Syllabus.ServerName = my_server_name
Database.DataSources.2016a1.Syllabus.DatabaseName = my_database_name
Database.DataSources.2016a1.Syllabus.User = my_user_name
Database.DataSources.2016a1.Syllabus.Password = my_password


Database.DataSources.2016a2.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2016a2.Syllabus.ServerName = my_server_name
Database.DataSources.2016a2.Syllabus.DatabaseName = my_database_name
Database.DataSources.2016a2.Syllabus.User = my_user_name
Database.DataSources.2016a2.Syllabus.Password = my_password


Database.MergingGroups.2016b.Components = DS_2016b2;DS_2016b2

Database.DataSources.2016b1.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2016b1.Syllabus.ServerName = my_server_name
Database.DataSources.2016b1.Syllabus.DatabaseName = my_database_name
Database.DataSources.2016b1.Syllabus.User = my_user_name
Database.DataSources.2016b1.Syllabus.Password = my_password

Database.DataSources.2016b2.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2016b2.Syllabus.ServerName = my_server_name
Database.DataSources.2016b2.Syllabus.DatabaseName = my_database_name
Database.DataSources.2016b2.Syllabus.User = my_user_name
Database.DataSources.2016b2.Syllabus.Password = my_password


Database.DataSources.2017.Label = 2017/2018

Database.DataSources.2017.ContextConfiguration = classpath:nl/eveoh/mytimetable/dataprovider/syllabus/syllabus.xml
Database.DataSources.2017.Syllabus.ServerName = my_server_name
Database.DataSources.2017.Syllabus.DatabaseName = my_database_name
Database.DataSources.2017.Syllabus.User = my_user_name
Database.DataSources.2017.Syllabus.Password = my_password

  • No labels