Roomeeting — booking service for meeting rooms
— Being a hotelier in France, I have a lot of requests from clients and colleagues for meeting room booking, however, I did not come across a convenient solution for this. So I decided to make the process as simple and intuitive as possible with the help of a custom software solution for the purpose.
Mouloud Arhab, COO Roomeeting
The task of our Company was to create a solution that will facilitate and simplify meeting room searching and booking with regard to the short-term events’ specifics.
The service should allow the users to realize search by certain criteria, like the place, space and number of participants as well as to order the necessary equipment for the meeting or conference and reserve accommodation for speakers and visitors. One of the key tasks was also to integrate the created solution with a channel manager — a specialized service of rates control and room availability. For the hotel owner, the new system should centralize room management.
Stfalcon team developed a web service which allows:
- registering meeting room facilities all over the world, adding their description;
- hotel description and booking options available for the hoteliers;
- convenient search and booking of the meeting rooms and facilities for the customers.
The event managers have a convenient search option by location (search on the map is possible), date, event duration and number of participants.
Besides multicomponent booking is possible — space, equipment, food and night stay facilities can be ordered simultaneously.
Roomeeting is a web service developed on the Symfony PHP framework, version 4.4 (the latest LTS version for the time of development). Backend is RESTful API exclusively, all three frontend applications are implemented as Single Page Applications (SPA). For deployment Kubernets was used on Google Cloud, and Google Cloud Storage is also used to store files. Besides, Stripe payment system is realized on backend. Google Maps API should also be mentioned as one of the third-party services integrated into the project.
Roomeeting is integrated into the Channel Manager D-Edge. We have implemented all the necessary API calls to the D-Edge according to the documentation provided by this service. After that, we went through all stages of integration together with the support service of this channel manager. Thanks to this integration, room reservation information can be synchronized with other booking systems, such as Booking.com or Airbnb
Subject domains are extremely extensive in the hotel business and it results into a huge number of entities and links between them. The features of hotels and conference rooms search should be mentioned specifically, since it could have become one of the service’s bottlenecks. Since many different filters take part in the search, it was impossible to make a search with one query to the database without combining a huge number of tables. But it influenced the speed negatively. To solve the problem, the Chain Of Responsibility pattern was used, one large request with filtering is divided into several consecutive steps. Each next step is called only if there are still results that need to be filtered. At the same time, caching of queries and results is used wherever it’s possible, so most queries do not run in the database, but take their results from cache. It significantly reduces the load on the base and the complexity of the implementation and support of the search mechanism.
Integration with a channel manager was a complex task. The channel manager is a system which allows booking and checking rooms and accommodation availability. It synchronizes all the reservations made on all the platforms connected to it so that there are no cases of double booking. It was a solution already developed earlier according to certain parameters, and we were developing a new system with the parameters indicated by the customer, so the task was rather challenging.
Calendar was integrated for hoteliers so that they can look through the coming events in a simple and convenient way. The calendar allows checking the bookings made on a certain date and the overall occupancy.
Stripe was integrated for convenient payment procedures.
Google Maps were integrated for more convenient search and better land navigation.
We launched a comprehensive online solution, which allows complex booking of a meeting room any time from any place and at any locale, along with accommodation and related services needed.