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):

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