2018-2019 Software Community Health Metrics - UniTime

2018-2019 Software Community Health Metrics - UniTime

Status: Graduated Incubation

Background and Objectives
UniTime is a comprehensive educational scheduling system that supports developing course and exam timetables, managing changes to these timetables, sharing rooms with other events, and scheduling students to individual classes. It is a distributed system that allows multiple university and departmental schedule managers to coordinate efforts to build and modify a schedule that meets their diverse organizational needs while allowing for minimization of student course conflicts. It can be used alone to create and maintain a school's schedule of classes and/or exams or interfaced with an existing student information system.

The system was originally developed as a collaborative effort by faculty, students, and staff at universities in North America and Europe. The software is distributed free under an open source license in hopes that other colleges and universities can benefit their students through better scheduling or wish to contribute to ongoing research in this area.

UniTime is written in Java. It is using Hibernate to connect to MySQL or Oracle database. It deploys on Apache Tomcat. We use Spring Security for authorization and authentication (allowing for CAS or LDAP out of the box). Older pages are written using JSP and Apache Struts, newer pages use Google Web Toolkit. JGroups is used for clustering (including messaging and RPCs) and Infinispan for data replication within a cluster. Most modern web browsers are supported.


Date of First Release 

Date of Last   Release 

Number of Releases

September 2007

(UniTime 3.0 first release)

July 2018 (major release)

April 2019 (minor update)

11 major releases since 2007


Commits in 2018

Commits in 2019

Frequency of Commits



(as of May 13, 2019)

Almost daily


Contributors in 2018

Contributors in 2019




Number of sites in use (estimated)

 ~ 70


Most development is still being done at Purdue University or by the core UniTime team members. While we are getting more institutions involved, they often choose to sponsor the development of new features that they need rather than developing them in-house.

About 350 institutions have filled in our voluntary registration so far (about 60 have been added during the last 12 months).

2018 UniTime Highlights
UniTime 4.3 released in July 2018

In UniTime 4.3, all course timetabling solver pages have been rewritten to GWT, making the whole course timetabling component of UniTime fully localizable. There have been a number of new features added. These include the ability to export timetable grids into Excel, improved filtering of available suggestions, and the ability for a week to start on any day.

UniTime’s scripting and reporting capabilities have been greatly improved in this release. The scripts and reports recognize more parameter types. There is a new Script API, and the scripts can be scheduled to run periodically within UniTime.

A lot of work has been done to support the collection of student course requests and batch scheduling of students. An interface has been developed to allow custom validations and student course eligibility checking to be plugged into the Student Course Request page.  There are more capabilities for academic advisors (and other administrative users) to monitor student progress as well as course availabilities.  There have also been a number of improvements made to the batch student scheduling solver.

The number of UniTime manuals has grown substantially over the last year. For example, there is a new Administrative User Manual covering the initial configuration and setup of UniTime. See this document for all the available UniTime documentation.

2019 UniTime Highlights
UniTime 4.4 to be released in July 2019

UniTime 4.4 includes a lot of improvements in the student scheduling component. There are new solver constraints that can be used to better measure and optimize the quality of students schedules including early/late times, schedule gaps, travel times, lunch breaks, and long days. Test schedule runs can be automated and the results published to other users. A lot of changes have been done to the scheduling dashboard and the reservations. Students can prefer or require certain sections or instructional methods. Courses that are critical to certain students (that is, courses that these students need to make progress towards their degree) can be identified and such students prioritized in these courses.

A few improvements have also been done to data exchange, event management, and course timetabling (e.g., including the ability to combine last year’s course enrollments with pre-registration).

UniTime is co-organizing the International Timetabling Competition 2019 (ITC 2019, https://www.itc2019.org). The challenge is to build a solver for course timetabling problems that are similar to those addressed by UniTime. This will allow the competitors to compare their algorithms on real-world instances from institutions around the world (collected using UniTime). The goal of this competition is to promote research in this area as well as to create realistic benchmark data instances for the research community to use.

The competition was announced at the PATAT 2018 conference and the first timetabling problems have been published on November 15, 2018. The winners will be announced at the PATAT 2020 conference next year. At the moment (as of May 2019), we have over 130 registered individuals and research teams from 44 different countries. This competition is sponsored by the PATAT conference, the EURO working group on Automated Timetabling, ORTEC, and the Apereo Foundation.

Future Plans
A lot of the new development will still focus on student scheduling (e.g., automated wait-listing). There are also plans to improve localization, accessibility, and documentation. We will continue the technology upgrade of older (JSP-based) pages. More work is also planned on integration with external systems. We also plan to build a user interface for a team building solver that is currently being piloted at Purdue University.