Booking a room can sometimes be a challenge, especially when you are in a hurry and your meetings pop up unexpectedly. We all have situations in which we try to make a room reservation on the phone while moving from one place to another, which is not the most convenient option. That’s why at one of our hackathons we came up with an app which will allow us to make room reservations instantly, without having to open our computers and with minimal interaction with our phones.
Thinking about the ideal application for booking a room, we have set ourselves three goals:
Based on these criteria we deducted that it implementing voice commands and voice interpretation for both advanced and basic functions was a bad option. We didn’t want to force users to spend additional time interacting with the application, so we stuck with a standard clickable interface for quick actions.
Another issue that arose was the question of security: users of the app will be able to access potentially confidential data e.g.:
Before we let users perform such actions we have to make sure they are eligible for it, so users should log in before accessing restricted data. Two questions naturally came to our minds:
At NG we use a dedicated tool to generate secure passwords. So for our new app we wanted to make it simpler without discouraging the users. Instead of the complicated password we wanted to use something different, maybe our access cards, fingerprints or… our face? We decided on the last one and it has many advantages:
How to log in securely?
Users should not log in with their email credentials on a tablet that is commonly shared in the office. This is why registration (setting a PIN and an optional face photo) is done on the user’s personal device such as a smartphone or laptop. Later, they can log in using face recognition or email and a PIN used exclusively in Smart Display.
Although the app was designed for Android only, we chose to build it with React Native for multiple reasons:
For the backend we chose Ruby on Rails. The main reasons were:
For the Machine Learning part we used a VGG-based deep learning model implemented in Keras.
During registration, the user can provide a face photo to the machine learning engine for facial features to be extracted and stored in a database.
When the user wants to log in with face recognition, the app takes a photo of his face and sends it to the backend, which forwards it to a machine learning app running on the Google Cloud Platform. On GCP, facial features are extracted and compared to the ones stored in the database that were generated during registration. When GCP finds a matching user who is eligible to log in, you can access your personal calendar and book a room.
The final app looked like this:
After finishing the MVP we decided to test our app in one of our offices in Kraków. To do so we:
It is important for us to gather real users’ opinions about the app. In the feedback form we asked: what is done well in this app, what could be improved, and what other functionalities would you find useful in your daily work. Currently the app is being tested and we are collecting feedback which we will use in planning our next development steps.
So far we’ve prepared our app for tests and we are working on improvements while gathering feedback. So what are our next steps?
There are many ideas and features that we plan to implement within this app. One of them is to prepare a personalised dashboard for each worker and display flight info for our Account Managers and project workflow for our developers. We also want to connect this app with our internal bot and make it feel more alive by adding voice recognition.
This solution, like many other ML applications, allows you to perform tasks faster, easier and safer. Technologies such as face recognition can be used in many industries like healthcare, banking, and manufacturing, to name a few. If you have questions about this project or want to see how Machine Learning can improve your business, just write to us at firstname.lastname@example.org.