Product Design

March 15, 2019

/ case studies

Chamberlain - booking IoT system for meeting rooms in our software house

Radosław Kobierecki

One of the things which Merixstudio’s clients and other guest take note of while visiting the office of our software house in Poznan is the Chamberlain - a user-friendly IoT based system empowering our employees to easily book meeting rooms. What’s really interesting about it, is that we created it harnessing the power of Django, React and Redux within our internal hackathon. Now, after a few years of successful everyday exploitation, we’ve done some evaluation and resolved to develop the tool and make it even more useful. And, of course, we will do it during another hackathon taking place today in our company.

It was just one day but we’ve got big ambitions and high expectations. The goal set by out COO - Marcin Staszak, was to establish the MVP of a management system of office meeting rooms with an implementation of Internet of Things technologies. We wanted to create an easy and intuitive to use solution but not obvious nor rudimentary - after all, we also wanted to gain a new experience and have a little fun. Our brainstorming session resulted in the system connecting Google Calendar with the material infrastructure of the office. 


The whole idea was worked out to find the solution to: 

  • make management of rooms more efficient - we wanted to know the duration of meetings and their purpose, without disturbing 
  • gain easy access to the availability of the rooms to book them in advance 
  • communicate clearly so the employees would know exactly where and when to go, who's going to take part in the meeting and what’s its goal 
  • organize our work better by standardizing the tools we use 
  • reduce to the minimum unnecessary occupying the rooms only “on the paper” or “just in case”

Hackathon - how the project was developed? 

As we treated this project seriously we started from the very beginning of the software development process and prepare a concept, problems to be solved, discuss the available solutions and made some simple mock-ups. We’ve also chosen the most suitable devices to serve the system. We decided to go for Raspberry Pi B Model with 7’ screen which had both - reliable reviews and decent price. And after a while, it proved that it was worth our trust. 


As I’ve already mentioned, the major feature of the system was adding the events in Google Calendar which automatically make a booking shown on the touchscreens beside the chosen room. The devices present much more information like the meeting’s schedule for a particular day with their duration, topic, and participants (plus their response for the invitation). 

One of the features we’re really proud of is confirming a planned meeting. It has to be done in at least a few minutes after even begins or it will be automatically deleted from the schedule so other employees can use the resource. It has a huge impact on the efficiency of managing our office’s workspace.

What’s more about - there’s a possibility to add the meeting directly on the device without the necessity of using Google Calendar. You just have to check the availability of the room, pick the duration of the event (15, 30 or 60 minutes), and tap to confirm. It’s an extremely convenient feature for quick, spontaneous meetings we all do every day but without disturbing the organization of other meetings.  

Chamberlain from the inside - tech stack of the project 

8 hours, 6 persons and the MVP to create. Now, that’s a challenge! Fortunately, we’ve got some smashing developers on both Frontend and Backend, who rise it and used full-stack technologies in such a short time:

Front-end Back-end Hardware
React Django Raspberry Pi 2 B Model
Redux Autobahn|Python PoE (Power over Ethernet) Adapter
Autobahn|JS PostgreSQL 7″ Touchscreen dedicated to Raspberry Pi
Material UI Docker Custom Casing

The Backend team has betted on Python to create the heart of Chamberlain. Admin interface, an internal API and Google Calendar webhook handling are done in Django. Both frontend and backend Autobahn components connect to a Crossbar router. That communication is done using Web Application Messaging Protocol, which lets us broadcast messages to multiple clients, send messages to specific clients and expose functions that can be called remotely. There are multiple WAMP client libraries available, we chose Autobahn|Python and Autobahn|JS, as they are made by the same people who made Crossbar and WAMP RFC.

Backend component uses an internal API to access a local cache of calendar events, as well as handle authentication and authorization of connected devices. We make sure only approved devices can access our WAMP router and that they are only able to access assigned calendar resource’s data.

There’s a task queue set up to which we offload more time-consuming tasks, such as periodically ensuring webhook configuration is set up properly or removing unconfirmed events from a resource’s calendar.

Google Calendar webhook setup ensures that we get notified about all the changes made to our calendars. We can then push that data to devices assigned to specific resources using PubSub.

What’s going to come next? Chamberlain development 

The hackathon ended up with MVP developed and implemented shortly after in our new office on Małachowskiego Street. Now, after a few years of using and making some improvements, we’re ready to take Chamberlain to another level. It’s the best time to reinvent it as we enlarge our office gaining additional (huge!) space and new meeting rooms. We’ve done some research and prepare an evaluation of Chamberlain by asking Merixstudio’s employees for the feedback. What kind of needs and problems did they raise? 

It would be very useful to extend the duration of the ongoing meeting in the same room, of course, if it’s available


Showing that the meeting ended earlier is a must


You need to enable users to confirm meeting from their desks e.g. when the Google Calendar reminder comes


There’s a problem when the schedule is filled to the brim and one meeting follows the another. Some kind of time buffer imposing the pause between meetings should deal with the problem  

Those opinions are the foundation of the backlog we will use on our next hackathon. The event will take place today, on March, 15th and we’re determined to improve both Chamberlain and our skills, and of course to have some fun as hackathons are just made for that! 

It's not the only internal project we've done to gain new experience. Check out also our django-trench or hate speech detector



We use cookies on this site to improve performance. By browsing this site you are agreeing to this. For more information see our Privacy policy.