At Airbnb, the major part of the real estate property is managed by special companies that help homeowners earn money without spending their time on calendar updates, meeting guests, and cleaning after they leave.
Stfalcon was approached by a client who had experience in the sphere of real estate rent and consequently a good knowledge of the subject area and first-hand understanding of the problems the real estate managers face.
There have already existed a number of solutions for property management companies on the market, but they were either inconvenient or not very functional. Stfalcon’s major task was to design the interface that will make managing numerous properties simple and convenient. Additionally, we had the challenge to integrate our solution with the Airbnb API so that large amounts of data were quickly synchronized.
«- The interface of any complex system is inevitably overgrown with various toolbars, controls, windows, etc. The task of a designer is to craft the interface with a low number of unique components yet high usability.» Maksym Nesteruk Designer
The process of integration with Airbnb began with the official certification. We had to prove that our project meets the company’s strict requirements for security, functionality, and processability. The certification process took us 2 months, and only after that, we’ve got partner access to the API. The difficulty of working with such integrations is that the API documentation is not complete, and we had to continuously change the logic of our product due to the constant changes on the Airbnb site.
However, the integration allowed us not only to connect the previously created listings on Airbnb, but also to create new property objects with more than 100 fields of information (property description, check-in rules, prices, photos, and other settings).
One of the most important tasks that the service solves is property reservation management. Before making a list of reservations, we took up a more complex task, to realize displaying of the reservations in the context of dates — in the form of a calendar.
There are several types of calendars in the system:
To correctly implement the work of the calendars, we did not even consider the ready-made solutions, since none of them could satisfy the needs of the project. Therefore, we have developed 3 custom components for the calendars with the possibility to further scale and change them to suit business needs.
The booking orders that come from Airbnb are processed in our solution with different logic depending on the status (sending notifications, checking the possibility of switching to another status). The system performs asynchronous background tasks: auto-sending messages when booking (check-in instructions), check-in (stay rules), check-out (please leave a review). The constant change of statuses requires updates transferring from the server to the client.
A distinctive feature of the Airbnb platform is the active usage of chat between a guest and a property owner. It was very important for us to provide managers with a convenient tool for messaging. A user of our system works with several Airbnb accounts at a time, so when communicating with a guest, he should always see the details of the reservation, apartment, and account on whose behalf he is communicating.
In the chat, we implemented the possibility to send standard responses saved earlier. A user can also accept or decline reservations directly from the chat — in general, we did everything for the quick and efficient work of a manager.
With the managers’ routine tasks in mind we developed several systems for their work automation :
In the second version of the product, we have developed an application for Android and iOS. The mobile app is intended not to duplicate the functionality of a web application, but to take advantage of the benefits of a mobile device. Therefore, we provided smartphone users with the functionality of a chat, tasks manager, and calendar review.
As with most of our projects, we used the Clean Architecture approach with Dagger2 for maximum flexibility. What is more, we easily connected the entire application UI with the necessary data without the threat of information leakages. Android Architecture Components helped us to implement that.
For the iOS application, we customized the calendar using the JTAppleCalendar library.