As Merixstudio’s been growing, Chamberlain has been changing as well. Here you can jump straight to one of its development phases:
Once upon a time, there was an ambitious team of software engineers who undertook to build something great during a hackathon… Sounds like a fairy tale? Well, that’s how the story of Chamberlain began! Our dev team didn’t look for a specific idea for too long, as it flashed across Marcin’s (our COO) mind: let’s hone our IoT skills and build the MVP of a meeting room booking system! We wanted to create an intuitive solution but didn’t want to make it too simple; after all, the purpose of a hackathon is to have some fun while learning. The initial brainstorming session resulted in a concept of a system connecting Google Calendar with the material infrastructure of the office.
Simply put, our goal was to devise a solution that would:
- make the management of conference rooms more efficient (we wanted to know the duration of meetings and their purpose, without disturbing our colleagues)
- allow checking the availability of the rooms and booking them in advance
- communicate clearly where and when one should go, who takes part in the meeting, and what the meeting’s goal is
- help us organize our work better by standardizing the tools we use
- reduce to the minimum the unnecessary occupying the rooms “on the paper” or “just in case”
Although it was supposed to be a product of a hackathon, we approached Chamberlain as professionally as we’d approach any other commercial project. First, we defined the concept, the challenges, the opportunities, and the available solutions. Then, we made some mock-ups and looked for the most suitable devices to serve the system. Ultimately, we chose the Raspberry Pi B Model with a 7’ screen, which boasted both reliable reviews and a reasonable price.
Chamberlain’s key feature was adding the events to Google Calendar, with the system automatically showing the booking on the touchscreen next to the chosen room. As you can see on the screenshot below, the devices would present information like the meeting schedule for a particular day, the event’s duration, topic, and participants (plus their response to the invitation).
One of the features we were really proud of was the need for manual confirmation of a planned meeting. It had to be done less than a few minutes after the event began, or it would be automatically deleted from the schedule, so that other employees could use the room. It proved to have a huge impact on the efficiency of managing our office’s workspace.
Another thing worth mentioning is that the solution we built allowed adding the meeting directly on the device without the user’s access to Google Calendar. You’d just have to check room availability, pick the event’s duration (15, 30, or 60 minutes), and tap to confirm. It’s an extremely convenient feature for holding quick, spontaneous meetings we all do every day, but without disturbing the organization of other events.
Baby teeth: Chamberlain’s first tech stack
8 hours, 6 people, and an MVP to create; now, that’s a challenge! Fortunately, our frontend and backend developers rose to it in style! In this paragraph, we’ll tell you what technologies they pumped into Chamberlain’s veins.
As the core of Chamberlain’s V1, we chose Python and matched it with Django to handle the admin interface, an internal API, and Google Calendar webhook. Both frontend and backend Autobahn components connected to a Crossbar router using Web Application Messaging Protocol, which let us broadcast messages to multiple clients, send messages to specific clients, and expose functions that can be called remotely. We also went for Autobahn|Python and Autobahn|JS libraries, as they were made by the creators of Crossbar and WAMP RFC.
The backend component used an internal API to access a local cache of calendar events and handle authentication and authorization of connected devices. We made sure only approved devices could access our WAMP router, and they were only able to access assigned calendar resource data.
There was a task queue set up, to which we offloaded more time-consuming tasks, such as periodically ensuring webhook configuration was set up properly or removing unconfirmed events from a resource’s calendar. Moreover, Google Calendar webhook setup ensured we got notified about all the changes made to our calendars. We could then push that data to devices assigned to specific resources using PubSub.
When Chamberlain was born, Merixstudios was a completely different company. Since 2019, we’ve grown our team to over 250 IT specialists, set up a mobile team, left to work from home for a couple of months, and learned to embrace the hybrid work model. In short, we’ve changed – and to keep working to our advantage, Chamberlain had to change as well. It was time for a transformation.
To ensure our efforts won’t be pointless, we asked our teammates for feedback regarding the current solution. We found out that:
- they’re using touchscreens primarily for booking ad-hoc meetings
- they prefer to use the touchscreen over Google Calendar when they’re on-site and want to have a quick chat without disturbing others on the open space
- they enjoy having the possibility to check room availability, and they’re frustrated with connectivity issues
As you can see, the main idea behind Chamberlain didn’t change much. However, as we ran small-scale usability tests, it turned out it needed a revamp. The insights on current and prospective UI and UX proved invaluable in giving Chamberlain an effective revamp.
Permanent teeth: Chamberlain’s current tech stack
Before we move on to changes (which are pretty far-reaching, by the way), let us say that one thing that remained unchanged is the use of Raspberry Pi. This allows us to go deeper down the IoT path in the future, e.g., by integrating the app with sensors and other devices. For now, however, we switched from 3B to 4B and configured the devices to use Android, which brings us to Chamberlain’s mobile-centric transformation.
Although Chamberlain was born as a web application, when Merixstudio’s mobile department was born, we undertook to turn it into a full-fledged mobile application. This would allow us to test our skills and hone them in a safe in-house environment. Such an approach also made it possible to play around with various solutions and check their suitability for different business contexts.
The most striking change in Chamberlain’s adolescence was a rewrite to Flutter. The choice of technology was simple for us for a couple of reasons. One, Flutter is a cross-platform framework that allows compiling apps for various devices without affecting their performance. Two, it gave us a chance to test how Flutters works with Raspberry Pi and mobile devices that are less performant than a modern-day smartphone. Three, our mobile team boasts exceptional Flutter skills, and it would simply be a waste not to make good use of them.
As for the backend, we decided to go for Firebase. Choosing Mobile Backend as a Service gave us a head start. The mobile team was capable of working without the support of backend and DevOps engineers, which minimized the time and effort we’d have to spend on building a custom backend.
Another advantage of Firebase is that it streamlines data synchronization between the device and backend in real-time, which is crucial for a room booking system like Chamberlain. After all, if you were the user, you wouldn’t like to learn that somebody else has booked your room of choice, and now you have nowhere to hold an important meeting, would you? We addressed this issue with WebSockets in the previous version of the app, but now it’s an out-of-the-box feature.
One more argument for using Firebase in this project was that this technology lies at the core of Ginny, our other in-house tool. To facilitate the future merger of Chamberlain and Ginny, we equipped the former with a Firebase-based calendar module with a custom UI design. We hope to quip Ginny with other useful features, such as the map that helps users find rooms in the office space. Lastly, Firebase comes with some useful tools and products that work to Chamberlain’s advantage, such as Firestore and Cloud Functions.
New wrinkles: features we’ve added recently
Since 2019, our appetite has grown, which has led to the addition of brand-new features. One major change was the introduction of room status to the system. Before, when the user approached the tablet, they saw a calendar view of the events taking place on a certain day. Now, the tablets display one of three statuses:
- green free, indicating that the room can be booked because the next meeting will happen in over one hour
- orange soon busy, indicating that the next meeting will start in less than an hour, so the room can be booked only for a short time
- red busy, indicating that there’s a meeting in progress and informing the user then it’ll end
This way, the room’s status is easily noticeable.
Another feature worth mentioning is the kiosk mode, which restricts the tablets’ functionality to Chamberlain app only. In practice, this means that the users who interact with the office tablets can only undertake the room booking-related actions, whereas any other functionalities offered by a mobile device aren’t available to them. This facilitates control usage and increases security, as users can’t access parts of the app that they’re not meant to tamper with, e.g., settings. Kiosk mode can come in handy in numerous industries, including retail, education, and healthcare, where it translates numerous benefits, including better user engagement, increased operational efficiency, or reduced device wear and tear.
There’s also a tool for remote management of devices served by Chamberlain. It gives us insights into all devices, their status, and the content they’re displaying. We manage the devices via internal VPN and with the use of Secure Shell Protocol (SSH), which allows us to update the devices and change the settings of all of them at once.
The future is yet to come
While we’re no fortunetellers and can’t predict the needs of future Merixstudio employees, we are definitely up for perfecting the application according to the user feedback. It pushed us to improve Chamberlain by rewriting it into a mobile application in the first place, and we want it to keep pushing us towards an impeccable user experience.
Secondly, we’re working on enriching Ginny with functionalities that would facilitate finding and booking rooms in the office and integrating it with Chamberlain to a greater extent.
Last but surely not least, we have some exciting news to share with you: Chamberlain has gone open source! Now you can examine the flesh and bones of our meeting room management system on GitHub and see how our mobile team works.