Late 2019 Software Community Health Metrics - UniTime

UniTime 
https://www.unitime.org 

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. 

Technology: 
UniTime is written in Java. It is using Hibernate to connect to MySQL, Oracle, or PostgreSQL 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. 

Statistics:

Date of First Release Date of Last Release Number of Releases
September 2007
(UniTime 3.0 first release)
June 2019 (major release)
December 2019 (minor release)
11 major releases since 2007

 

Commits in 2018 Commits in 2019 Frequncy of Commits
506 392 (as of Dec. 1, 2019)

Almost Daily

 

Contributors in 2018 Contributors in 2019
4

4

 

Number of sites in use (estimated)
~70


Context: 
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 400 institutions have filled in our voluntary registration so far (about 55 have been  added during the last 12 months). Here is a word cloud of the countries of our users, countries with more registrations are in larger letters. 

2019 UniTime Highlights: 
UniTime 4.4 released in June 2019. Minor updates have been released in August 2019, October 2019, and December 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 made to data exchange, event management, and  course timetabling (e.g., including the ability to combine last year’s course enrollments with pre-registration). PostgreSQL database is supported since UniTime 4.4.239 (December 2019 release). 

The UniTime team 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 there have been three sets of timetabling problems published between November 2018 and 2019. The competition was concluded on November 18, 2019. There have been five finalists announced (teams from France, Kosovo, Denmark, Portugal, and Switzerland). The winners will be announced at the award ceremony that will be held at the PATAT 2020 conference next year (August 25-26, 2020 in Bruges, Belgium). There have been over 200 registered individuals and research teams from over 50 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. 

List and link to repositories and downloads: 
Repositories: 
https://github.com/UniTime/unitime 
https://github.com/UniTime/unitime-addons 
https://sourceforge.net/projects/unitime (includes secondary Git repo) 

Downloads: 
https://github.com/UniTime/unitime/releases 
https://sourceforge.net/projects/unitime/files 
https://builds.unitime.org (nightly builds) 

List Commercial Support: 
Most of the commercial support is being done by UniTime LLC (based in the USA) and UniTime, s.r.o. (based in the Czech Republic) at the moment.  We have started cooperating with Naseej in 2017, which is providing commercial support for higher education institutions in the Arabic countries. UniTime has been implemented at a large institution in Saudi Arabia.