Implementation of a Secure Room Booking System at the University of Manitoba Libraries

: Providing group study rooms is an important service offered by a university library to support learning and collaboration. A good room booking system should be convenient for students to use and would require a minimum involvement of library staff regarding managing bookings and keys. This article studied the implementation of the Juno Secure Room Booking system at the library to replace LibCal, which is a popular room booking system used by a large number of university libraries in North America. This article discussed the advantages that the Juno system has compared to LibCal, the design of an online booking website using the Juno Application Programming Interface (API)


INTRODUCTION
Providing students with group study rooms is one of the services that has become more and more popular at university libraries when the library's objective shifts from building a complete collection to supporting learning and collaboration. With the increased usage of group study rooms, a robust system that can free library staff from the time-consuming process of manually managing room bookings through a binder has gained a great interest among the university library community. LibCal (SpringShare, 2020), an online platform provided by SpringShare (SpringShare, 2021), contains a room-booking feature and has been adopted by a large number of university libraries. Although LibCal perfectly solves the challenge of automating room booking, as a purely online system, it leaves to the library the issue of managing the keys to study rooms. As a result, most libraries using LibCal choose to keep the study rooms' doors unlocked instead of manually locking/unlocking the doors for students. It causes some concerns among students, including the risks a single user takes when in leaving their belongings unattended in a study room.
To make the most use of online room bookings and avoid the inconvenience of manually assigning keys to study rooms, the University of Manitoba Library (UML) implemented a new secure room booking system, the Juno Secure Room Booking (Juno) system from Telepen (Telepen, 2021). Compared to LibCal, the Juno system has all the benefits of online booking and, additionally, provides a secure way to control access to study rooms. Although the Juno system was purchased from Telepen, the UML designed and developed its own room booking website as a front end to work with it. With feedback about the Juno system collected from students, in 2019, the UML developed a local database system that is an enhancement to the Juno system. The local system improves the booking process and engages more users. Nelson (2016) reviewed the LibCal product and especially analyzed the advantages and disadvantages of its three components: the appointment scheduler, event scheduler, and room booking service. He pointed out the available features, such as booking mediation, the use of public nicknames, etc. are very beneficial to the library. LibCal's room booking service frees staff from managing bookings manually. With a very supportive service from SpringShare, once initially configured, the room booking feature requires minimal maintenance. Teng (2014) discussed the implementation of an online room-booking system based on a self-designed database. This system recognized the value of booking hotel rooms through an internet browser. Active Server Pages (ASP) was used for the development of the booking website and a Structured Query Language (SQL) database was used on the backend to store data. This article briefly discussed the website structure but did not give any details about each of the web pages. The discussion about the backend of the system was only at the module levels. The author highlighted various modules for specific functions in the system but did not present how data was exchanged between different modules. Akkurt (2016) observed the change in users' needs for group study rooms due to the emergence of project-based researches. The library was using a booking module in the Integrated Library System (ILS) for the reservation of study rooms and carrels. Being online and allowing self-service were the two major conveniences the library had taken into consideration. The author mentioned this approach worked well but failed to keep up with user demand due to the original design of the ILS. Since the vendor could not provide a solution, the library had to eventually use in-house software. The technical software staff worked with the circulation team to develop and update the software.

LITERATURE REVIEW
Fondren Library at Rice University also noticed the major disadvantage of patrons using the booking module from an ILS was the lack of a visual calendar (Galvin, Sun, & Lee, 2018). Fondren Library adopted an open-source system, which was called "Booked", to manage room bookings but still used the ILS to manage the keys. However, since there was no integration between the ILS and Booked, the library was facing a great challenge in synchronizing information between the two systems. In the end, the solution the library used was to call web APIs to trigger synchronization and reverse synchronization of transaction data. The author also admitted that such a mechanism was complicated.
Unable to find appropriate systems on the market, Ball State University (Hafner, Seaton, & Faust, 2010) implemented an in-house web application, Room Scheduler 1.0, in 2008 to allow online reservation for study rooms in the library. An upgraded version was released in 2010 and the system was renamed as OpenRoom which was shared under the GNU General Public License. The system was taken over by Queens College and the source code with major modifications was published on GitHub (Williams & Hada, 2017).
At the UML, the Juno system was piloted in one branch in 2016 and implemented in five more branches in 2017. A user experience review on this room booking system was carried out in 2018. Based on the feedback collected in this study, in 2019, an enhancement to the Juno system was designed and developed by the UML staff. With this UML-developed enhancement, the Juno room booking system was finally implemented in the Health Science branch, and the Libraries also successfully engaged the College of Medicine to use our system to manage rooms for classes and exams. This article reviewed the implementation of the Juno system. Particularly, this article discussed the benefits of migrating to the Juno system from other applications, the library-designed room booking portal for students and library staff, user experience with the Juno system, and the enhancement to the portal.

SELECTION OF THE JUNO SYSTEM
Before migrating to the Juno system, the UML was using various approaches to manage study room bookings in different branches. Some branches, including one of the busiest branches on the campus, were using binders to manually manage those bookings. Students had to either come to or call the circulation desk to book a room. They also had to first come to the circulation desk in order to be allowed to enter into a study room. This method not only significantly increases the workload for staff but also makes the circulation desk staffed all the time. Some branches were using an online platform, LibCal, from SpringShare (SpringShare, 2020) to manage study rooms. LibCal was easy to configure and use. However, it did not provide key control access for room access. In some branches where the study rooms were always locked, staff had to manually collect the keys. In other branches where the study rooms were unlocked, staff had to intervene, from time to time, to ensure students who made the bookings were able to use the rooms during booked time slots. In addition, LibCal couldn't release unused time slots. If students could not make it during the booked time slots, LibCal didn't have the function of updating the room status in real-time. As a result, the unused time slots caused by students not showing up caused a waste of limited library resources.
Besides the disadvantages of the above methods, some branches needed to always reserve certain rooms for students from particular colleges, usually the college/department that they liaise with. Although LibCal was used in those branches, staff had to exclude those rooms from the system as it provided no access control. Staff had to rely on a binder to manually manage room bookings, hand out and take back keys to those reserved rooms.
In 2016, the UML was switching to a new service model, which required staff to focus on providing services of high quality to faculty and students. The UML was looking for a way to provide a consistent room booking mechanism across branches, extend study room hours, and, at the same time, free staff from the time-consuming tasks of managing rooms and keys. Eventually, the Juno system was identified as a product that best met the Libraries' interests because of the features below.
• Keyless -Staff no longer need to manage keys.
• Secure -Users have to use a system-generated PIN to enter a room during the booked period. • Online -The system provides a website where users can make/edit/cancel bookings.
• Instant -Room bookings can be made instantly at the door of a study room.
• Integrated -The system can be connected to the Integrated Library System (ILS) so that user accounts will be created automatically.
One particular feature the UML was very interested in is the Juno system's ability to release a room when "no show" happens. It is inevitable that a student makes a booking of a study room but fails to show up during the booked period. It causes complaints from other students and wastes limited library resources. Neither the manually-managed binder nor LibCal had an automatic solution to the situation. The Juno system would release a booked study room after a period, which is determined by the library, if the student cannot make it. In addition, the Juno system also provides comprehensive usage reports, which can be based on a specific user, or a specific room, or room type, or a branch, or even a whole library.

IMPLEMENTATION OF THE JUNO SYSTEM
The implementation of the Juno system at the UML could be split into three main parts ( Figure 1): • Hardware: It includes the installation and configuration of a wall box at the door of a study room. The wall box is used to control access to the study room. During a booked period, the student needs to swipe a valid student card and tab a PIN on the wall box to enter the room. The wall box can also be used to make bookings for the particular room where it is installed. • Software: It includes the installation of the Juno database, the configuration of the Juno server, and the development of an online booking website. The Juno database is where data in the Juno system is stored. The Juno server contains the main function service, a client program, and a web service. The main function service communicates directly with the wall boxes and uses information from the Juno database to manage bookings and control access to study rooms. The client program is the interface for library staff where libraries, study rooms, hours, booking privileges, etc. in the Juno system can be configured. It can also be installed on any staff workstations rather than the Juno server. The web service is a Representational State Transfer (REST) server which is used by our online booking website. The website was purely designed and developed by the UML as we realized the out-of-box web application offered by Telepen did not meet our needs. • Training and promotion: It includes the training provided to library staff on how to use this system and the activities to promote the Juno system by the UML.

Hardware
The UML had to install electric strike locks for all study rooms in order for the Juno wall box to control access. The electric strike keeps the door locked all the time as long as the door is closed. People inside a study room can simply twist the handle to open the door regardless of the situation of the electric strike. The Juno wall box uses a relay output to interrupt the power to the strike in order to unlock the door. Another decision the UML made regarding hardware was to use Juno wall boxes that support Power over Ethernet (PoE). A regular Juno wall box needs both power and data ports. A power module can be built inside the wall box to support PoE. Although it slightly increased the device cost, it made a big saving to the UML as a separated power wiring to the wall box was no longer needed. The installation was carried out by the Department of Physical Plant at the university. A common mistake made by the Physical Plant was that the wires in the Juno wall box were not connected correctly.

Software
The Juno database and the Juno main function service were installed by Telepen on a server provided by the library. During the implementation, the Juno client program, which could be used by the system administrator to configure study rooms, hours, user groups, privileges, etc., could be installed on the same server. Once we went live with the Juno system, we installed the client program at circulation desks so that staff can manage room bookings. The Juno client program allows library staff to view and delete room bookings. However, library staff cannot create or edit room bookings through the Juno client program. Once a group study room is booked, the booking cannot be edited. It can only be canceled by the user or deleted by library staff. To book a study room, all users, including students and library staff, have to use either the wall box or a website. The wall box can be used to book the room where it is installed, while the website can be used to book any rooms in the Juno system.
The vendor-provided room booking website is packed in a Dynamic-link library (DLL) file to protect the source code. Because of this, it only allows minimum customization. And the library has to convert text messages to images, follow some specific rules to name these images, and upload them to a dedicated folder in order for the DLL file to use these images as title, instruction, etc on the web page. The library has no way to add alternative attributes to the web page. Although the vendor-provided online application requires minimum maintenance from the library, it did not meet the accessibility requirement from the UML.
Another drawback with the vendor-provided room booking website is that it only supports one schedule for a library. One branch at the UML has different schedules for two types of study rooms. Due to the schedule issue, two libraries need to be created in the Juno Sentry system for this branch, one library for the first type of study rooms and another library for the second type, which would create great confusion for students. This option would create more confusion for users than provide scheduling convenience.
Because of the drawbacks with the vendor-provided website, the UML decided to design and develop our own room booking website, on which the Juno API was used for the following purposes.
One advantage of developing the library's own room booking website is that various features can be customized to improve user experience. One example is the automatic creation of user profiles in the system. When a user logs into the room booking website, if the webserver cannot use a unique user identifier to retrieve the user profile from the Juno system, it will assume that it's the user's first time to use the room booking system and the user hasn't had a profile yet. Thus, the website will retrieve the user information from the Integrated Library System (ILS) and use it to create a user profile in the Juno system. Otherwise, the user would have to go to a circulation desk to have the profile manually created by the staff. Consequently, this automated process of creating user profiles saves both staff and users' time.
Regarding the issue of two schedules within one library, our solution was to create two libraries in the Juno system to set up different schedules for different rooms but group these rooms together on the room booking website. This way, when users check those two types of rooms, they only see one library, which is consistent with their physical experience. On the back end, the website checks room availability in two Juno libraries and presents such information in one category to users.
Another major advantage of developing our own room booking website is to meet the Accessibility requirements. At the design stage, from how to organize elements for the user interface to how to select color scheme, we paid special consideration to users with visual disabilities. At the development stage, the online booking website was tested by both the User Experience librarian at the library and staff from the Office of Disability Studies at the university. The website complies with the accessibility standards.

Training and Promotion
The Juno system caused great interest among staff at the UML. The informational/training sessions about it were booked rapidly. Two types of sessions were provided by the library's system department. The more general session targets regular library staff and provides information on how the Juno system works, how students use it, etc. The more specific session targets staff at the circulation desk and provides training on how to manage room bookings, generate reports and troubleshoot. The UML used various methods, such as web pages, posters, and brochures, to promote the Juno system to students. We even made videos about the Juno system and put them on the library's website.

ENHANCEMENT TO THE JUNO SYSTEM
The enhancements extend the Juno Sentry Room Booking System with two new features: a peruser Master PIN setting and an automatic Concurrent-Booking capability. These features were integrated into our web-based Room Booking system that is implemented using PHP, JavaScript/AJAX, HTML/CSS, and MySQL. Interaction with the Juno system is via the REST API and MySQL database.
The Master PIN feature implements an override mechanism for the Juno system's autogenerated PIN used for access to booked rooms. A user of our web-based UI can set a preferred four-digit Master PIN or choose to continue using the system-generated random PIN. To book a room using the Master PIN (when chosen), our system makes the requisite REST API call, and, on success, uses the resulting identifier of the room booking to find and update the systemgenerated PIN in the MySQL database. This correctly sets the access PIN to a value that the user chose. Possible errors that may arise with the different components are communicated appropriately to the user to ensure that they will have the correct PIN for access to the room.
The Concurrent-Booking feature is a solution to a major limitation of the Juno system: a single account cannot book more than one room for a given time range. To overcome this limitation, we enhanced our web-based UI and system logic to automatically create and manage "shadow" user accounts in the Juno system as required. By utilizing additional shadow accounts that are linked with a user's main account, a single user can then book more than one room even if the booked times for those rooms overlap.
Under normal circumstances, when a user attempts to book a room in a time range that overlaps with another room that they (or any other user) have booked, the Juno system indicates this as an "already booked" error. We detect this error and then load and check all existing bookings in the database for the time range in question. If the room and time range is booked by another user, then the error is valid, and this is reported to the current user. However, if the room and time range are not booked (i.e., the "already booked" error is due to the current user attempting to book overlapping times for different rooms), then we apply our shadow account algorithm.
A shadow account is chosen based on existing and overlapping bookings that were made by the user's primary account or any in-effect shadow accounts linked to the primary account.
When an unused shadow account for the time range is available, that shadow account is used in the subsequent booking REST API call. However, when there are no shadow accounts (I.e., firstever concurrent booking for the user) or no shadow accounts available (I.e., pre-created shadow accounts are all used for existing and overlapping bookings), then a new shadow account must be created before the booking can be completed.
To create a new shadow account, a database call is used to copy the user's primary account record to a new shadow account record. The new shadow account is "linked" to the primary account by setting the new name the same as the primary name but appending a serial number that can be tracked and managed. This naming pattern ensures the uniqueness of the shadow account and enables other parts of our system to accommodate the extra accounts in a simple way that is transparent to the user.
The Master PIN feature frees students from remembering the 4-digit PIN for each of their bookings. In the past, when a study room was booked, the Juno system randomly generated a 4digit PIN. The PIN had to be used to open the door of the study room for the booked period. When a student made a number of bookings, she/he had to track which PIN should be used for which booking. Now, the student only needs to set up a 4-digit PIN in the account and this master PIN will be used for all her/his bookings in the Juno system.
The Master PIN feature allows the University of Manitoba Libraries (UML) to provide a better booking service to students. Frequently, a library has to book study rooms for certain purposes. An example is that an instructor needs to use a study room from 1 pm to 2 pm every day for a period of two weeks. The Juno system does not provide a different way for library staff to book study rooms. They have to use the same website as students to make a booking and share the PIN with the requester. In the above example, staff would have to share, with the instructor, 10 PINs each of which should be used for a particular day in the two-week period. The complexity was not encouraging instructors to use this service. With the Master PIN feature, in the above example, only one PIN would be used. It greatly improved the booking service provided by the Libraries.
The Concurrent-Booking feature allows the Libraries to attract more faculty and institutional members to use study rooms. In the Juno system, a patron could only book one study room at any particular time. The rationale is that one person could not occupy two study rooms at the same time. This ignores the fact that library staff often to make bookings on behalf of patrons. There are 11 study rooms in our Health Science Library. Sometimes, the colleges that the Health Science Library liaises with need to use those study rooms for interviews and training for several days. In this situation, the library has to close the study rooms in the Juno system and use physical keys to open and lock the rooms. It not only increases the workload for library staff but also makes the study rooms unavailable in the evenings when they are not used by the college. With the Concurrent-Booking feature, in the above situation, library staff can simply book all the 11 study rooms during the day for the college and students will still be able to use those rooms in the evening.

CONCLUSION
After the implementation of the enhancements, we noticed a significant increase in room bookings in the system. There were 2,255 unique logins from students in the first five weeks, based on the number of entries in the table that records every user's Master PIN and other variables. Figure 2 presents the total bookings made in each month of the 2018 Fall semester with the same period in 2019. Figure 3 presents the total users who booked rooms in each month of the 2018 Fall semester with the same period in 2019.

Total Users
With this technology application, the Libraries successfully engaged the College of Medicine, which is one of the faculties that the Health Science library provides services to, to use our Juno system. They were looking for a system so that their staff could easily manage the bookings. The library presented the Juno system and our development work to the college. The enhancement solves the issues that the College of Medicine was facing with the study room bookings. After careful consideration, the College decided to use the Libraries' room booking system. Now, the College of Medicine uses the 11 study rooms in the Health Science library for the purpose of classes and exams.