Is the conference room free at the moment?
Or has a colleague already booked it?
Am I interrupting an ongoing meeting?
These and many more questions will surely go through most peoples’ minds when they stand in front of a locked conference room.
On the other hand, many people will be familiar with the following situation: You are in a meeting and you are disturbed by colleagues bursting in because they think that the room is free.
To avoid these and other problems, we have thought about building small displays for our conference rooms to give a quick overview of the booked time slots of the respective rooms.
There are some solutions on the market but we have decided to build one ourselves.
As we at ePages regularly employ interns and look for practical and interesting projects, this was a very good opportunity.
Three interns were involved in this project.
Henri (the first intern) has already set up a working prototype and built a first display.
Nikolas and Kilian (further interns) have refined and extended it.
The initial prototype with a 3D-printed housing and a small display was then transformed into the final 10.1″ touch display in a cool wooden frame.
The rudimentary prototype has also changed a lot and an appointment booking option has been added.
The technology behind it
Basically, it can be said that you don’t necessarily need to use the structure described below.
This project also aimed to show the interns working on it a variety of technologies.
Since different systems have already been used in the company, we concentrated on using and expanding them.
Not all parts can be reproduced identically and the following lines of code serve as an example and illustration of how such a project can be implemented.
The data source
As data source and resource management we use the functionality of the resource calendars of Outlook.
There, we have created a dedicated calendar for each conference room.
All colleagues can use it to book the room for their appointments.
Collisions and double bookings are minimized via the appointment scheduling option.
Nevertheless, this is not completely impossible.
Outlook offers the possibility of querying these calendars externally using Exchange Web Services Calls (EWS) and displaying the individual entries.
The intermediate layer / message broker
Since we want to install as less “intelligence” as possible in our displays, we need an intermediate layer that retrieves and prepares the information from Outlook.
We have already developed an internal team website, which collects data from different systems and displays them in a bundled form, the idea of using it here was very obvious.
This team website is based on Java and the Vaadin framework.
There already exists a connection to our Outlook system via an EWS Java client.
By means of this connection we can simply call up appointments and store these data temporarily.
This information can then be retrieved in the internal network via REST requests.
With the help of this controller, the occupancy of the individual conference rooms can be called up and an overview of the currently available config can be displayed.
In addition to this, a function was created with which a new appointment for the respective conference room can be created via a REST call.
With this function, you can also create and save a new allocation via the displays later on.
However, this is not intended to replace the actual booking process of the room and should only serve as a quick and easy way of reserving the conference room at short notice.
For this purpose, the start and end times, the reason, and the organizer are required as details.
In order to facilitate the entry on the display, a list is provided for the reason and for the organizer (LDAP user), from which you need to select.
The selection option for the reason is maintained manually as a config file in Git and the list of available organizers is generated from the LDAP directory.
If a room is booked using this function, an EWS request is sent from the team website to the Outlook system and a new appointment entry is generated for the room.
After a few minutes, this entry will appear automatically on the displays.
The display
For our displays we used a 10.1″ touch display from Sunfounder and a Raspberry Pi 3a+.
The display was embedded in a wooden frame and braced with the help of self-designed and self-printed 3D holders.
A minimal installation of Raspbian runs on the displays.
This lite version has been converted into a kiosk monitor (a browser without URL input and in full screen mode) using X-Server and Chromium Browser that automatically opens the correct conference room website when starting.
The website is a simple HTML page which uses AJAX requests to retrieve data from our team website and to prepare it nicely.
Every 15 minutes a new request is sent to the intermediate layer to update the occupancy.
It is not necessary to reload the website on the display.
The configuration file for the booking function is loaded automatically when the web page is opened.
This is required for the selection fields when booking a room.
An additional function was built into the team website that generates this file from the existing data.
This way, the file does not have to be maintained manually and can be updated automatically.
By calling this REST request, the return value is the currently valid config.js and the displays are thus updated to the latest configuration status.
With the help of our web designers Caro and Björn, we were able to develop a great frontend.
Here, the current and upcoming bookings for the day are displayed.
For each booking the start and end time, the title, and the organizer are displayed.
If you click on the symbol at the end of the line, the participants are also displayed.
The line fills up the more time of the meeting has passed.
The meeting will then disappear approx. 30 minutes after completion.
What’s next?
With the current version of the displays, we have a working system and we can install them in all our conference rooms.
Our employees can see at a glance which appointments are due for the current day and in which time slots the conference room is occupied.
With the help of the booking function, it is also possible to book the room at short notice.
Now, it is time to put everything through its paces and see whether the system is also successful in everyday life.
For the future it is already planned to provide the booking function with a logic that prevents double bookings.
About the author
Norman Franke keeps ePages’ shops running - day and night - and is not afraid of standby duty.
Our website uses cookies to improve your user experience. Some cookies are
required for the basic functionality of the website while other cookies help
us to improve our content and layout. You can agree to all cookies by selecting
"Accept all" or you can select "Accept required" to confirm only the required ones.
Further information can be found in our
Data protection declaration.